Browse Source

use print_preallocated function to test printout of JSON

pull/79/head
Kyle Chisholm 8 years ago
committed by Max Bruckner
parent
commit
3917fb5255
  1. 89
      test.c

89
test.c

@ -148,7 +148,6 @@ void create_objects(void)
cJSON *img = NULL; cJSON *img = NULL;
cJSON *thm = NULL; cJSON *thm = NULL;
cJSON *fld = NULL; cJSON *fld = NULL;
char *out = NULL;
int i = 0; int i = 0;
/* Our "days of the week" array: */ /* Our "days of the week" array: */
@ -210,21 +209,20 @@ void create_objects(void)
cJSON_AddNumberToObject(fmt, "frame rate", 24); cJSON_AddNumberToObject(fmt, "frame rate", 24);
/* Print to text */ /* Print to text */
out = cJSON_Print(root); if (print_preallocated(root) != 0) {
/* Delete the cJSON */ cJSON_Delete(root);
exit(EXIT_FAILURE);
}
cJSON_Delete(root); cJSON_Delete(root);
/* print it */
printf("%s\n",out);
/* release the string */
free(out);
/* Our "days of the week" array: */ /* Our "days of the week" array: */
root = cJSON_CreateStringArray(strings, 7); root = cJSON_CreateStringArray(strings, 7);
out = cJSON_Print(root); if (print_preallocated(root) != 0) {
cJSON_Delete(root);
exit(EXIT_FAILURE);
}
cJSON_Delete(root); cJSON_Delete(root);
printf("%s\n", out);
free(out);
/* Our matrix: */ /* Our matrix: */
root = cJSON_CreateArray(); root = cJSON_CreateArray();
@ -235,11 +233,11 @@ void create_objects(void)
/* cJSON_ReplaceItemInArray(root, 1, cJSON_CreateString("Replacement")); */ /* 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); cJSON_Delete(root);
printf("%s\n", out);
free(out);
/* Our "gallery" item: */ /* Our "gallery" item: */
root = cJSON_CreateObject(); root = cJSON_CreateObject();
@ -253,13 +251,13 @@ void create_objects(void)
cJSON_AddStringToObject(thm, "Width", "100"); cJSON_AddStringToObject(thm, "Width", "100");
cJSON_AddItemToObject(img, "IDs", cJSON_CreateIntArray(ids, 4)); 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); cJSON_Delete(root);
printf("%s\n", out);
free(out);
/* Our array of "records": */ /* Our array of "records": */
root = cJSON_CreateArray(); root = cJSON_CreateArray();
for (i = 0; i < 2; i++) 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)); */ /* cJSON_ReplaceItemInObject(cJSON_GetArrayItem(root, 1), "City", cJSON_CreateIntArray(ids, 4)); */
out = cJSON_Print(root); if (print_preallocated(root) != 0) {
printf("%s\n", out); cJSON_Delete(root);
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);
exit(EXIT_FAILURE); 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); cJSON_Delete(root);
root = cJSON_CreateObject(); root = cJSON_CreateObject();
cJSON_AddNumberToObject(root, "number", 1.0 / zero); 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) int main(void)

Loading…
Cancel
Save