check LP64 integers
diff --git a/skeletons/tests/check-INTEGER.c b/skeletons/tests/check-INTEGER.c
index a299fcd..008528f 100644
--- a/skeletons/tests/check-INTEGER.c
+++ b/skeletons/tests/check-INTEGER.c
@@ -122,8 +122,6 @@
assert(rlong == rlong2);
}
- return 0;
-
shared_scratch_start = scratch;
ret = INTEGER_print(&asn_DEF_INTEGER, &val, 0, _print2buf, scratch);
assert(shared_scratch_start < scratch + sizeof(scratch));
@@ -240,6 +238,8 @@
check_xer(0, "<INTEGER>+2147483647</INTEGER>", 2147483647);
check_xer(0, "<INTEGER>2147483647</INTEGER>", 2147483647);
if(sizeof(long) == 4) {
+ check_xer( 0, "<INTEGER>-2147483648</INTEGER>", -2147483648);
+ check_xer(-1, "<INTEGER>-2147483649</INTEGER>", 0);
check_xer(-1, "<INTEGER>2147483648</INTEGER>", 0);
check_xer(-1, "<INTEGER>2147483649</INTEGER>", 0);
check_xer(-1, "<INTEGER>3147483649</INTEGER>", 0);
@@ -247,6 +247,30 @@
check_xer(-1, "<INTEGER>5147483649</INTEGER>", 0); /* special */
check_xer(-1, "<INTEGER>9147483649</INTEGER>", 0);
check_xer(-1, "<INTEGER>9999999999</INTEGER>", 0);
+ check_xer(-1, "<INTEGER>-5147483649</INTEGER>", 0);/* special */
+ check_xer(-1, "<INTEGER>-9147483649</INTEGER>", 0);
+ check_xer(-1, "<INTEGER>-9999999999</INTEGER>", 0);
+ }
+ if(sizeof(long) == 8) {
+ check_xer(0, "<INTEGER>2147483648</INTEGER>", 2147483648);
+ check_xer(0, "<INTEGER>2147483649</INTEGER>", 2147483649);
+ check_xer(0, "<INTEGER>3147483649</INTEGER>", 3147483649);
+ check_xer(0, "<INTEGER>4147483649</INTEGER>", 4147483649);
+ check_xer(0, "<INTEGER>5147483649</INTEGER>", 5147483649);
+ check_xer(0, "<INTEGER>9147483649</INTEGER>", 9147483649);
+ check_xer(0, "<INTEGER>9999999999</INTEGER>", 9999999999);
+ check_xer(0, "<INTEGER>9223372036854775807</INTEGER>", 9223372036854775807);
+ check_xer(-1, "<INTEGER>9223372036854775808</INTEGER>", 0);
+ check_xer(-1, "<INTEGER>10223372036854775807</INTEGER>", 0);
+ check_xer(-1, "<INTEGER>50223372036854775807</INTEGER>", 0);
+ check_xer(-1, "<INTEGER>100223372036854775807</INTEGER>", 0);
+ check_xer(-1, "<INTEGER>500223372036854775807</INTEGER>", 0);
+ check_xer(0, "<INTEGER>-9223372036854775808</INTEGER>", -9223372036854775808);
+ check_xer(-1, "<INTEGER>-9223372036854775809</INTEGER>", 0);
+ check_xer(-1, "<INTEGER>-10223372036854775807</INTEGER>", 0);
+ check_xer(-1, "<INTEGER>-50223372036854775807</INTEGER>", 0);
+ check_xer(-1, "<INTEGER>-100223372036854775807</INTEGER>", 0);
+ check_xer(-1, "<INTEGER>-500223372036854775807</INTEGER>", 0);
}
return 0;
diff --git a/skeletons/tests/check-OIDs.c b/skeletons/tests/check-OIDs.c
index 7609ed1..0805baa 100644
--- a/skeletons/tests/check-OIDs.c
+++ b/skeletons/tests/check-OIDs.c
@@ -400,13 +400,16 @@
check_parse("1.2147483647.3", 3);
if(sizeof(long) == 4) {
check_parse("1.2147483648.3", -1); /* overflow on ILP32 */
+ check_parse("1.2147483649.3", -1); /* overflow on ILP32 */
check_parse("1.3000000000.3", -1);
check_parse("1.4000000000.3", -1);
check_parse("1.5000000000.3", -1);
check_parse("1.6000000000.3", -1);
check_parse("1.9000000000.3", -1);
- } else {
+ } else if(sizeof(long) == 8) {
check_parse("1.2147483648.3", 3);
+ check_parse("1.9223372036854775807.3", 3);
+ check_parse("1.9223372036854775808.3", -1);
}
check_parse("1.900a0000000.3", -1);
check_parse("1.900a.3", -1);