test_int_add.c 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include <assert.h>
  2. #include <stdio.h>
  3. #include "json.h"
  4. int main(int argc, char **argv)
  5. {
  6. json_object *tmp = json_object_new_int(123);
  7. json_object_int_inc(tmp, 123);
  8. assert(json_object_get_int(tmp) == 246);
  9. json_object_put(tmp);
  10. printf("INT ADD PASSED\n");
  11. tmp = json_object_new_int(INT32_MAX);
  12. json_object_int_inc(tmp, 100);
  13. assert(json_object_get_int(tmp) == INT32_MAX);
  14. assert(json_object_get_int64(tmp) == (int64_t)INT32_MAX + 100L);
  15. json_object_put(tmp);
  16. printf("INT ADD OVERFLOW PASSED\n");
  17. tmp = json_object_new_int(INT32_MIN);
  18. json_object_int_inc(tmp, -100);
  19. assert(json_object_get_int(tmp) == INT32_MIN);
  20. assert(json_object_get_int64(tmp) == (int64_t)INT32_MIN - 100L);
  21. json_object_put(tmp);
  22. printf("INT ADD UNDERFLOW PASSED\n");
  23. tmp = json_object_new_int64(321321321);
  24. json_object_int_inc(tmp, 321321321);
  25. assert(json_object_get_int(tmp) == 642642642);
  26. json_object_put(tmp);
  27. printf("INT64 ADD PASSED\n");
  28. tmp = json_object_new_int64(INT64_MAX);
  29. json_object_int_inc(tmp, 100);
  30. assert(json_object_get_int64(tmp) == INT64_MAX);
  31. json_object_int_inc(tmp, -100);
  32. assert(json_object_get_int64(tmp) != INT64_MAX);
  33. json_object_put(tmp);
  34. printf("INT64 ADD OVERFLOW PASSED\n");
  35. tmp = json_object_new_int64(INT64_MIN);
  36. json_object_int_inc(tmp, -100);
  37. assert(json_object_get_int64(tmp) == INT64_MIN);
  38. json_object_int_inc(tmp, 100);
  39. assert(json_object_get_int64(tmp) != INT64_MIN);
  40. json_object_put(tmp);
  41. printf("INT64 ADD UNDERFLOW PASSED\n");
  42. printf("PASSED\n");
  43. return 0;
  44. }