int main() { check_xer(Enum2_red, "<red/>"); check_xer(Enum2_green, "<green/>"); check_xer(Enum2_blue, "<blue/>"); check_xer(Enum2_orange, "<orange/>"); check_xer(Enum2_alpha, "<alpha/>"); check_xer(Enum2_beta, "<beta/>"); check_xer(Enum2_gamma, "<gamma/>"); return 0; }
int main(int ac, char **av) { uint8_t buf1[] = { 1 }; uint8_t buf2[] = { 0xff }; uint8_t buf3[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; uint8_t buf4[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0 }; uint8_t buf5[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 }; uint8_t buf6[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; uint8_t buf7[] = { 0xff, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; uint8_t buf8[] = { 0x7f, 0x7e, 0x7d, 0x7c }; uint8_t buf9[] = { 0, 0x7f, 0x7e, 0x7d, 0x7c }; uint8_t buf10[] = { 0, 0, 0, 0, 0, 0, 0x7f, 0x7e, 0x7d, 0x7c }; uint8_t buf11[] = { 0x80, 0, 0, 0 }; uint8_t buf12[] = { 0x80, 0 }; uint8_t buf13[] = { 0x80 }; #define CHECK(buf, val, ret) check(buf, sizeof(buf), val, ret) CHECK(buf1, 1, 0); CHECK(buf2, -1, 0); CHECK(buf3, -1, 0); CHECK(buf4, -16, 0); CHECK(buf5, 257, 0); CHECK(buf6, 123, -1); CHECK(buf7, 123, -1); CHECK(buf8, 0x7F7E7D7C, 0); CHECK(buf9, 0x7F7E7D7C, 0); CHECK(buf10, 0x7F7E7D7C, 0); CHECK(buf11, -2147483647-1, 0); /* 0x80000000 */ CHECK(buf12, -32768, 0); CHECK(buf13, -128, 0); check_xer(-1, "", 0); check_xer(-1, "<INTEGER></INTEGER>", 0); check_xer(-1, "<INTEGER> </INTEGER>", 0); check_xer(-1, "<INTEGER>-</INTEGER>", 0); check_xer(-1, "<INTEGER>+</INTEGER>", 0); check_xer(-1, "<INTEGER>+-</INTEGER>", 0); check_xer(0, "<INTEGER>+0</INTEGER>", 0); check_xer(0, "<INTEGER>-0</INTEGER>", 0); check_xer(0, "<INTEGER>+1</INTEGER>", 1); check_xer(0, "<INTEGER>-1</INTEGER>", -1); check_xer(0, "<INTEGER>1</INTEGER>", 1); check_xer(0, "<INTEGER>-15</INTEGER>", -15); check_xer(0, "<INTEGER>+15</INTEGER>", 15); check_xer(0, "<INTEGER>15</INTEGER>", 15); check_xer(0, "<INTEGER> 15</INTEGER>", 15); check_xer(0, "<INTEGER> 15 </INTEGER>", 15); check_xer(0, "<INTEGER>15 </INTEGER>", 15); check_xer(0, "<INTEGER> +15 </INTEGER>", 15); check_xer(-1, "<INTEGER> +15 -</INTEGER>", 0); check_xer(-1, "<INTEGER> +15 1</INTEGER>", 0); check_xer(-1, "<INTEGER>+ 15</INTEGER>", 0); check_xer(-1, "<INTEGER>12<z>34</INTEGER>", 0); check_xer(0, "<INTEGER>1234</INTEGER>", 1234); check_xer(-1, "<INTEGER>1234 5678</INTEGER>", 0); check_xer(0, "<INTEGER>-2147483647</INTEGER>", -2147483647); check_xer(0, "<INTEGER>-2147483648</INTEGER>", -2147483647-1); check_xer(0, "<INTEGER>+2147483647</INTEGER>", 2147483647); check_xer(0, "<INTEGER>2147483647</INTEGER>", 2147483647); if(sizeof(long) == 4) { check_xer(-1, "<INTEGER>2147483648</INTEGER>", 0); check_xer(-1, "<INTEGER>2147483649</INTEGER>", 0); check_xer(-1, "<INTEGER>3147483649</INTEGER>", 0); check_xer(-1, "<INTEGER>4147483649</INTEGER>", 0); check_xer(-1, "<INTEGER>5147483649</INTEGER>", 0); /* special */ check_xer(-1, "<INTEGER>9147483649</INTEGER>", 0); check_xer(-1, "<INTEGER>9999999999</INTEGER>", 0); } return 0; }