Commit a7d1fb39 authored by Lev Walkin's avatar Lev Walkin

check LP64 integers

parent 2e310772
...@@ -122,8 +122,6 @@ check_unsigned(uint8_t *buf, int size, unsigned long check_long, int check_ret) ...@@ -122,8 +122,6 @@ check_unsigned(uint8_t *buf, int size, unsigned long check_long, int check_ret)
assert(rlong == rlong2); assert(rlong == rlong2);
} }
return 0;
shared_scratch_start = scratch; shared_scratch_start = scratch;
ret = INTEGER_print(&asn_DEF_INTEGER, &val, 0, _print2buf, scratch); ret = INTEGER_print(&asn_DEF_INTEGER, &val, 0, _print2buf, scratch);
assert(shared_scratch_start < scratch + sizeof(scratch)); assert(shared_scratch_start < scratch + sizeof(scratch));
...@@ -240,6 +238,8 @@ main(int ac, char **av) { ...@@ -240,6 +238,8 @@ main(int ac, char **av) {
check_xer(0, "<INTEGER>+2147483647</INTEGER>", 2147483647); check_xer(0, "<INTEGER>+2147483647</INTEGER>", 2147483647);
check_xer(0, "<INTEGER>2147483647</INTEGER>", 2147483647); check_xer(0, "<INTEGER>2147483647</INTEGER>", 2147483647);
if(sizeof(long) == 4) { 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>2147483648</INTEGER>", 0);
check_xer(-1, "<INTEGER>2147483649</INTEGER>", 0); check_xer(-1, "<INTEGER>2147483649</INTEGER>", 0);
check_xer(-1, "<INTEGER>3147483649</INTEGER>", 0); check_xer(-1, "<INTEGER>3147483649</INTEGER>", 0);
...@@ -247,6 +247,30 @@ main(int ac, char **av) { ...@@ -247,6 +247,30 @@ main(int ac, char **av) {
check_xer(-1, "<INTEGER>5147483649</INTEGER>", 0); /* special */ check_xer(-1, "<INTEGER>5147483649</INTEGER>", 0); /* special */
check_xer(-1, "<INTEGER>9147483649</INTEGER>", 0); check_xer(-1, "<INTEGER>9147483649</INTEGER>", 0);
check_xer(-1, "<INTEGER>9999999999</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; return 0;
......
...@@ -400,13 +400,16 @@ main() { ...@@ -400,13 +400,16 @@ main() {
check_parse("1.2147483647.3", 3); check_parse("1.2147483647.3", 3);
if(sizeof(long) == 4) { if(sizeof(long) == 4) {
check_parse("1.2147483648.3", -1); /* overflow on ILP32 */ 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.3000000000.3", -1);
check_parse("1.4000000000.3", -1); check_parse("1.4000000000.3", -1);
check_parse("1.5000000000.3", -1); check_parse("1.5000000000.3", -1);
check_parse("1.6000000000.3", -1); check_parse("1.6000000000.3", -1);
check_parse("1.9000000000.3", -1); check_parse("1.9000000000.3", -1);
} else { } else if(sizeof(long) == 8) {
check_parse("1.2147483648.3", 3); 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.900a0000000.3", -1);
check_parse("1.900a.3", -1); check_parse("1.900a.3", -1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment