|  | @@ -410,6 +410,22 @@ static void cjson_functions_shouldnt_crash_with_null_pointers(void)
 | 
	
		
			
				|  |  |      cJSON_Delete(item);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +static void *failing_realloc(void *pointer, size_t size)
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +    (void)size;
 | 
	
		
			
				|  |  | +    (void)pointer;
 | 
	
		
			
				|  |  | +    return NULL;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static void ensure_should_fail_on_failed_realloc(void)
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +    printbuffer buffer = {NULL, 10, 0, 0, false, false, {&malloc, &free, &failing_realloc}};
 | 
	
		
			
				|  |  | +    buffer.buffer = (unsigned char*)malloc(100);
 | 
	
		
			
				|  |  | +    TEST_ASSERT_NOT_NULL(buffer.buffer);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    TEST_ASSERT_NULL_MESSAGE(ensure(&buffer, 200), "Ensure didn't fail with failing realloc.");
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  int main(void)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |      UNITY_BEGIN();
 | 
	
	
		
			
				|  | @@ -425,6 +441,6 @@ int main(void)
 | 
	
		
			
				|  |  |      RUN_TEST(cjson_replace_item_via_pointer_should_replace_items);
 | 
	
		
			
				|  |  |      RUN_TEST(cjson_replace_item_in_object_should_preserve_name);
 | 
	
		
			
				|  |  |      RUN_TEST(cjson_functions_shouldnt_crash_with_null_pointers);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +    RUN_TEST(ensure_should_fail_on_failed_realloc);
 | 
	
		
			
				|  |  |      return UNITY_END();
 | 
	
		
			
				|  |  |  }
 |