2 * Verify INTEGER values with greater than 32 bits range.
15 static unsigned long i2ul(const INTEGER_t *i) {
17 int ret = asn_INTEGER2ulong(i, &l);
22 static long i2l(const INTEGER_t *i) {
24 int ret = asn_INTEGER2long(i, &l);
29 static void ul2i(INTEGER_t *i, unsigned long l) {
30 int ret = asn_ulong2INTEGER(i, l);
34 static void l2i(INTEGER_t *i, long l) {
35 int ret = asn_long2INTEGER(i, l);
40 verify(int testNo, T_t *ti) {
43 unsigned char buf[20];
46 fprintf(stderr, "%d IN: { %lu, %lu, %ld, %ld }\n", testNo,
47 i2ul(&ti->unsigned33), i2ul(&ti->unsigned42),
48 i2l(&ti->signed33), i2l(&ti->signed33ext)
51 er = uper_encode_to_buffer(&asn_DEF_T, 0, ti, buf, sizeof buf);
52 assert(er.encoded >= 33 + 42 + 33 + 1 + 33);
54 rv = uper_decode(0, &asn_DEF_T, (void *)&to, buf, sizeof buf, 0, 0);
55 assert(rv.code == RC_OK);
57 fprintf(stderr, "%d ENC: %2x%2x%2x%2x %2x%2x%2x%2x\n", testNo,
58 buf[0], buf[1], buf[2], buf[3],
59 buf[4], buf[5], buf[6], buf[7]);
60 fprintf(stderr, "%d OUT: { %lu, %lu, %ld, %ld } vs { %lu, %lu, %ld, %ld }\n",
62 i2ul(&ti->unsigned33), i2ul(&ti->unsigned42),
63 i2l(&ti->signed33), i2l(&ti->signed33ext),
64 i2ul(&to->unsigned33), i2ul(&to->unsigned42),
65 i2l(&to->signed33), i2l(&to->signed33ext));
66 assert(i2ul(&ti->unsigned33) == i2ul(&to->unsigned33));
67 assert(i2ul(&ti->unsigned42) == i2ul(&to->unsigned42));
68 assert(i2l(&ti->signed33) == i2l(&to->signed33));
69 assert(i2l(&ti->signed33ext) == i2l(&to->signed33ext));
71 xer_fprint(stderr, &asn_DEF_T, ti);
72 xer_fprint(stderr, &asn_DEF_T, to);
73 ASN_STRUCT_FREE(asn_DEF_T, to);
77 NO_encode(int testNo, T_t *ti) {
79 unsigned char buf[16];
81 fprintf(stderr, "%d IN: { %lu, %lu, %ld, %ld }\n", testNo,
82 i2ul(&ti->unsigned33), i2ul(&ti->unsigned42),
83 i2l(&ti->signed33), i2l(&ti->signed33ext)
86 er = uper_encode_to_buffer(&asn_DEF_T, 0, ti, buf, sizeof buf);
87 assert(er.encoded == -1);
93 memset(&ti, 0, sizeof(ti));
94 ul2i(&ti.unsigned33, 0);
95 ul2i(&ti.unsigned42, 0);
97 l2i(&ti.signed33ext, 0);
99 ASN_STRUCT_RESET(asn_DEF_T, &ti);
101 ul2i(&ti.unsigned33, 1);
102 ul2i(&ti.unsigned42, 1);
103 l2i(&ti.signed33, 1);
104 l2i(&ti.signed33ext, 1);
106 ASN_STRUCT_RESET(asn_DEF_T, &ti);
108 ul2i(&ti.unsigned33, 5000000000);
109 ul2i(&ti.unsigned42, 3153600000000);
110 l2i(&ti.signed33, 4000000000);
111 l2i(&ti.signed33ext, 4000000000);
113 ASN_STRUCT_RESET(asn_DEF_T, &ti);
115 ul2i(&ti.unsigned33, -1);
116 ul2i(&ti.unsigned42, 0);
117 l2i(&ti.signed33, 0);
118 l2i(&ti.signed33ext, 0);
120 ASN_STRUCT_RESET(asn_DEF_T, &ti);
122 ul2i(&ti.unsigned33, 0);
123 ul2i(&ti.unsigned42, -1);
124 l2i(&ti.signed33, 0);
125 l2i(&ti.signed33ext, 0);
127 ASN_STRUCT_RESET(asn_DEF_T, &ti);
129 ul2i(&ti.unsigned33, 0);
130 ul2i(&ti.unsigned42, 0);
131 l2i(&ti.signed33, -4000000000-1);
132 l2i(&ti.signed33ext, 0);
134 ASN_STRUCT_RESET(asn_DEF_T, &ti);
136 ul2i(&ti.unsigned33, 0);
137 ul2i(&ti.unsigned42, 0);
138 l2i(&ti.signed33, 0);
139 l2i(&ti.signed33ext, -4000000000-1);
140 assert(ti.signed33ext.size == 5);
141 verify(7, &ti); /* signed33ext is extensible */
142 ASN_STRUCT_RESET(asn_DEF_T, &ti);
144 ul2i(&ti.unsigned33, 5000000000 + 1);
145 ul2i(&ti.unsigned42, 0);
146 l2i(&ti.signed33, 0);
147 l2i(&ti.signed33ext, 0);
149 ASN_STRUCT_RESET(asn_DEF_T, &ti);
151 ul2i(&ti.unsigned33, 0);
152 ul2i(&ti.unsigned42, 3153600000000 + 1);
153 l2i(&ti.signed33, 0);
154 l2i(&ti.signed33ext, 0);
156 ASN_STRUCT_RESET(asn_DEF_T, &ti);
158 ul2i(&ti.unsigned33, 5000000000 - 1);
159 ul2i(&ti.unsigned42, 3153600000000 - 1);
160 l2i(&ti.signed33, 4000000000 - 1);
161 l2i(&ti.signed33ext, 4000000000 - 1);
163 ASN_STRUCT_RESET(asn_DEF_T, &ti);
165 ul2i(&ti.unsigned33, 0);
166 ul2i(&ti.unsigned42, 0);
167 l2i(&ti.signed33, 0);
168 l2i(&ti.signed33ext, 4000000000 + 1);
170 ASN_STRUCT_RESET(asn_DEF_T, &ti);