コード例 #1
0
ファイル: check-03.-fwide-types.c プロジェクト: Arcen/asn1c
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;
}
コード例 #2
0
ファイル: check-INTEGER.c プロジェクト: redcurrant/asn1c
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;
}