You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_set_value.c 2.6 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #include <assert.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include "json.h"
  5. int main(int argc, char **argv)
  6. {
  7. json_object *tmp=json_object_new_int(123);
  8. assert (json_object_get_int(tmp)==123);
  9. json_object_set_int(tmp,321);
  10. assert (json_object_get_int(tmp)==321);
  11. printf("INT PASSED\n");
  12. json_object_set_int64(tmp,(int64_t)321321321);
  13. assert (json_object_get_int64(tmp)==321321321);
  14. json_object_put(tmp);
  15. printf("INT64 PASSED\n");
  16. tmp=json_object_new_uint64(123);
  17. assert (json_object_get_int(tmp)==123);
  18. assert (json_object_get_int64(tmp)==123);
  19. assert (json_object_get_uint64(tmp)==123);
  20. json_object_set_uint64(tmp,(uint64_t)321321321);
  21. assert (json_object_get_uint64(tmp)==321321321);
  22. json_object_set_uint64(tmp,9223372036854775808U);
  23. assert (json_object_get_uint64(tmp)==9223372036854775808U);
  24. json_object_put(tmp);
  25. printf("UINT64 PASSED\n");
  26. tmp=json_object_new_boolean(1);
  27. assert (json_object_get_boolean(tmp)==1);
  28. json_object_set_boolean(tmp,0);
  29. assert (json_object_get_boolean(tmp)==0);
  30. json_object_set_boolean(tmp,1);
  31. assert (json_object_get_boolean(tmp)==1);
  32. json_object_put(tmp);
  33. printf("BOOL PASSED\n");
  34. tmp=json_object_new_double(12.34);
  35. assert (json_object_get_double(tmp)==12.34);
  36. json_object_set_double(tmp,34.56);
  37. assert (json_object_get_double(tmp)==34.56);
  38. json_object_set_double(tmp,6435.34);
  39. assert (json_object_get_double(tmp)==6435.34);
  40. json_object_set_double(tmp,2e21);
  41. assert (json_object_get_int64(tmp)==INT64_MAX);
  42. assert (json_object_get_uint64(tmp)==UINT64_MAX);
  43. json_object_set_double(tmp,-2e21);
  44. assert (json_object_get_int64(tmp)==INT64_MIN);
  45. assert (json_object_get_uint64(tmp)==0);
  46. json_object_put(tmp);
  47. printf("DOUBLE PASSED\n");
  48. #define SHORT "SHORT"
  49. #define MID "A MID STRING"
  50. // 12345678901234567890123456789012....
  51. #define HUGE "A string longer than 32 chars as to check non local buf codepath"
  52. tmp=json_object_new_string(SHORT);
  53. assert (strcmp(json_object_get_string(tmp),SHORT)==0);
  54. json_object_set_string(tmp,MID);
  55. assert (strcmp(json_object_get_string(tmp),MID)==0);
  56. json_object_set_string(tmp,HUGE);
  57. assert (strcmp(json_object_get_string(tmp),HUGE)==0);
  58. json_object_set_string(tmp,SHORT);
  59. assert (strcmp(json_object_get_string(tmp),SHORT)==0);
  60. json_object_put(tmp);
  61. printf("STRING PASSED\n");
  62. tmp = json_tokener_parse("1.234");
  63. json_object_set_double(tmp, 12.3);
  64. const char *serialized = json_object_to_json_string(tmp);
  65. fprintf(stderr, "%s\n", serialized);
  66. assert(strncmp(serialized, "12.3", 4)==0);
  67. json_object_put(tmp);
  68. printf("PARSE AND SET PASSED\n");
  69. printf("PASSED\n");
  70. return 0;
  71. }