• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/json-c/tests/test_set_value.c

  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