mirror of
https://github.com/DaveGamble/cJSON.git
synced 2023-08-10 21:13:26 +03:00
use print_preallocated function to test printout of JSON
This commit is contained in:
parent
99896d879c
commit
3917fb5255
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);
|
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);
|
|
||||||
} 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);
|
if (print_preallocated(root) != 0) {
|
||||||
|
cJSON_Delete(root);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
cJSON_Delete(root);
|
cJSON_Delete(root);
|
||||||
|
|
||||||
free(out);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user