From b2284470f9c3ac437c720bc838972e824b77cdd3 Mon Sep 17 00:00:00 2001 From: Lev Walkin Date: Fri, 14 Jul 2017 15:18:30 +0400 Subject: [PATCH] add OER INTEGER constraint check --- asn1c/tests/check-src/check64-135.-gen-OER.c | 22 ++++++++++++++ tests/135-oer-long-OK.asn1 | 30 ++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 asn1c/tests/check-src/check64-135.-gen-OER.c create mode 100644 tests/135-oer-long-OK.asn1 diff --git a/asn1c/tests/check-src/check64-135.-gen-OER.c b/asn1c/tests/check-src/check64-135.-gen-OER.c new file mode 100644 index 00000000..5b709ab7 --- /dev/null +++ b/asn1c/tests/check-src/check64-135.-gen-OER.c @@ -0,0 +1,22 @@ +/* + * Verify OER with constrained INTEGER code gen. + */ +#undef NDEBUG +#include +#include +#include +#include +#include +#include +#include + +#include + +int main() { + T_t t; + + memset(&t, 0, sizeof(t)); + + return 0; +} + diff --git a/tests/135-oer-long-OK.asn1 b/tests/135-oer-long-OK.asn1 new file mode 100644 index 00000000..2645bba0 --- /dev/null +++ b/tests/135-oer-long-OK.asn1 @@ -0,0 +1,30 @@ + +-- OK: Everything is fine +-- Also see .127 for narrower integer types. + +-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1) +-- .spelio.software.asn1c.test (9363.1.5.1) +-- .134 + +ModuleOERLong + { iso org(3) dod(6) internet (1) private(4) enterprise(1) + spelio(9363) software(1) asn1c(5) test(1) 135 } + DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + + -- Supported only on 64-bit platforms. + T ::= SEQUENCE { + unsigned8 INTEGER (0..255), -- OER 1 byte + unsigned16 INTEGER (0..65535), -- OER 2 bytes + unsigned16stack INTEGER (0..32767)(0..255), -- OER 1 byte + unsigned16stack-ext INTEGER (0..32767)(0..255,...), -- OER 2 bytes + unsigned33 INTEGER (0..5000000000), -- OER 8 bytes + signed8 INTEGER (-128..127), -- OER 1 byte + signed16 INTEGER (-32768..32767), -- OER 2 bytes + signed16stack INTEGER (-32768..32767)(-128..127), -- OER 1 byte + signed16stack-ext INTEGER (-32768..32767)(-128..127,...), -- OER 2 b + signed32 INTEGER (-2000000000..2000000000), -- OER 4 bytes + signed33ext INTEGER (-4000000000..4000000000,...) -- OER vrble + } + +END