}
a = cJSON_CreateArray();
- for(i = 0; a && (i < (size_t)count); i++)
+ if (!a)
+ {
+ return NULL;
+ }
+
+ for(i = 0; i < (size_t)count; i++)
{
n = cJSON_CreateNumber(numbers[i]);
if (!n)
}
a = cJSON_CreateArray();
+ if (!a)
+ {
+ return NULL;
+ }
- for(i = 0; a && (i < (size_t)count); i++)
+ for(i = 0; i < (size_t)count; i++)
{
n = cJSON_CreateNumber((double)numbers[i]);
if(!n)
}
a = cJSON_CreateArray();
+ if (!a)
+ {
+ return NULL;
+ }
- for(i = 0;a && (i < (size_t)count); i++)
+ for(i = 0; i < (size_t)count; i++)
{
n = cJSON_CreateNumber(numbers[i]);
if(!n)
}
a = cJSON_CreateArray();
+ if (!a)
+ {
+ return NULL;
+ }
- for (i = 0; a && (i < (size_t)count); i++)
+ for (i = 0; i < (size_t)count; i++)
{
n = cJSON_CreateString(strings[i]);
if(!n)
cJSON_Delete(root);
}
+static void cjson_create_int_array_should_fail_on_allocation_failure(void)
+{
+ int numbers[] = {1, 2, 3};
+
+ cJSON_InitHooks(&failing_hooks);
+
+ TEST_ASSERT_NULL(cJSON_CreateIntArray(numbers, 3));
+
+ cJSON_InitHooks(NULL);
+}
+
+static void cjson_create_float_array_should_fail_on_allocation_failure(void)
+{
+ float numbers[] = {1.0f, 2.0f, 3.0f};
+
+ cJSON_InitHooks(&failing_hooks);
+
+ TEST_ASSERT_NULL(cJSON_CreateFloatArray(numbers, 3));
+
+ cJSON_InitHooks(NULL);
+}
+
+static void cjson_create_double_array_should_fail_on_allocation_failure(void)
+{
+ double numbers[] = {1.0, 2.0, 3.0};
+
+ cJSON_InitHooks(&failing_hooks);
+
+ TEST_ASSERT_NULL(cJSON_CreateDoubleArray(numbers, 3));
+
+ cJSON_InitHooks(NULL);
+}
+
+static void cjson_create_string_array_should_fail_on_allocation_failure(void)
+{
+ const char* strings[] = {"1", "2", "3"};
+
+ cJSON_InitHooks(&failing_hooks);
+
+ TEST_ASSERT_NULL(cJSON_CreateStringArray(strings, 3));
+
+ cJSON_InitHooks(NULL);
+}
+
static void cjson_add_false_should_add_false(void)
{
cJSON *root = cJSON_CreateObject();
RUN_TEST(cjson_add_true_should_fail_with_null_pointers);
RUN_TEST(cjson_add_true_should_fail_on_allocation_failure);
+ RUN_TEST(cjson_create_int_array_should_fail_on_allocation_failure);
+ RUN_TEST(cjson_create_float_array_should_fail_on_allocation_failure);
+ RUN_TEST(cjson_create_double_array_should_fail_on_allocation_failure);
+ RUN_TEST(cjson_create_string_array_should_fail_on_allocation_failure);
+
RUN_TEST(cjson_add_false_should_add_false);
RUN_TEST(cjson_add_false_should_fail_with_null_pointers);
RUN_TEST(cjson_add_false_should_fail_on_allocation_failure);