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

Sources/json-c/tests/test_int_add.c

  1 #include <assert.h>
  2 #include <stdio.h>
  3 
  4 #include "json.h"
  5 
  6 int main(int argc, char **argv)
  7 {
  8         json_object *tmp = json_object_new_int(123);
  9         json_object_int_inc(tmp, 123);
 10         assert(json_object_get_int(tmp) == 246);
 11         json_object_put(tmp);
 12         printf("INT ADD PASSED\n");
 13         tmp = json_object_new_int(INT32_MAX);
 14         json_object_int_inc(tmp, 100);
 15         assert(json_object_get_int(tmp) == INT32_MAX);
 16         assert(json_object_get_int64(tmp) == (int64_t)INT32_MAX + 100L);
 17         json_object_put(tmp);
 18         printf("INT ADD OVERFLOW PASSED\n");
 19         tmp = json_object_new_int(INT32_MIN);
 20         json_object_int_inc(tmp, -100);
 21         assert(json_object_get_int(tmp) == INT32_MIN);
 22         assert(json_object_get_int64(tmp) == (int64_t)INT32_MIN - 100L);
 23         json_object_put(tmp);
 24         printf("INT ADD UNDERFLOW PASSED\n");
 25         tmp = json_object_new_int64(321321321);
 26         json_object_int_inc(tmp, 321321321);
 27         assert(json_object_get_int(tmp) == 642642642);
 28         json_object_put(tmp);
 29         printf("INT64 ADD PASSED\n");
 30         tmp = json_object_new_int64(INT64_MAX);
 31         json_object_int_inc(tmp, 100);
 32         assert(json_object_get_int64(tmp) == INT64_MAX);
 33         assert(json_object_get_uint64(tmp) == (uint64_t)INT64_MAX + 100U);
 34         json_object_int_inc(tmp, -100);
 35         assert(json_object_get_int64(tmp) == INT64_MAX);
 36         assert(json_object_get_uint64(tmp) == (uint64_t)INT64_MAX);
 37         json_object_put(tmp);
 38         printf("INT64 ADD OVERFLOW PASSED\n");
 39         tmp = json_object_new_int64(INT64_MIN);
 40         json_object_int_inc(tmp, -100);
 41         assert(json_object_get_int64(tmp) == INT64_MIN);
 42         json_object_int_inc(tmp, 100);
 43         assert(json_object_get_int64(tmp) != INT64_MIN);
 44         json_object_put(tmp);
 45         printf("INT64 ADD UNDERFLOW PASSED\n");
 46         // uint64 + negative int64--> negative int64
 47         tmp = json_object_new_uint64(400);
 48         json_object_int_inc(tmp, -200);
 49         assert(json_object_get_int64(tmp) == 200);
 50         assert(json_object_get_uint64(tmp) == 200);
 51         json_object_int_inc(tmp, 200);
 52         assert(json_object_get_int64(tmp) == 400);
 53         assert(json_object_get_uint64(tmp) == 400);
 54         json_object_put(tmp);
 55         printf("UINT64 ADD PASSED\n");
 56         tmp = json_object_new_uint64(UINT64_MAX-50);
 57         json_object_int_inc(tmp, 100);
 58         assert(json_object_get_int64(tmp) == INT64_MAX);
 59         assert(json_object_get_uint64(tmp) == UINT64_MAX);
 60         json_object_put(tmp);
 61         printf("UINT64 ADD OVERFLOW PASSED\n");
 62         tmp = json_object_new_uint64(100);
 63         json_object_int_inc(tmp, -200);
 64         assert(json_object_get_int64(tmp) == -100);
 65         assert(json_object_get_uint64(tmp) == 0);
 66         json_object_put(tmp);
 67         printf("UINT64 ADD UNDERFLOW PASSED\n");
 68 
 69         printf("PASSED\n");
 70         return 0;
 71 }
 72 

This page was automatically generated by LXR 0.3.1.  •  OpenWrt