diff --git a/test.c b/test.c index 7e17dff..7a45c34 100644 --- a/test.c +++ b/test.c @@ -148,7 +148,6 @@ void create_objects(void) cJSON *img = NULL; cJSON *thm = NULL; cJSON *fld = NULL; - char *out = NULL; int i = 0; /* Our "days of the week" array: */ @@ -210,21 +209,20 @@ void create_objects(void) cJSON_AddNumberToObject(fmt, "frame rate", 24); /* Print to text */ - out = cJSON_Print(root); - /* Delete the cJSON */ + if (print_preallocated(root) != 0) { + cJSON_Delete(root); + exit(EXIT_FAILURE); + } cJSON_Delete(root); - /* print it */ - printf("%s\n",out); - /* release the string */ - free(out); /* Our "days of the week" array: */ root = cJSON_CreateStringArray(strings, 7); - out = cJSON_Print(root); + if (print_preallocated(root) != 0) { + cJSON_Delete(root); + exit(EXIT_FAILURE); + } cJSON_Delete(root); - printf("%s\n", out); - free(out); /* Our matrix: */ root = cJSON_CreateArray(); @@ -235,11 +233,11 @@ void create_objects(void) /* cJSON_ReplaceItemInArray(root, 1, cJSON_CreateString("Replacement")); */ - out = cJSON_Print(root); + if (print_preallocated(root) != 0) { + cJSON_Delete(root); + exit(EXIT_FAILURE); + } cJSON_Delete(root); - printf("%s\n", out); - free(out); - /* Our "gallery" item: */ root = cJSON_CreateObject(); @@ -253,13 +251,13 @@ void create_objects(void) cJSON_AddStringToObject(thm, "Width", "100"); cJSON_AddItemToObject(img, "IDs", cJSON_CreateIntArray(ids, 4)); - out = cJSON_Print(root); + if (print_preallocated(root) != 0) { + cJSON_Delete(root); + exit(EXIT_FAILURE); + } cJSON_Delete(root); - printf("%s\n", out); - free(out); /* Our array of "records": */ - root = cJSON_CreateArray(); for (i = 0; i < 2; i++) { @@ -276,61 +274,20 @@ void create_objects(void) /* cJSON_ReplaceItemInObject(cJSON_GetArrayItem(root, 1), "City", cJSON_CreateIntArray(ids, 4)); */ - out = cJSON_Print(root); - printf("%s\n", out); - - printf("Test cJSON_PrintPreallocated:\n"); - /* create buffer */ - size_t len = strlen(out) + 1; - char *buf = malloc(len); - - /* create buffer to fail */ - size_t len_fail = strlen(out); - char *buf_fail = malloc(len_fail); - - free(out); - - /* Print to buffer */ - if (cJSON_PrintPreallocated(root, buf, len, 1) != 0) { - printf("cJSON_PrintPreallocated failed (but it should not have!)\n"); - free(buf_fail); - free(buf); - exit(EXIT_FAILURE); - } else { - printf("cJSON_PrintPreallocated:\n%s\n", buf); - } - - /* unformatted output */ - if (cJSON_PrintPreallocated(root, buf, len, 0) != 0) { - printf("cJSON_PrintPreallocated failed (but it should not have!)\n"); - free(buf_fail); - free(buf); + if (print_preallocated(root) != 0) { + cJSON_Delete(root); exit(EXIT_FAILURE); - } else { - printf("cJSON_PrintPreallocated (unformatted):\n%s\n", buf); - } - - free(buf); - - /* force it to fail */ - if (cJSON_PrintPreallocated(root, buf_fail, len_fail, 1) != 0) { - printf("cJSON_PrintPreallocated failed (as expected)\n"); - } else { - printf("cJSON_PrintPreallocated worked (but it should have failed!)\n"); - printf("cJSON_PrintPreallocated:\n%s\n", buf_fail); } - - free(buf_fail); cJSON_Delete(root); root = cJSON_CreateObject(); cJSON_AddNumberToObject(root, "number", 1.0 / zero); - out = cJSON_Print(root); - printf("%s\n", out); - cJSON_Delete(root); - - free(out); + if (print_preallocated(root) != 0) { + cJSON_Delete(root); + exit(EXIT_FAILURE); + } + cJSON_Delete(root); } int main(void)