1 #include <assert.h> 2 #include <stdio.h> 3 #include <string.h> 4 5 #include "json.h" 6 7 int main(int argc, char **argv) 8 { 9 json_object *tmp = json_object_new_int(123); 10 assert(json_object_get_int(tmp) == 123); 11 json_object_set_int(tmp, 321); 12 assert(json_object_get_int(tmp) == 321); 13 printf("INT PASSED\n"); 14 json_object_set_int64(tmp, (int64_t)321321321); 15 assert(json_object_get_int64(tmp) == 321321321); 16 json_object_put(tmp); 17 printf("INT64 PASSED\n"); 18 tmp = json_object_new_uint64(123); 19 assert(json_object_get_boolean(tmp) == 1); 20 assert(json_object_get_int(tmp) == 123); 21 assert(json_object_get_int64(tmp) == 123); 22 assert(json_object_get_uint64(tmp) == 123); 23 assert(json_object_get_double(tmp) == 123.000000); 24 json_object_set_uint64(tmp, (uint64_t)321321321); 25 assert(json_object_get_uint64(tmp) == 321321321); 26 json_object_set_uint64(tmp, 9223372036854775808U); 27 assert(json_object_get_int(tmp) == INT32_MAX); 28 assert(json_object_get_uint64(tmp) == 9223372036854775808U); 29 json_object_put(tmp); 30 printf("UINT64 PASSED\n"); 31 tmp = json_object_new_boolean(1); 32 assert(json_object_get_boolean(tmp) == 1); 33 json_object_set_boolean(tmp, 0); 34 assert(json_object_get_boolean(tmp) == 0); 35 json_object_set_boolean(tmp, 1); 36 assert(json_object_get_boolean(tmp) == 1); 37 json_object_put(tmp); 38 printf("BOOL PASSED\n"); 39 tmp = json_object_new_double(12.34); 40 assert(json_object_get_double(tmp) == 12.34); 41 json_object_set_double(tmp, 34.56); 42 assert(json_object_get_double(tmp) == 34.56); 43 json_object_set_double(tmp, 6435.34); 44 assert(json_object_get_double(tmp) == 6435.34); 45 json_object_set_double(tmp, 2e21); 46 assert(json_object_get_int(tmp) == INT32_MAX); 47 assert(json_object_get_int64(tmp) == INT64_MAX); 48 assert(json_object_get_uint64(tmp) == UINT64_MAX); 49 json_object_set_double(tmp, -2e21); 50 assert(json_object_get_int(tmp) == INT32_MIN); 51 assert(json_object_get_int64(tmp) == INT64_MIN); 52 assert(json_object_get_uint64(tmp) == 0); 53 json_object_put(tmp); 54 printf("DOUBLE PASSED\n"); 55 #define SHORT "SHORT" 56 #define MID "A MID STRING" 57 // 12345678901234567890123456789012.... 58 #define HUGE "A string longer than 32 chars as to check non local buf codepath" 59 tmp = json_object_new_string(MID); 60 assert(strcmp(json_object_get_string(tmp), MID) == 0); 61 assert(strcmp(json_object_to_json_string(tmp), "\"" MID "\"") == 0); 62 json_object_set_string(tmp, SHORT); 63 assert(strcmp(json_object_get_string(tmp), SHORT) == 0); 64 assert(strcmp(json_object_to_json_string(tmp), "\"" SHORT "\"") == 0); 65 json_object_set_string(tmp, HUGE); 66 assert(strcmp(json_object_get_string(tmp), HUGE) == 0); 67 assert(strcmp(json_object_to_json_string(tmp), "\"" HUGE "\"") == 0); 68 json_object_set_string(tmp, SHORT); 69 assert(strcmp(json_object_get_string(tmp), SHORT) == 0); 70 assert(strcmp(json_object_to_json_string(tmp), "\"" SHORT "\"") == 0); 71 json_object_put(tmp); 72 printf("STRING PASSED\n"); 73 74 #define STR "STR" 75 #define DOUBLE "123.123" 76 #define DOUBLE_E "12E+3" 77 #define DOUBLE_STR "123.123STR" 78 #define DOUBLE_OVER "1.8E+308" 79 #define DOUBLE_OVER_NEGATIVE "-1.8E+308" 80 tmp = json_object_new_string(STR); 81 assert(json_object_get_double(tmp) == 0.0); 82 json_object_set_string(tmp, DOUBLE); 83 assert(json_object_get_double(tmp) == 123.123000); 84 json_object_set_string(tmp, DOUBLE_E); 85 assert(json_object_get_double(tmp) == 12000.000000); 86 json_object_set_string(tmp, DOUBLE_STR); 87 assert(json_object_get_double(tmp) == 0.0); 88 json_object_set_string(tmp, DOUBLE_OVER); 89 assert(json_object_get_double(tmp) == 0.0); 90 json_object_set_string(tmp, DOUBLE_OVER_NEGATIVE); 91 assert(json_object_get_double(tmp) == 0.0); 92 json_object_put(tmp); 93 printf("STRINGTODOUBLE PASSED\n"); 94 95 tmp = json_tokener_parse("1.234"); 96 json_object_set_double(tmp, 12.3); 97 const char *serialized = json_object_to_json_string(tmp); 98 fprintf(stderr, "%s\n", serialized); 99 assert(strncmp(serialized, "12.3", 4) == 0); 100 json_object_put(tmp); 101 printf("PARSE AND SET PASSED\n"); 102 103 printf("PASSED\n"); 104 return 0; 105 } 106
This page was automatically generated by LXR 0.3.1. • OpenWrt