Sync with 5.4.0
[deliverable/titan.core.git] / regression_test / negativeTest / negtest.ttcn
1 /******************************************************************************
2 * Copyright (c) 2000-2015 Ericsson Telecom AB
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 ******************************************************************************/
8 module negtest
9 {
10 import from Types all;
11
12 type component MyComp {}
13
14 external function encode_MySeq(in MySeq pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
15 external function encode_MySeqModified(in MySeqModified pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
16 external function encode_MySeqModified2(in MySeqModified2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
17 external function encode_MySeqModified3(in MySeqModified3 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
18 external function encode_MySeqModified4(in MySeqModified4 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
19 external function encode_MySeqModified5(in MySeqModified5 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
20 external function encode_MySeqModifiedT(in MySeqModifiedT pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
21 external function encode_MySeqModified6(in MySeqModified6 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
22 external function encode_MySeqTerr(in MySeqTerr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
23
24 external function encode_MySeqOf(in MySeqOf pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
25 external function encode_MySeqOfModified(in MySeqOfModified pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
26 external function encode_MySeqOfModified2(in MySeqOfModified2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
27
28 external function encode_MyUnion(in MyUnion pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
29 external function encode_MyUnionModified(in MyUnionModified pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
30 external function encode_MyRecursiveSeq(in MyRecursiveSeq pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };
31
32 //TEXT_encoder
33 external function encode_TEXT_Record(in TEXT_record pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
34 external function encode_TEXT_RecordModified(in TEXT_record_modified pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
35 external function encode_TEXT_RecordModified2(in TEXT_record_modified2 pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
36 external function encode_TEXT_RecordModified3(in TEXT_record_modified3 pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
37 external function encode_TEXT_RecordComma(in TEXT_record_comma pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
38 external function encode_TEXT_RecordModified4(in TEXT_record_comma pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
39 external function encode_TEXT_RecordModified5(in TEXT_record_int_bool pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
40 external function encode_TEXT_RecordModified6(in TEXT_record_int_bool2 pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
41 external function encode_TEXT_Record_of(in TEXT_record_of pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
42 external function encode_TEXT_rofint(in TEXT_rofint pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
43 external function encode_TEXT_Union(in TEXT_union pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
44 external function encode_TEXT_Union2(in TEXT_union2 pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
45 external function encode_TEXT_RecordSingle(in TEXT_record_single pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
46 external function encode_TEXT_RecordModified7(in TEXT_record_int_bool3 pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
47 external function encode_TEXT_RecordModified8(in TEXT_record_optional pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
48 external function encode_MyRecursiveRec(in MyRecursiveRec pdu) return charstring with { extension "prototype(convert) encode(TEXT)" };
49
50 const MySeq c_myseq := { i:=321, b:=false }
51 with {
52 erroneous (i) "value := omit"
53 }
54
55 const MySeq c_myseq2 := { i:=321, b:=false }
56 with {
57 erroneous (b) "value := omit"
58 erroneous (i) "value := omit"
59 erroneous (i) "before := '10101'B"
60 erroneous (i) "after := 'ABCD'O"
61 erroneous (b) "after := 3.1415"
62 }
63
64 const MySeq c_myseq3 := { i:=321, b:=false }
65 with {
66 erroneous (b) "before := omit all"
67 }
68
69 const MySeq c_myseq4 := { i:=321, b:=false }
70 with {
71 erroneous (i) "after := omit all"
72 erroneous (i) "value := omit"
73 }
74
75 const MySeq c_myseq5 := { i:=321, b:=false }
76 with {
77 erroneous (i) "after := omit all"
78 erroneous (i) "value := MySeqOf:{11,22,33}"
79 }
80
81 template MySeq t_myseq6_par(template integer p_i, template boolean p_b) := { i:=p_i, b:=p_b }
82 with {
83 erroneous (b) "value := omit"
84 erroneous (i) "value := omit"
85 erroneous (b) "after := MyUnion:{b:=true}"
86 }
87
88 const MySeqOf c_myseqof := { 1,2,3,4,5 }
89 with {
90 erroneous([0]) "after := omit all"
91 erroneous([0]) "value := 3.14"
92 erroneous([0]) "before := 0.0001"
93 }
94
95 const MySeqOf c_myseqof2 := { 1,2,3,4,5 }
96 with {
97 erroneous([2]) "before := omit all"
98 erroneous([2]) "value := false"
99 erroneous([2]) "after := omit all"
100 }
101
102 const MyUnion c_myunion := { s:={ i:=123, b:=true} }
103 with {
104 erroneous (s.i) "value := omit"
105 erroneous (s.b) "value := omit"
106 }
107
108 const MyUnion c_myunion2 := { i:=333 }
109 with {
110 erroneous (i) "value := 3.14"
111 }
112
113 const MyUnion c_myunion3e := { i:=321 }
114 with {
115 erroneous (i) "value(raw) := 'ABCD'O"
116 }
117
118 const MySeqModified2 c_seq_rawerr := { bs:='10101'B, i:=12345, oc:='123456'O, b:=true, r:=3.14 }
119 with {
120 erroneous (bs) "before(raw) := 'ABCDEF'O"
121 erroneous (oc) "after(raw) := 'ABCDEF'O"
122 erroneous (i) "value(raw) := 'FFFFFFFFFFFFFF'O"
123 }
124
125 const MySeqOf c_seqof_rawerr :={ 1, 2, 3, 4, 5 }
126 with {
127 erroneous ([0]) "before(raw) := 'DEADBEEF'O"
128 erroneous ([0]) "after(raw) := 'CAFEFEED'O"
129 erroneous ([3]) "value(raw) := 'BEEBEEFACE'O"
130 }
131
132 const MySeqOf c_seqof_erroneous_inside :={ 1, 2, 3, 4, 5 }
133 with {
134 erroneous ([0]) "before(raw) := 'DEADBEEF'O"
135 erroneous ([0]) "after(raw) := 'CAFEFEED'O"
136 erroneous ([3]) "value := c_seq_rawerr"
137 }
138
139 template MySeq t_myseq_err := { i:=12, b:=true }
140 with {
141 erroneous (i) "value := omit"
142 }
143
144 template MySeq t_myseqpar_err(template integer p_i, template boolean p_b) := { i:=p_i, b:=p_b }
145 with { erroneous (i) "value := omit" erroneous(b) "after := 123" }
146
147 template MySeq t_myseq_err2 := { i:=12, b:=true }
148 with {
149 erroneous (i) "value := MyInt:12"
150 erroneous (b) "value := MyBool:true"
151 }
152
153 const MyRecursiveSeq c_myrecursiveseq := { r := { r := omit } }
154 with { erroneous (r.r) "value:=1" }
155
156 group TEXT_group{
157
158 type record TEXT_record {
159 charstring f1,
160 charstring f2
161 } with { variant "SEPARATOR('\n\r')"};
162
163 type record TEXT_record_modified {
164 charstring f2
165 } with { variant "SEPARATOR('\n\r')"};
166
167 const TEXT_record c_myrecord_err:= {f1:="value1",f2:="value2"}
168 with {
169 erroneous (f2) "before := omit all"
170 }
171
172 type record TEXT_record_modified2 {
173 charstring f1
174 } with { variant "SEPARATOR('\n\r')"};
175
176 const TEXT_record c_myrecord_err2:= {f1:="value1",f2:="value2"}
177 with {
178 erroneous (f1) "after := omit all"
179 }
180
181 type record TEXT_record_modified3 {
182 charstring f1,
183 charstring f2
184 } with { variant "SEPARATOR('\n\r')"};
185
186 const TEXT_record c_myrecord_err3:= {f1:="value1",f2:="value2"}
187 with {
188 erroneous (f1) "value := ""ERRORVALUE1"""
189 erroneous (f2) "value := ""ERRORVALUE2"""
190 }
191
192 type record TEXT_record_comma {
193 charstring f1,
194 charstring f2
195 } with { variant "SEPARATOR(',')"};
196
197 const TEXT_record_comma c_myrecord_err4:= {f1:="value1",f2:="value2"}
198 with {
199 erroneous (f1) "value := ""ERRORVALUE1"""
200 erroneous (f2) "value := ""ERRORVALUE2"""
201 }
202
203 const TEXT_record_comma c_myrecord_err5:= {f1:="value1",f2:="value2"}
204 with {
205 erroneous (f1) "value(raw) := 'FEDA'O"
206 erroneous (f2) "value(raw) := 'ADEF'O"
207 }
208
209 type record TEXT_record_int_bool {
210 integer i,
211 boolean b
212 } with { variant "SEPARATOR('\n\r')"};
213
214 const TEXT_record_int_bool c_myrecord_err6:={i:=12,b:=true}
215 with{
216 erroneous (i) "value := 13"
217 erroneous (b) "value := false"
218 }
219
220 type record TEXT_record_int_bool2 {
221 charstring i,
222 charstring b
223 } with { variant "SEPARATOR('\n\r')"};
224
225 const TEXT_record_int_bool c_myrecord_err7:={i:=12,b:=true}
226 with{
227 erroneous (i) "value(raw) := 'ABCD'O"
228 erroneous (b) "value(raw) := 'BABA'O"
229 }
230
231 const TEXT_record_int_bool c_myrecord_err8:={i:=12,b:=true}
232 with{
233 erroneous (i) "after(raw) := 'ABAB'O"
234 erroneous (b) "before(raw) := 'BABA'O"
235 }
236
237 type record of integer TEXT_rofint with { variant "BEGIN('PDU:'),END(':UDP'),SEPARATOR(',')"};
238
239 const TEXT_rofint c_rofint := { 1,2,3,4,5,6,7,8 }
240 with {
241 erroneous ([0]) "before:=0"
242 }
243
244 type record TEXT_record1{
245 charstring f1,
246 charstring f2
247 } with { variant "BEGIN('Head:'),END(':end'),SEPARATOR(',')"};
248
249 type record of TEXT_record1 TEXT_record_of with { variant "BEGIN('PDU:'),END(':UDP')"};
250
251 const TEXT_record_of c_myrecord_of_err:={{f1:="v1",f2:="v2"},{f1:="v3",f2:="v4"}}
252 with{
253 erroneous ([0]) "value := omit"
254 }
255
256 const TEXT_record_of c_myrecord_of_err2:={{f1:="v1",f2:="v2"},{f1:="v3",f2:="v4"}}
257 with{
258 erroneous ([0].f1) "value := ""f1"""
259 erroneous ([1].f2) "value := ""f2"""
260 }
261
262 const TEXT_record_of c_myrecord_of_err3:={{f1:="v1",f2:="v2"},{f1:="v3",f2:="v4"}}
263 with{
264 erroneous ([0].f1) "value(raw) := '4141'O"
265 erroneous ([0].f2) "value(raw) := '4646'O"
266 erroneous ([1].f1) "value(raw) := '4545'O"
267 erroneous ([1].f2) "value(raw) := '4242'O"
268 }
269
270 type union TEXT_union {
271 charstring f1,
272 charstring f2
273 } with { variant "BEGIN('Head:'),END(':end')";
274 variant (f1) "BEGIN('f1:'),END(':1f')"
275 variant (f2) "BEGIN('f2:'),END(':2f')" };
276
277 const TEXT_union c_mytextunion_err:={f1:="value2"}
278 with{
279 erroneous (f1) "value := TEXT_union.f1:""IRON"""
280 }
281
282 type union TEXT_union2 {
283 charstring f1,
284 charstring f2
285 } with { variant "BEGIN('Head:'),END(':end')"};
286
287 const TEXT_union2 c_mytextunion_err2:={f1:="value2"}
288 with{
289 erroneous (f1) "value(raw) :=TEXT_union.f1:""ABCD"""
290 }
291
292 template TEXT_record t_mytextreq_err := { f1:="ORIG", f2:="INAL" }
293 with {
294 erroneous (f1) "value := omit"
295 }
296
297 type record TEXT_record_int_bool3 {
298 integer i,
299 boolean b
300 }with { variant "BEGIN('BEGIN:'),END(':END'),SEPARATOR('_SEPARATOR_')"};
301
302 const TEXT_record_int_bool3 c_myrecord_err10:={i:=13,b:=true}
303 with{
304 erroneous (i) "before(raw) := '4444'O"
305 erroneous (i) "value(raw) := '2020'O"
306 erroneous (i) "after(raw) := '2222'O"
307 erroneous (b) "before(raw) := '5555'O"
308 erroneous (b) "value(raw) := '3333'O"
309 erroneous (b) "after(raw) := '6666'O"
310 }
311
312 type record TEXT_record_single{
313 charstring s
314 }
315 with { variant "BEGIN('BEGIN:'),END(':END'),SEPARATOR('_SEPARATOR_')"};
316
317 const TEXT_record_single c_myrecord_err11:={s:="SINGLE CHARSTRING"}
318 with{
319 erroneous (s) "before(raw) := '4444'O"
320 erroneous (s) "value(raw) := '2222'O"
321 erroneous (s) "after(raw) := '3333'O"
322 }
323
324 const TEXT_record_int_bool3 c_myrecord_err12:={i:=13,b:=true}
325 with{
326 erroneous (i) "value := omit"
327 erroneous (i) "after(raw) := '4444'O"
328 }
329
330 type record TEXT_record_optional{
331 charstring s optional
332 }
333 with { variant "BEGIN('BEGIN:'),END(':END'),SEPARATOR('_SEPARATOR_')"};
334
335 const TEXT_record_optional c_myrecord_err13:={s:="optional"}
336 with{
337 erroneous (s) "value := omit"
338 }
339
340 type record MyRecursiveRec { MyRecursiveRec s optional } with { variant "BEGIN('<MySeq>')"; variant "END('</MySeq>')"; }
341 const MyRecursiveRec c_myrecursiverec := { s := { s := omit } }
342 with { erroneous (s.s) "value:=""error""" }
343
344 }with {encode "TEXT"}
345
346 // in this testcase the erroneous values are compared with corresponding
347 // modified types by encoding both ways and comparing the resulting octetstring
348 testcase negtest_compare_with_erroneous_types_BER() runs on MyComp
349 {
350 // sequence values
351
352 const MySeqModified c_myseqmod := { i:=omit, b:=false };
353 if (encode_MySeq(c_myseq)==encode_MySeqModified(c_myseqmod))
354 { setverdict(pass); } else { setverdict(fail); }
355
356 const MySeqModified2 c_myseqmod2 := { bs := '10101'B, i := omit, oc := 'ABCD'O, b := omit, r := 3.141500 };
357 if (encode_MySeq(c_myseq2)==encode_MySeqModified2(c_myseqmod2))
358 { setverdict(pass); } else { setverdict(fail); }
359
360 const MySeqModified3 c_myseqmod3 := { b := false };
361 if (encode_MySeq(c_myseq3)==encode_MySeqModified3(c_myseqmod3))
362 { setverdict(pass); } else { setverdict(fail); }
363
364 const MySeqModified4 c_myseqmod4 := {};
365 if (encode_MySeq(c_myseq4)==encode_MySeqModified4(c_myseqmod4))
366 { setverdict(pass); } else { setverdict(fail); }
367
368 const MySeqModified5 c_myseqmod5 := { sof:={11,22,33} };
369 if (encode_MySeq(c_myseq5)==encode_MySeqModified5(c_myseqmod5))
370 { setverdict(pass); } else { setverdict(fail); }
371
372 // sequence of values
373
374 const MySeqOfModified c_myseqofmod := { 0.0001, 3.14 };
375 if (encode_MySeqOf(c_myseqof)==encode_MySeqOfModified(c_myseqofmod))
376 { setverdict(pass); } else { setverdict(fail); }
377
378 const MySeqOfModified2 c_myseqofmod2 := { false };
379 if (encode_MySeqOf(c_myseqof2)==encode_MySeqOfModified2(c_myseqofmod2))
380 { setverdict(pass); } else { setverdict(fail); }
381
382 // union values
383
384 const MyUnionModified c_myunionmod := { s := {} };
385 if (encode_MyUnion(c_myunion)==encode_MyUnionModified(c_myunionmod))
386 { setverdict(pass); } else { setverdict(fail); }
387
388 const MyUnionModified c_myunionmod2 := { r := 3.14 };
389 if (encode_MyUnion(c_myunion2)==encode_MyUnionModified(c_myunionmod2))
390 { setverdict(pass); } else { setverdict(fail); }
391
392 // sequence template
393 var template MySeqModified t_myseqmod := { i:=omit, b:=true };
394 if (encode_MySeq(valueof(t_myseq_err))==encode_MySeqModified(valueof(t_myseqmod)))
395 { setverdict(pass); } else { setverdict(fail); }
396
397 // sequence parametrized template
398 var template MySeqModifiedT t_myseqmod2 := { b:=true, i:=123 };
399 if (encode_MySeq(valueof(t_myseqpar_err(12,true)))==encode_MySeqModifiedT(valueof(t_myseqmod2)))
400 { setverdict(pass); } else { setverdict(fail); }
401
402 var template MySeqModified6 t_myseqmod6 := { u:={b:=true} };
403 if (encode_MySeq(valueof(t_myseq6_par(12,true)))==encode_MySeqModified6(valueof(t_myseqmod6)))
404 { setverdict(pass); } else { setverdict(fail); }
405
406 // sequence with tagged fields
407 var template MySeqTerr t_myseq_terr := { i:=12, b:=true }
408 if (encode_MySeq(valueof(t_myseq_err2))==encode_MySeqTerr(valueof(t_myseq_terr)))
409 { setverdict(pass); } else { setverdict(fail); }
410 }
411
412 // in this testcase the erroneous values are encoded and directly compared with
413 // the expected octetstrings
414 testcase negtest_compare_with_octetstring_BER() runs on MyComp
415 {
416 // sequence with raw value
417 if (encode_MySeqModified2(c_seq_rawerr)=='3023ABCDEF030203A8FFFFFFFFFFFFFF0403123456ABCDEF0101FF0908033331342E452D32'O)
418 { setverdict(pass); } else { setverdict(fail); }
419
420 // sequence of with raw value
421 if (encode_MySeqOf(c_seqof_rawerr)=='3019DEADBEEF020101CAFEFEED020102020103BEEBEEFACE020105'O)
422 { setverdict(pass); } else { setverdict(fail); }
423
424 // sequence of that has another errnoeus sequence inside
425 if (encode_MySeqOf(c_seqof_erroneous_inside)=='3039DEADBEEF020101CAFEFEED0201020201033023ABCDEF030203A8FFFFFFFFFFFFFF0403123456ABCDEF0101FF0908033331342E452D32020105'O)
426 { setverdict(pass); } else { setverdict(fail); }
427
428 // union with raw value
429 if (encode_MyUnion(c_myunion3e)=='ABCD'O)
430 { setverdict(pass); } else { setverdict(fail); }
431
432 // recursive with erroenous embedded on an optional path
433 if (encode_MyRecursiveSeq(c_myrecursiveseq)=='30053003020101'O)
434 { setverdict(pass); } else { setverdict(fail); }
435
436 if (encode_MyRecursiveRec(c_myrecursiverec)=="<MySeq><MySeq>error</MySeq></MySeq>")
437 { setverdict(pass); } else { setverdict(fail); }
438 }
439
440 //////////////////////////////////////////////////////////////////////////////
441
442 type union U {
443 R r,
444 ROF rof,
445 integer i,
446 boolean b
447 }
448 with { encode "TEXT" variant "" }
449
450 type record of integer ROF
451 with { encode "TEXT" variant "" }
452
453 type record R {
454 charstring cs,
455 octetstring os,
456 bitstring bs,
457 ROF rof
458 }
459 with { encode "TEXT" variant "" }
460
461 template U tu := { i := 123 }
462 with {
463 erroneous (b) "value := 777"
464 erroneous (r.rof[10]) "before := omit all"
465 erroneous (rof[7]) "value(raw) := 'ABCD'O"
466 erroneous (r.cs) "value(raw) := 'DEADBEEF'O"
467 erroneous (r.os) "value := omit"
468 erroneous (r.rof[100]) "after := omit all"
469 }
470
471 const ROF c_rofa := { 1,2,3 }
472 with {
473 erroneous ([0]) "value := 333"
474 erroneous ([1]) "value := 333"
475 erroneous ([2]) "value := 333"
476 }
477
478 const ROF c_rofb := { 1,2,3 }
479 with {
480 erroneous ([0],[1],[2]) "value := 333"
481 }
482
483 const ROF c_rof1 := {1,2,3}
484 const ROF c_rof2 := c_rof1 with { erroneous ([0],[1],[2]) "after := 11" }
485 const ROF c_rof3 := {1,2,3} with { erroneous ([0],[1],[2]) "after := 11" }
486
487 const ROF c_rof1b := {1,2,3} with { erroneous ([0],[1],[2]) "after := 22" }
488 const ROF c_rof2b := c_rof1b with { erroneous ([0],[1],[2]) "after := 11" }
489 const ROF c_rof3b := {1,2,3} with { erroneous ([0],[1],[2]) "after := 11" }
490
491 testcase erroneous_logging() runs on MyComp
492 {
493 if (log2str(tu)=="{ i := 123 } with erroneous { " &
494 "{ value b := 777 } " &
495 "{ value(raw) r.cs := 'DEADBEEF'O } " &
496 "{ value r.os := omit } " &
497 "{ before r.rof[10] := omit all } " &
498 "{ after r.rof[100] := omit all } " &
499 "{ value(raw) rof[7] := 'ABCD'O } " &
500 "}")
501 { setverdict(pass); } else { setverdict(fail); }
502
503 // multiple qualifiers in one erroneous
504 if (log2str(c_rofa)==log2str(c_rofb))
505 { setverdict(pass); } else { setverdict(fail); }
506
507 // erroneous references a non-erroneous
508 if (log2str(c_rof2)==log2str(c_rof3))
509 { setverdict(pass); } else { setverdict(fail); }
510
511 // erroneous references other erroneous
512 if (log2str(c_rof2b)==log2str(c_rof3b))
513 { setverdict(pass); } else { setverdict(fail); }
514 }
515
516 // Text encode negtest
517 // in this testcase the erroneous values are compared with corresponding
518 // modified types by encoding both ways and comparing the resulting octetstring
519 testcase negtest_compare_with_erroneous_types_TEXT() runs on MyComp
520 {
521 // sequence values
522 const TEXT_record_modified c_mytextrecord := { f2:="value2" };
523 if (encode_TEXT_Record(c_myrecord_err)==encode_TEXT_RecordModified(c_mytextrecord))
524 { setverdict(pass); } else {
525 setverdict(fail);
526 log ("encode_TEXT_Record(c_myrecord_err)= " , encode_TEXT_Record(c_myrecord_err)) ;
527 }
528
529 const TEXT_record_modified2 c_mytextrecord2 := { f1:="value1" };
530 if (encode_TEXT_Record(c_myrecord_err2)==encode_TEXT_RecordModified2(c_mytextrecord2))
531 { setverdict(pass); } else {
532 setverdict(fail);
533 log ("encode_TEXT_Record(c_myrecord_err2)= " , encode_TEXT_Record(c_myrecord_err2)) ;
534 }
535
536 const TEXT_record_modified3 c_mytextrecord3 := { f1:="ERRORVALUE1", f2:="ERRORVALUE2" };
537 if (encode_TEXT_Record(c_myrecord_err3)==encode_TEXT_RecordModified3(c_mytextrecord3))
538 { setverdict(pass); } else {
539 setverdict(fail);
540 log ("encode_TEXT_Record(c_myrecord_err3)= " , encode_TEXT_Record(c_myrecord_err3));
541 log ("encode_TEXT_RecordModified3(c_mytextrecord3)= " , encode_TEXT_RecordModified3(c_mytextrecord3));
542 }
543
544 const TEXT_record_comma c_mytextrecord4 := { f1:="ERRORVALUE1", f2:="ERRORVALUE2" };
545 if (encode_TEXT_RecordComma(c_myrecord_err4)==encode_TEXT_RecordModified4(c_mytextrecord4))
546 { setverdict(pass); } else {
547 setverdict(fail);
548 log ("encode_TEXT_RecordComma(c_myrecord_err4)= " , encode_TEXT_RecordComma(c_myrecord_err4));
549 log ("encode_TEXT_RecordModified4(c_mytextrecord4)= " , encode_TEXT_RecordModified4(c_mytextrecord4));
550 }
551
552 //const TEXT_record_comma c_mytextrecord5 := { f1:="FEDA", f2:="ADEF" };
553 var charstring vl_encoded:=encode_TEXT_RecordComma(c_myrecord_err5);
554 var charstring vl_expected:=char(0, 0, 0, 254) & char(0, 0, 0, 218) & "," & char(0, 0, 0, 173) & char(0, 0, 0, 239);
555
556 //if (encode_TEXT_RecordComma(c_myrecord_err5)==char(0, 0, 0, 254) & char(0, 0, 0, 218) & "," & char(0, 0, 0, 173) & char(0, 0, 0, 239) )//encode_TEXT_RecordModified4(c_mytextrecord5))
557
558 if(vl_encoded==vl_expected)
559 { setverdict(pass); } else {
560 setverdict(fail);
561 log("encoded :",vl_encoded);
562 log("expected:",vl_expected);
563 //log ("encode_TEXT_RecordComma(c_myrecord_err5)= " , encode_TEXT_RecordComma(c_myrecord_err5));
564 //log ("Encode_TEXT_RecordModified4(c_mytextrecord5)= " , char(0, 0, 0, 254) & char(0, 0, 0, 218) & "," & char(0, 0, 0, 173) & char(0, 0, 0, 239) );
565 }
566
567 const TEXT_record_int_bool c_mytextrecord6 := { i:=13 , b:=false };
568 if (encode_TEXT_RecordModified5(c_myrecord_err6)==encode_TEXT_RecordModified5(c_mytextrecord6))
569 { setverdict(pass); } else {
570 setverdict(fail);
571 log ("encode_TEXT_RecordModified5(c_myrecord_err6)= " , encode_TEXT_RecordModified5(c_myrecord_err6));
572 log ("encode_TEXT_RecordModified5(c_mytextrecord6)= " , encode_TEXT_RecordModified5(c_mytextrecord6));
573 }
574
575 const TEXT_record_int_bool2 c_mytextrecord7 := { i:="ABCD" , b:="BABA" };
576 vl_encoded:=encode_TEXT_RecordModified5(c_myrecord_err7);
577 vl_expected:=char(0, 0, 0, 171) & char(0, 0, 0, 205) & "\n\r" & char(0, 0, 0, 186) & char(0, 0, 0, 186); //'ABCD'O \n\r'BABA'O
578 if (vl_encoded==vl_expected)
579 { setverdict(pass); } else {
580 setverdict(fail);
581 log("encoded :",vl_encoded);
582 log("expected:",vl_expected)
583 //log ("encode_TEXT_RecordModified5(c_myrecord_err7)= " , encode_TEXT_RecordModified5(c_myrecord_err7));
584 //log ("encode_TEXT_RecordModified6(c_mytextrecord7)= " , encode_TEXT_RecordModified6(c_mytextrecord7));
585 }
586
587 vl_encoded :=encode_TEXT_RecordModified5(c_myrecord_err8);
588 vl_expected:="12\n\r" & char(0, 0, 0, 171) & char(0, 0, 0, 171) & "\n\r" & char(0, 0, 0, 186) & char(0, 0, 0, 186) & "\n\rtrue"
589 //if (encode_TEXT_RecordModified5(c_myrecord_err8)=="12\n\rABAB\n\rBABA\n\rtrue")
590 if (vl_encoded==vl_expected)
591 { setverdict(pass); } else {
592 setverdict(fail);
593 log("encoded :",vl_encoded);
594 log("expected:",vl_expected);
595 log ("encode_TEXT_RecordModified5(c_myrecord_err8)= " , encode_TEXT_RecordModified5(c_myrecord_err8));
596 }
597
598 const TEXT_rofint c_myrofint := {0,1,2,3,4,5,6,7,8};
599 if (encode_TEXT_rofint(c_rofint)==encode_TEXT_rofint(c_myrofint))
600 { setverdict(pass); } else {
601 setverdict(fail);
602 log ("encode_TEXT_rofint(c_rofint)= " , encode_TEXT_rofint(c_rofint));
603 log ("encode_TEXT_rofint(c_myrofint)= " , encode_TEXT_rofint(c_myrofint));
604 }
605
606 const TEXT_record_of c_mytextrecord_of := {{f1:="v3",f2:="v4"}};
607 if (encode_TEXT_Record_of(c_myrecord_of_err)==encode_TEXT_Record_of(c_mytextrecord_of))
608 { setverdict(pass); } else {
609 setverdict(fail);
610 log ("encode_TEXT_Record_of(c_myrecord_of_err)= " , encode_TEXT_Record_of(c_myrecord_of_err));
611 log ("encode_TEXT_Record_of(c_mytextrecord_of)= " , encode_TEXT_Record_of(c_mytextrecord_of));
612 }
613
614 const TEXT_record_of c_mytextrecord_of2 := {{f1:="f1",f2:="v2"},{f1:="v3",f2:="f2"}};
615 if (encode_TEXT_Record_of(c_myrecord_of_err2)==encode_TEXT_Record_of(c_mytextrecord_of2))
616 { setverdict(pass); } else {
617 setverdict(fail);
618 log ("encode_TEXT_Record_of(c_myrecord_of_err2)= " , encode_TEXT_Record_of(c_myrecord_of_err2));
619 log ("encode_TEXT_Record_of(c_mytextrecord_of2)= " , encode_TEXT_Record_of(c_mytextrecord_of2));
620 }
621
622 const TEXT_record_of c_mytextrecord_of3 := {{f1:="AA",f2:="FF"},{f1:="EE",f2:="BB"}};
623 if (encode_TEXT_Record_of(c_myrecord_of_err3)==encode_TEXT_Record_of(c_mytextrecord_of3))
624 { setverdict(pass); } else {
625 setverdict(fail);
626 log ("Encoded : encode_TEXT_Record_of(c_myrecord_of_err3)= " , encode_TEXT_Record_of(c_myrecord_of_err3));
627 log ("Expected: encode_TEXT_Record_of(c_mytextrecord_of3)= " , encode_TEXT_Record_of(c_mytextrecord_of3));
628 }
629
630 const TEXT_union c_mytextunion := {f1:="IRON"};
631 if (encode_TEXT_Union(c_mytextunion_err)==encode_TEXT_Union(c_mytextunion))
632 { setverdict(pass); } else {
633 setverdict(fail);
634 log ("encode_TEXT_Union(c_mytextunion_err)= " , encode_TEXT_Union(c_mytextunion_err));
635 log ("encode_TEXT_Union(c_mytextunion)= " , encode_TEXT_Union(c_mytextunion));
636 }
637
638 const TEXT_union2 c_mytextunion2 := {f1:="ABCD"};
639 if (encode_TEXT_Union2(c_mytextunion_err2)==encode_TEXT_Union2(c_mytextunion2))
640 { setverdict(pass); } else {
641 setverdict(fail);
642 log ("encode_TEXT_Union2(c_mytextunion_err2)= " , encode_TEXT_Union2(c_mytextunion_err2));
643 log ("encode_TEXT_Union2(c_mytextunion2)= " , encode_TEXT_Union2(c_mytextunion2));
644 }
645
646 // sequence template
647 var template TEXT_record_modified t_mytextrecmod := { f2:="INAL" };
648 if (encode_TEXT_Record(valueof(t_mytextreq_err))==encode_TEXT_RecordModified(valueof(t_mytextrecmod)))
649 { setverdict(pass); } else {
650 setverdict(fail);
651 log ("encode_TEXT_Record(valueof(t_mytextreq_err)= " , encode_TEXT_Record(c_myrecord_err));
652 log ("encode_TEXT_RecordModified(valueof(t_mytextrecmod))= " , encode_TEXT_RecordModified(valueof(t_mytextrecmod)));
653 }
654
655 if (encode_TEXT_RecordModified7(c_myrecord_err10)=="BEGIN:DD_SEPARATOR_ _SEPARATOR_\"\"_SEPARATOR_UU_SEPARATOR_33_SEPARATOR_ff:END" )
656 { setverdict(pass); } else {
657 setverdict(fail);
658 log ("encode_TEXT_RecordModified7(c_myrecord_err10)= " , encode_TEXT_RecordModified7(c_myrecord_err10));
659 }
660
661 if (encode_TEXT_RecordSingle(c_myrecord_err11)=="BEGIN:DD_SEPARATOR_\"\"_SEPARATOR_33:END")
662 { setverdict(pass); } else {
663 setverdict(fail);
664 log ("encode_TEXT_RecordSingle(c_myrecord_err11)= " , encode_TEXT_RecordSingle(c_myrecord_err11));
665 }
666
667 if (encode_TEXT_RecordModified7(c_myrecord_err12)=="BEGIN:DD_SEPARATOR_true:END" )
668 { setverdict(pass); } else {
669 log ("encode_TEXT_RecordModified7(c_myrecord_err12)= " , encode_TEXT_RecordModified7(c_myrecord_err12)); setverdict(fail);
670 }
671
672 if (encode_TEXT_RecordModified8(c_myrecord_err13)=="BEGIN::END" )
673 { setverdict(pass); } else {
674 setverdict(fail);
675 log ("encode_TEXT_RecordModified8(c_myrecord_err13)= " , encode_TEXT_RecordModified8(c_myrecord_err13));
676 }
677
678
679 }
680
681 // **** RAW negtest records/sets **** //
682 external function rawenc1(in myrec1 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
683 external function rawenc2(in myset1 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
684 external function rawenc3(in myrec2 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
685 external function rawenc9(in myrec3 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
686 external function rawenc11(in myrec4 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
687 external function rawenc13(in myrec5 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
688 external function rawenc15(in myrec6 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
689 external function rawenc17(in myrec7 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
690 external function rawenc19(in myrec9 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
691 external function rawenc21(in myrec11 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
692 external function rawenc23(in myrec12 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
693 external function rawenc25(in myrec14 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
694 external function rawenc27(in myrec15 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
695 external function rawenc29(in myrec17 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
696 external function rawenc31(in myrec19 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
697 external function rawenc33(in myrec21 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
698 external function rawenc35(in myrec23 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
699 external function rawenc37(in myrec24 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
700 external function rawenc39(in myrec25 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
701 external function rawenc41(in myrec26 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
702 external function rawenc43(in myrec27 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
703 external function rawenc45(in myrec28 mr) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
704 external function rawenc7(in myset2 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
705 external function rawenc10(in myset3 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
706 external function rawenc12(in myset4 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
707 external function rawenc14(in myset5 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
708 external function rawenc16(in myset6 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
709 external function rawenc18(in myset7 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
710 external function rawenc20(in myset9 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
711 external function rawenc22(in myset11 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
712 external function rawenc24(in myset12 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
713 external function rawenc26(in myset14 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
714 external function rawenc28(in myset15 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
715 external function rawenc30(in myset17 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
716 external function rawenc32(in myset19 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
717 external function rawenc34(in myset21 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
718 external function rawenc36(in myset23 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
719 external function rawenc38(in myset24 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
720 external function rawenc40(in myset25 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
721 external function rawenc42(in myset26 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
722 external function rawenc44(in myset27 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
723 external function rawenc46(in myset28 ms) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
724
725 // **** RAW negtest record ofs/set ofs **** //
726 external function rawenc4(in myintlist1 mil) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
727 external function rawenc5(in myintset1 mis) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
728 // **** RAW negtest unions **** //
729 external function rawenc6(in myuni1 mu) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
730 external function rawenc8(in myuni2 mu) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(NEGTEST_CONFL:WARNING)" }
731
732 type record myrec1 {
733 integer f1,
734 charstring f2
735 } with { variant (f1) "FIELDLENGTH(8)" encode "RAW" }
736
737 // Same as `myrec1'.
738 type set myset1 {
739 integer f1,
740 charstring f2
741 } with { variant (f1) "FIELDLENGTH(8)" encode "RAW" }
742
743 type record myrec2 {
744 integer f1 optional,
745 charstring f2
746 } with {
747 // Same as `dword32'.
748 variant (f1) "PREPADDING(32)"
749 variant (f1) "PADDING_PATTERN('1'B)"
750 variant (f2) "PREPADDING(128)"
751 variant (f2) "PADDING_PATTERN('0'B)"
752 encode "RAW"
753 }
754
755 type set myset2 {
756 integer f1 optional,
757 charstring f2
758 } with {
759 // Same as `dword32'.
760 variant (f1) "PREPADDING(32)"
761 variant (f1) "PADDING_PATTERN('1'B)"
762 variant (f2) "PREPADDING(128)"
763 variant (f2) "PADDING_PATTERN('0'B)"
764 encode "RAW"
765 }
766
767 type record myrec3 {
768 integer f1,
769 charstring f2
770 } with { variant (f1) "LENGTHTO(f2)" encode "RAW" }
771
772 type set myset3 {
773 integer f1,
774 charstring f2
775 } with { variant (f1) "LENGTHTO(f2)" encode "RAW" }
776
777 type record myrec4 {
778 integer f1 optional,
779 charstring f2 optional
780 } with { variant (f1) "LENGTHTO(f2)" encode "RAW" }
781
782 type set myset4 {
783 integer f1 optional,
784 charstring f2 optional
785 } with { variant (f1) "LENGTHTO(f2)" encode "RAW" }
786
787 type record myrec5 {
788 integer f1 optional,
789 charstring f2 optional,
790 charstring f3
791 } with { variant (f1) "LENGTHTO(f2, f3)" encode "RAW" }
792
793 type set myset5 {
794 integer f1 optional,
795 charstring f2 optional,
796 charstring f3
797 } with { variant (f1) "LENGTHTO(f2, f3)" encode "RAW" }
798
799 type record myrec6 {
800 integer f1,
801 charstring f2,
802 charstring f3
803 } with { variant (f1) "POINTERTO(f3)" encode "RAW" }
804
805 type set myset6 {
806 integer f1,
807 charstring f2,
808 charstring f3
809 } with { variant (f1) "POINTERTO(f3)" encode "RAW" }
810
811 type record myrec7 {
812 integer f1 optional,
813 charstring f2 optional,
814 charstring f3 optional
815 } with { variant (f1) "POINTERTO(f3)" encode "RAW" }
816
817 type set myset7 {
818 integer f1 optional,
819 charstring f2 optional,
820 charstring f3 optional
821 } with { variant (f1) "POINTERTO(f3)" encode "RAW" }
822
823 type union myuni8_rec9 {
824 integer f1
825 } with { variant "" encode "RAW" }
826 type record myrec9 {
827 integer f1,
828 myuni8_rec9 f2,
829 charstring f3
830 } with {
831 variant (f2) "LENGTHTO(f3)"
832 variant (f2) "LENGTHINDEX(f1)"
833 encode "RAW"
834 }
835
836 type union myuni8_set9 {
837 integer f1
838 } with { variant "" encode "RAW" }
839 type set myset9 {
840 integer f1,
841 myuni8_set9 f2,
842 charstring f3
843 } with {
844 variant (f2) "LENGTHTO(f3)"
845 variant (f2) "LENGTHINDEX(f1)"
846 encode "RAW"
847 }
848
849 type union myuni10_rec11 {
850 integer f1
851 } with { variant "" encode "RAW" }
852 type record myrec11 {
853 integer f1 optional,
854 myuni10_rec11 f2 optional,
855 charstring f3 optional,
856 charstring f4 optional
857 } with {
858 variant (f2) "LENGTHTO(f3, f4)"
859 variant (f2) "LENGTHINDEX(f1)"
860 encode "RAW"
861 }
862
863
864 type union myuni10_set11 {
865 integer f1
866 } with { variant "" encode "RAW" }
867 type set myset11 {
868 integer f1 optional,
869 myuni10_set11 f2 optional,
870 charstring f3 optional,
871 charstring f4 optional
872 } with {
873 variant (f2) "LENGTHTO(f3, f4)"
874 variant (f2) "LENGTHINDEX(f1)"
875 encode "RAW"
876 }
877
878 type record myrec12 {
879 integer f1,
880 integer f2 optional
881 } with { variant (f2) "PRESENCE(f1 = 128)" encode "RAW" }
882
883 type set myset12 {
884 integer f1,
885 integer f2 optional
886 } with { variant (f2) "PRESENCE(f1 = 128)" encode "RAW" }
887
888 type record myrec13 {
889 integer f1
890 } with { variant "" encode "RAW" }
891 type record myrec14 {
892 integer f1,
893 myrec13 f2,
894 integer f3,
895 integer f4 optional
896 } with { variant (f4) "PRESENCE(f1 = 9, f2.f1 = 99, f3 = 1)" encode "RAW" }
897
898 type set myset13 {
899 integer f1
900 } with { variant "" encode "RAW" }
901 type set myset14 {
902 integer f1,
903 myset13 f2,
904 integer f3,
905 integer f4 optional
906 } with { variant (f4) "PRESENCE(f1 = 9, f2.f1 = 99, f3 = 1)" encode "RAW" }
907
908 type record myrec15 {
909 integer f1,
910 integer f2
911 } with { variant "PRESENCE(f1 = 9, f2 = 2)" encode "RAW" }
912
913 type set myset15 {
914 integer f1,
915 integer f2
916 } with { variant "PRESENCE(f1 = 9, f2 = 2)" encode "RAW" }
917
918 type record myrec16 {
919 integer f1
920 } with { variant "" encode "RAW" }
921 type record myrec17 {
922 myrec16 f1,
923 myrec16 f2,
924 myrec16 f3
925 } with {
926 variant "TAG(f1, f1 = 1; f2, f1 = 2)"
927 encode "RAW"
928 }
929
930 type set myset16 {
931 integer f1
932 } with { variant "" encode "RAW" }
933 type set myset17 {
934 myset16 f1,
935 myset16 f2,
936 myset16 f3
937 } with {
938 variant "TAG(f1, f1 = 1; f2, f1 = 2)"
939 encode "RAW"
940 }
941
942 type record myrec18 {
943 integer f1
944 } with { variant "" encode "RAW" }
945 type record myrec19 {
946 myrec18 f1 optional,
947 myrec18 f2 optional,
948 myrec18 f3 optional
949 } with {
950 variant "TAG(f1, f1 = 1; f2, f1 = 2)"
951 encode "RAW"
952 }
953
954 type set myset18 {
955 integer f1
956 } with { variant "" encode "RAW" }
957 type set myset19 {
958 myset18 f1 optional,
959 myset18 f2 optional,
960 myset18 f3 optional
961 } with {
962 variant "TAG(f1, f1 = 1; f2, f1 = 2)"
963 encode "RAW"
964 }
965
966 type record myrec20 {
967 integer f1,
968 integer f2
969 } with { variant "" encode "RAW" }
970 type union myuni_1 {
971 myrec20 f1,
972 myrec20 f2
973 } with { variant "" encode "RAW" }
974 type record myrec21 {
975 integer f1,
976 integer f2,
977 myuni_1 f3
978 } with {
979 variant (f3) "CROSSTAG(f1, { f1 = 1, f1 = 11, f2 = 6 }; f2, f1 = 3)" encode "RAW"
980 }
981
982 type set myset20 {
983 integer f1,
984 integer f2
985 } with { variant "" encode "RAW" }
986 type union myuni_2 {
987 myset20 f1,
988 myset20 f2
989 } with { variant "" encode "RAW" }
990 type set myset21 {
991 integer f1,
992 integer f2,
993 myuni_2 f3
994 } with {
995 variant (f3) "CROSSTAG(f1, { f1 = 1, f1 = 11, f2 = 6 }; f2, f1 = 3)" encode "RAW"
996 }
997
998 type record myrec22 {
999 integer f1 optional,
1000 integer f2 optional
1001 } with { variant "" encode "RAW" }
1002 type union myuni_3 {
1003 myrec22 f1,
1004 myrec22 f2
1005 } with { variant "" encode "RAW" }
1006 type record myrec23 {
1007 integer f1 optional,
1008 integer f2 optional,
1009 myuni_3 f3 optional
1010 } with {
1011 variant (f3) "CROSSTAG(f1, { f1 = 1, f1 = 11, f2 = 6 }; f2, f1 = 3)" encode "RAW"
1012 }
1013
1014 type set myset22 {
1015 integer f1 optional,
1016 integer f2 optional
1017 } with { variant "" encode "RAW" }
1018 type union myuni_4 {
1019 myset22 f1,
1020 myset22 f2
1021 } with { variant "" encode "RAW" }
1022 type set myset23 {
1023 integer f1 optional,
1024 integer f2 optional,
1025 myuni_4 f3 optional
1026 } with {
1027 variant (f3) "CROSSTAG(f1, { f1 = 1, f1 = 11, f2 = 6 }; f2, f1 = 3)" encode "RAW"
1028 }
1029
1030 type record myrec24 {
1031 integer f1,
1032 integer f2
1033 } with { variant "EXTENSION_BIT(yes)" encode "RAW" }
1034
1035 type set myset24 {
1036 integer f1,
1037 integer f2
1038 } with { variant "EXTENSION_BIT(yes)" encode "RAW" }
1039
1040 type record myrec25 {
1041 integer f1,
1042 integer f2,
1043 integer f3,
1044 integer f4,
1045 integer f5,
1046 integer f6
1047 } with {
1048 variant "EXTENSION_BIT_GROUP(yes, f1, f3)"
1049 variant "EXTENSION_BIT_GROUP(yes, f5, f6)"
1050 encode "RAW"
1051 }
1052
1053 type set myset25 {
1054 integer f1,
1055 integer f2,
1056 integer f3,
1057 integer f4,
1058 integer f5,
1059 integer f6
1060 } with {
1061 variant "EXTENSION_BIT_GROUP(yes, f1, f3)"
1062 variant "EXTENSION_BIT_GROUP(yes, f5, f6)"
1063 encode "RAW"
1064 }
1065
1066 type record myrec26 {
1067 integer f1,
1068 myrec18 f2 optional
1069 } with { variant (f2) "TAG(f2, f1 = 1)" encode "RAW" }
1070
1071 type set myset26 {
1072 integer f1,
1073 myset18 f2 optional
1074 } with { variant (f2) "TAG(f2, f1 = 1)" encode "RAW" }
1075
1076 type union myuni_5 {
1077 integer f1,
1078 integer f2
1079 } with { variant "" encode "RAW" }
1080 type record myrec27 {
1081 integer f1,
1082 myuni_5 f2,
1083 charstring f3
1084 } with {
1085 variant (f2) "LENGTHTO(f3)"
1086 variant (f2) "LENGTHINDEX(f1)"
1087 encode "RAW"
1088 }
1089
1090 type union myuni_6 {
1091 integer f1,
1092 integer f2
1093 } with { variant "" encode "RAW" }
1094 type set myset27 {
1095 integer f1,
1096 myuni_6 f2,
1097 charstring f3
1098 } with {
1099 variant (f2) "LENGTHTO(f3)"
1100 variant (f2) "LENGTHINDEX(f1)"
1101 encode "RAW"
1102 }
1103
1104 type record myrec28 {
1105 integer f1 optional,
1106 myuni_5 f2 optional,
1107 charstring f3 optional
1108 } with {
1109 variant (f2) "LENGTHTO(f3)"
1110 variant (f2) "LENGTHINDEX(f1)"
1111 encode "RAW"
1112 }
1113
1114 type set myset28 {
1115 integer f1 optional,
1116 myuni_6 f2 optional,
1117 charstring f3 optional
1118 } with {
1119 variant (f2) "LENGTHTO(f3)"
1120 variant (f2) "LENGTHINDEX(f1)"
1121 encode "RAW"
1122 }
1123
1124 const myrec1 cmr1 := { 128, "trabuco" } with { erroneous(f1) "before := 1" }
1125 const myrec1 cmr2 := { 128, "wings" } with { erroneous(f1) "after := 1" }
1126 const myrec1 cmr3 := { 128, "xodus" } with { erroneous(f2) "after := 1" }
1127 const myrec2 cmr4 := { 128, "jazz" } with { erroneous(f1) "before := 1" erroneous(f1) "value := cmr1" erroneous (f2) "after := 1"}
1128 const myrec1 cmr5 := { 128, "progrid" } with { erroneous(f2) "value := omit" }
1129 const myrec1 cmr6 := { 128, "cascadia" } with { erroneous(f1) "value(raw) := '1122'O" }
1130 const myrec1 cmr7 := { 128, "speedcross" } with { erroneous(f1) "before(raw) := '1122'O" }
1131 const myrec1 cmr8 := { 128, "trigon" } with { erroneous(f1) "before(raw) := '1122'O" erroneous(f1) "after(raw) := '3344'O" erroneous(f2) "after(raw) := '5566'O" erroneous(f1) "value(raw) := '9999'O" }
1132 const myrec1 cmr9 := { 128, "X" } with { erroneous(f1) "before(raw) := '1'B" }
1133 const myrec1 cmr10 := { 128, "X" } with { erroneous(f1) "value(raw) := '1'B" }
1134 const myrec1 cmr11 := { 128, "X" } with { erroneous(f1) "after(raw) := '1'B" }
1135 const myrec1 cmr12 := { 128, "rockridge" } with { erroneous(f1, f2) "after := 6 * 7" }
1136 const myrec1 cmr13 := { 128, "roclite" } with { erroneous(f1) "after := omit all" }
1137 const myrec3 cmr14 := { 1, "unicorn" } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1138 const myrec4 cmr15 := { 1, "picnic" } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1139 const myrec5 cmr16 := { 1, "mock", "turtle" } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1140 const myrec6 cmr17 := { 1, "dinner", "bell" } with { erroneous(f1) "before := 1" erroneous(f3) "after := 1" }
1141 const myrec7 cmr18 := { 1, "tiger", "lily" } with { erroneous(f1) "before := 1" erroneous(f3) "after := 1" }
1142 const myrec9 cmr19 := { 1, { f1 := 2 }, "" } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" }
1143 const myrec11 cmr20 := { 1, { f1 := 2 }, "", "one" } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" }
1144 const myrec12 cmr21 := { 1, 2 } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1145 const myrec12 cmr22 := { 1, 2 } with { erroneous(f1) "value := 1" erroneous(f2) "value := 1" }
1146 const myrec12 cmr23 := { 1, omit } with { erroneous(f1) "value := 1" erroneous(f2) "after := 1" }
1147 const myrec14 cmr24 := { 1, { 2 }, 3, 4 } with { erroneous(f1) "after := 1" erroneous(f4) "after := 1" }
1148 const myrec15 cmr25 := { 1, 2 } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" }
1149 const myrec17 cmr26 := { { 1 }, { 2 }, { 3 } } with { erroneous(f1) "after := 1" erroneous(f2) "after := 1" erroneous(f3) "value := 33" }
1150 const myrec19 cmr27 := { { 1 }, { 2 }, { 3 } } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" erroneous(f3) "value := 33" }
1151 const myrec21 cmr28 := { 1, 2, { f1 := { 3, 4 } } } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" erroneous(f3) "after := 9" }
1152 const myrec23 cmr29 := { 1, 2, { f1 := { 3, 4 } } } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" erroneous(f3) "after := 9" }
1153 const myrec24 cmr30 := { 1, 2 } with { erroneous(f1) "before := 1" erroneous(f2) "value := 1" }
1154 const myrec25 cmr31 := { 1, 2, 3, 4, 5, 6 } with { erroneous(f1) "before := 1" erroneous(f4) "value := 1" erroneous(f6) "after := 1" }
1155 const myrec26 cmr32 := { 1, { 2 } } with { erroneous(f1) "before := 1" erroneous(f2) "value := 3" }
1156 const myrec27 cmr33 := { 1, { f1 := 2 }, "X" } with { erroneous(f1) "before := 1" erroneous(f3) "after := ""Y""" }
1157 const myrec28 cmr34 := { 1, { f1 := 2 }, "X" } with { erroneous(f1) "before := 1" erroneous(f3) "after := ""Y""" }
1158 const myset1 cms1 := { f1 := 128, f2 := "trabuco" } with { erroneous(f1) "before := 1" }
1159 const myset1 cms2 := { f1 := 128, f2 := "wings" } with { erroneous(f1) "after := 1" }
1160 const myset1 cms3 := { f1 := 128, f2 := "xodus" } with { erroneous(f2) "after := 1" }
1161 const myset2 cms4 := { f1 := 128, f2 := "jazz" } with { erroneous(f1) "before := 1" erroneous(f1) "value := cmr1" erroneous (f2) "after := 1"}
1162 const myset1 cms5 := { f1 := 128, f2 := "progrid" } with { erroneous(f2) "value := omit" }
1163 const myset1 cms6 := { f1 := 128, f2 := "cascadia" } with { erroneous(f1) "value(raw) := '1122'O" }
1164 const myset1 cms7 := { f1 := 128, f2 := "speedcross" } with { erroneous(f1) "before(raw) := '1122'O" }
1165 const myset1 cms8 := { f1 := 128, f2 := "trigon" } with { erroneous(f1) "before(raw) := '1122'O" erroneous(f1) "after(raw) := '3344'O" erroneous(f2) "after(raw) := '5566'O" erroneous(f1) "value(raw) := '9999'O" }
1166 const myset1 cms9 := { f1 := 128, f2 := "X" } with { erroneous(f1) "before(raw) := '1'B" } // With ''O and ''B as well.
1167 const myset1 cms10 := { f1 := 128, f2 := "X" } with { erroneous(f1) "value(raw) := '1'B" }
1168 const myset1 cms11 := { f1 := 128, f2 := "X" } with { erroneous(f1) "after(raw) := '1'B" }
1169 const myset1 cms12 := { f1 := 128, f2 := "rockridge" } with { erroneous(f1, f2) "after := 6 * 7" }
1170 const myset1 cms13 := { f1 := 128, f2 := "roclite" } with { erroneous(f1) "after := omit all" }
1171 const myset3 cms14 := { f1 := 1, f2 := "unicorn" } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1172 const myset4 cms15 := { f1 := 1, f2 := "picnic" } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1173 const myset5 cms16 := { f1 := 1, f2 := "mock", f3 := "turtle" } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1174 const myset6 cms17 := { f1 := 1, f2 := "dinner", f3 := "bell" } with { erroneous(f1) "before := 1" erroneous(f3) "after := 1" }
1175 const myset7 cms18 := { f1 := 1, f2 := "tiger", f3 := "lily" } with { erroneous(f1) "before := 1" erroneous(f3) "after := 1" }
1176 const myset9 cms19 := { f1 := 1, f2 := { f1 := 2 }, f3 := "" } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" }
1177 const myset11 cms20 := { f1 := 1, f2 := { f1 := 2 }, f3 := "", f4 := "one" } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" }
1178 const myset12 cms21 := { f1 := 1, f2 := 2 } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1179 const myset12 cms22 := { f1 := 1, f2 := 2 } with { erroneous(f1) "value := 1" erroneous(f2) "value := 1" }
1180 const myset12 cms23 := { f1 := 1, f2 := omit } with { erroneous(f1) "value := 1" erroneous(f2) "after := 1" }
1181 const myset14 cms24 := { f1 := 1, f2 := { f1 := 2 }, f3 := 3, f4 := 4 } with { erroneous(f1) "after := 1" erroneous(f4) "after := 1" }
1182 const myset15 cms25 := { f1 := 1, f2 := 2 } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" }
1183 const myset17 cms26 := { f1 := { f1 := 1 }, f2 := { f1 := 2 }, f3 := { f1 := 3 } } with { erroneous(f1) "after := 1" erroneous(f2) "after := 1" erroneous(f3) "value := 33" }
1184 const myset19 cms27 := { f1 := { f1 := 1 }, f2 := { f1 := 2 }, f3 := { f1 := 3 } } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" erroneous(f3) "value := 33" }
1185 const myset21 cms28 := { f1 := 1, f2 := 2, f3 := { f1 := { f1 := 3, f2 := 4 } } } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" erroneous(f3) "after := 9" }
1186 const myset23 cms29 := { f1 := 1, f2 := 2, f3 := { f1 := { f1 := 3, f2 := 4 } } } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" erroneous(f3) "after := 9" }
1187 const myset24 cms30 := { f1 := 1, f2 := 2 } with { erroneous(f1) "before := 1" erroneous(f2) "value := 1" }
1188 const myset25 cms31 := { f1 := 1, f2 := 2, f3 := 3, f4 := 4, f5 := 5, f6 := 6 } with { erroneous(f1) "before := 1" erroneous(f4) "value := 1" erroneous(f6) "after := 1" }
1189 const myset26 cms32 := { f1 := 1, f2 := { f1 := 2 } } with { erroneous(f1) "before := 1" erroneous(f2) "value := 3" }
1190 const myset27 cms33 := { f1 := 1, f2 := { f1 := 2 }, f3 := "X" } with { erroneous(f1) "before := 1" erroneous(f3) "after := ""Y""" }
1191 const myset28 cms34 := { f1 := 1, f2 := { f1 := 2 }, f3 := "X" } with { erroneous(f1) "before := 1" erroneous(f3) "after := ""Y""" }
1192 template myrec1 tmr1 := { 128, "trabuco" } with { erroneous(f1) "before := 1" }
1193 template myrec1 tmr2 := { 128, "wings" } with { erroneous(f1) "after := 1" }
1194 template myrec1 tmr3 := { 128, "xodus" } with { erroneous(f2) "after := 1" }
1195 template myrec2 tmr4 := { 128, "jazz" } with { erroneous(f1) "before := 1" erroneous(f1) "value := cmr1" erroneous (f2) "after := 1"}
1196 template myrec1 tmr5 := { 128, "progrid" } with { erroneous(f2) "value := omit" }
1197 template myrec1 tmr6 := { 128, "cascadia" } with { erroneous(f1) "value(raw) := '1122'O" }
1198 template myrec1 tmr7 := { 128, "speedcross" } with { erroneous(f1) "before(raw) := '1122'O" }
1199 template myrec1 tmr8 := { 128, "trigon" } with { erroneous(f1) "before(raw) := '1122'O" erroneous(f1) "after(raw) := '3344'O" erroneous(f2) "after(raw) := '5566'O" erroneous(f1) "value(raw) := '9999'O" }
1200 template myrec1 tmr9 := { 128, "X" } with { erroneous(f1) "before(raw) := '1'B" }
1201 template myrec1 tmr10 := { 128, "X" } with { erroneous(f1) "value(raw) := '1'B" }
1202 template myrec1 tmr11 := { 128, "X" } with { erroneous(f1) "after(raw) := '1'B" }
1203 template myrec1 tmr12 := { 128, "rockridge" } with { erroneous(f1, f2) "after := 6 * 7" }
1204 template myrec1 tmr13 := { 128, "roclite" } with { erroneous(f1) "after := omit all" }
1205 template myrec3 tmr14 := { 1, "unicorn" } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1206 template myrec4 tmr15 := { 1, "picnic" } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1207 template myrec5 tmr16 := { 1, "mock", "turtle" } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1208 template myrec6 tmr17 := { 1, "dinner", "bell" } with { erroneous(f1) "before := 1" erroneous(f3) "after := 1" }
1209 template myrec7 tmr18 := { 1, "tiger", "lily" } with { erroneous(f1) "before := 1" erroneous(f3) "after := 1" }
1210 template myrec9 tmr19 := { 1, { f1 := 2 }, "" } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" }
1211 template myrec11 tmr20 := { 1, { f1 := 2 }, "", "one" } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" }
1212 template myrec12 tmr21 := { 1, 2 } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1213 template myrec12 tmr22 := { 1, 2 } with { erroneous(f1) "value := 1" erroneous(f2) "value := 1" }
1214 template myrec12 tmr23 := { 1, omit } with { erroneous(f1) "value := 1" erroneous(f2) "after := 1" }
1215 template myrec14 tmr24 := { 1, { 2 }, 3, 4 } with { erroneous(f1) "after := 1" erroneous(f4) "after := 1" }
1216 template myrec15 tmr25 := { 1, 2 } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" }
1217 template myrec17 tmr26 := { { 1 }, { 2 }, { 3 } } with { erroneous(f1) "after := 1" erroneous(f2) "after := 1" erroneous(f3) "value := 33" }
1218 template myrec19 tmr27 := { { 1 }, { 2 }, { 3 } } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" erroneous(f3) "value := 33" }
1219 template myrec21 tmr28 := { 1, 2, { f1 := { 3, 4 } } } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" erroneous(f3) "after := 9" }
1220 template myrec23 tmr29 := { 1, 2, { f1 := { 3, 4 } } } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" erroneous(f3) "after := 9" }
1221 template myrec24 tmr30 := { 1, 2 } with { erroneous(f1) "before := 1" erroneous(f2) "value := 1" }
1222 template myrec25 tmr31 := { 1, 2, 3, 4, 5, 6 } with { erroneous(f1) "before := 1" erroneous(f4) "value := 1" erroneous(f6) "after := 1" }
1223 template myrec26 tmr32 := { 1, { 2 } } with { erroneous(f1) "before := 1" erroneous(f2) "value := 3" }
1224 template myrec27 tmr33 := { 1, { f1 := 2 }, "X" } with { erroneous(f1) "before := 1" erroneous(f3) "after := ""Y""" }
1225 template myrec28 tmr34 := { 1, { f1 := 2 }, "X" } with { erroneous(f1) "before := 1" erroneous(f3) "after := ""Y""" }
1226 template myset1 tms1 := { f1 := 128, f2 := "trabuco" } with { erroneous(f1) "before := 1" }
1227 template myset1 tms2 := { f1 := 128, f2 := "wings" } with { erroneous(f1) "after := 1" }
1228 template myset1 tms3 := { f1 := 128, f2 := "xodus" } with { erroneous(f2) "after := 1" }
1229 template myset2 tms4 := { f1 := 128, f2 := "jazz" } with { erroneous(f1) "before := 1" erroneous(f1) "value := cmr1" erroneous (f2) "after := 1"}
1230 template myset1 tms5 := { f1 := 128, f2 := "progrid" } with { erroneous(f2) "value := omit" }
1231 template myset1 tms6 := { f1 := 128, f2 := "cascadia" } with { erroneous(f1) "value(raw) := '1122'O" }
1232 template myset1 tms7 := { f1 := 128, f2 := "speedcross" } with { erroneous(f1) "before(raw) := '1122'O" }
1233 template myset1 tms8 := { f1 := 128, f2 := "trigon" } with { erroneous(f1) "before(raw) := '1122'O" erroneous(f1) "after(raw) := '3344'O" erroneous(f2) "after(raw) := '5566'O" erroneous(f1) "value(raw) := '9999'O" }
1234 template myset1 tms9 := { f1 := 128, f2 := "X" } with { erroneous(f1) "before(raw) := '1'B" }
1235 template myset1 tms10 := { f1 := 128, f2 := "X" } with { erroneous(f1) "value(raw) := '1'B" }
1236 template myset1 tms11 := { f1 := 128, f2 := "X" } with { erroneous(f1) "after(raw) := '1'B" }
1237 template myset1 tms12 := { f1 := 128, f2 := "rockridge" } with { erroneous(f1, f2) "after := 6 * 7" }
1238 template myset1 tms13 := { f1 := 128, f2 := "roclite" } with { erroneous(f1) "after := omit all" }
1239 template myset3 tms14 := { f1 := 1, f2 := "unicorn" } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1240 template myset4 tms15 := { f1 := 1, f2 := "picnic" } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1241 template myset5 tms16 := { f1 := 1, f2 := "mock", f3 := "turtle" } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1242 template myset6 tms17 := { f1 := 1, f2 := "dinner", f3 := "bell" } with { erroneous(f1) "before := 1" erroneous(f3) "after := 1" }
1243 template myset7 tms18 := { f1 := 1, f2 := "tiger", f3 := "lily" } with { erroneous(f1) "before := 1" erroneous(f3) "after := 1" }
1244 template myset9 tms19 := { f1 := 1, f2 := { f1 := 2 }, f3 := "" } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" }
1245 template myset11 tms20 := { f1 := 1, f2 := { f1 := 2 }, f3 := "", f4 := "one" } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" }
1246 template myset12 tms21 := { f1 := 1, f2 := 2 } with { erroneous(f1) "before := 1" erroneous(f1) "after := 1" erroneous(f2) "before := 1" erroneous(f2) "after := 1" }
1247 template myset12 tms22 := { f1 := 1, f2 := 2 } with { erroneous(f1) "value := 1" erroneous(f2) "value := 1" }
1248 template myset12 tms23 := { f1 := 1, f2 := omit } with { erroneous(f1) "value := 1" erroneous(f2) "after := 1" }
1249 template myset14 tms24 := { f1 := 1, f2 := { f1 := 2 }, f3 := 3, f4 := 4 } with { erroneous(f1) "after := 1" erroneous(f4) "after := 1" }
1250 template myset15 tms25 := { f1 := 1, f2 := 2 } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" }
1251 template myset17 tms26 := { f1 := { f1 := 1 }, f2 := { f1 := 2 }, f3 := { f1 := 3 } } with { erroneous(f1) "after := 1" erroneous(f2) "after := 1" erroneous(f3) "value := 33" }
1252 template myset19 tms27 := { f1 := { f1 := 1 }, f2 := { f1 := 2 }, f3 := { f1 := 3 } } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" erroneous(f3) "value := 33" }
1253 template myset21 tms28 := { f1 := 1, f2 := 2, f3 := { f1 := { f1 := 3, f2 := 4 } } } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" erroneous(f3) "after := 9" }
1254 template myset23 tms29 := { f1 := 1, f2 := 2, f3 := { f1 := { f1 := 3, f2 := 4 } } } with { erroneous(f1) "before := 1" erroneous(f2) "after := 1" erroneous(f3) "after := 9" }
1255 template myset24 tms30 := { f1 := 1, f2 := 2 } with { erroneous(f1) "before := 1" erroneous(f2) "value := 1" }
1256 template myset25 tms31 := { f1 := 1, f2 := 2, f3 := 3, f4 := 4, f5 := 5, f6 := 6 } with { erroneous(f1) "before := 1" erroneous(f4) "value := 1" erroneous(f6) "after := 1" }
1257 template myset26 tms32 := { f1 := 1, f2 := { f1 := 2 } } with { erroneous(f1) "before := 1" erroneous(f2) "value := 3" }
1258 template myset27 tms33 := { f1 := 1, f2 := { f1 := 2 }, f3 := "X" } with { erroneous(f1) "before := 1" erroneous(f3) "after := ""Y""" }
1259 template myset28 tms34 := { f1 := 1, f2 := { f1 := 2 }, f3 := "X" } with { erroneous(f1) "before := 1" erroneous(f3) "after := ""Y""" }
1260
1261 // Basic encoding of record/set values/templates.
1262 testcase raw_negtest_records() runs on MyComp
1263 {
1264 if (rawenc1(cmr1) == '01807472616275636F'O) { setverdict(pass) } else { setverdict(fail) }
1265 if (rawenc1(cmr2) == '800177696E6773'O) { setverdict(pass) } else { setverdict(fail) }
1266 if (rawenc1(cmr3) == '80786F64757301'O) { setverdict(pass) } else { setverdict(fail) }
1267 if (rawenc3(cmr4) == '0101807472616275636F0000000000006A617A7A01'O) { setverdict(pass) } else { setverdict(fail) }
1268 if (rawenc1(cmr5) == '80'O) { setverdict(pass) } else { setverdict(fail) }
1269 if (rawenc1(cmr6) == '11226361736361646961'O) { setverdict(pass) } else { setverdict(fail) }
1270 if (rawenc1(cmr7) == '112280737065656463726F7373'O) { setverdict(pass) } else { setverdict(fail) }
1271 if (rawenc1(cmr8) == '112299993344747269676F6E5566'O) { setverdict(pass) } else { setverdict(fail) }
1272 if (rawenc1(cmr9) == '01B100'O) { setverdict(pass) } else { setverdict(fail) }
1273 if (rawenc1(cmr10) == 'B100'O) { setverdict(pass) } else { setverdict(fail) }
1274 if (rawenc1(cmr11) == '80B100'O) { setverdict(pass) } else { setverdict(fail) }
1275 if (rawenc1(cmr12) == '802A726F636B72696467652A'O) { setverdict(pass) } else { setverdict(fail) }
1276 if (rawenc1(cmr13) == '80'O) { setverdict(pass) } else { setverdict(fail) }
1277 if (rawenc9(cmr14) == '01070101756E69636F726E01'O) { setverdict(pass) } else { setverdict(fail) }
1278 if (rawenc11(cmr15) == '010601017069636E696301'O) { setverdict(pass) } else { setverdict(fail) }
1279 if (rawenc13(cmr16) == '010A01016D6F636B01747572746C65'O) { setverdict(pass) } else { setverdict(fail) }
1280 if (rawenc15(cmr17) == '010264696E6E657262656C6C01'O) { setverdict(pass) } else { setverdict(fail) }
1281 if (rawenc17(cmr18) == '010274696765726C696C7901'O) { setverdict(pass) } else { setverdict(fail) }
1282 if (rawenc19(cmr19) == '01010001'O) { setverdict(pass) } else { setverdict(fail) }
1283 if (rawenc21(cmr20) == '010103016F6E65'O) { setverdict(pass) } else { setverdict(fail) }
1284 if (rawenc23(cmr21) == '010101010201'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1285 if (rawenc23(cmr22) == '0101'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1286 if (rawenc23(cmr23) == '0101'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1287 if (rawenc25(cmr24) == '090102030401'O) { setverdict(pass) } else { setverdict(fail) }
1288 if (rawenc27(cmr25) == '01010201'O) { setverdict(pass) } else { setverdict(fail) }
1289 if (rawenc29(cmr26) == '0101020121'O) { setverdict(pass) } else { setverdict(fail) }
1290 if (rawenc31(cmr27) == '0101020121'O) { setverdict(pass) } else { setverdict(fail) }
1291 if (rawenc33(cmr28) == '01010201030409'O) { setverdict(pass) } else { setverdict(fail) }
1292 if (rawenc35(cmr29) == '01010201030409'O) { setverdict(pass) } else { setverdict(fail) }
1293 if (rawenc37(cmr30) == '010181'O) { setverdict(pass) } else { setverdict(fail) }
1294 if (rawenc39(cmr31) == '0101028301058601'O) { setverdict(pass) } else { setverdict(fail) }
1295 if (rawenc41(cmr32) == '010103'O) { setverdict(pass) } else { setverdict(fail) }
1296 if (rawenc43(cmr33) == '0101015859'O) { setverdict(pass) } else { setverdict(fail) }
1297 if (rawenc45(cmr34) == '0101015859'O) { setverdict(pass) } else { setverdict(fail) }
1298 if (rawenc2(cms1) == '01807472616275636F'O) { setverdict(pass) } else { setverdict(fail) }
1299 if (rawenc2(cms2) == '800177696E6773'O) { setverdict(pass) } else { setverdict(fail) }
1300 if (rawenc2(cms3) == '80786F64757301'O) { setverdict(pass) } else { setverdict(fail) }
1301 if (rawenc7(cms4) == '0101807472616275636F0000000000006A617A7A01'O) { setverdict(pass) } else { setverdict(fail) }
1302 if (rawenc2(cms5) == '80'O) { setverdict(pass) } else { setverdict(fail) }
1303 if (rawenc2(cms6) == '11226361736361646961'O) { setverdict(pass) } else { setverdict(fail) }
1304 if (rawenc2(cms7) == '112280737065656463726F7373'O) { setverdict(pass) } else { setverdict(fail) }
1305 if (rawenc2(cms8) == '112299993344747269676F6E5566'O) { setverdict(pass) } else { setverdict(fail) }
1306 if (rawenc2(cms9) == '01B100'O) { setverdict(pass) } else { setverdict(fail) }
1307 if (rawenc2(cms10) == 'B100'O) { setverdict(pass) } else { setverdict(fail) }
1308 if (rawenc2(cms11) == '80B100'O) { setverdict(pass) } else { setverdict(fail) }
1309 if (rawenc2(cms12) == '802A726F636B72696467652A'O) { setverdict(pass) } else { setverdict(fail) }
1310 if (rawenc2(cms13) == '80'O) { setverdict(pass) } else { setverdict(fail) }
1311 if (rawenc10(cms14) == '01070101756E69636F726E01'O) { setverdict(pass) } else { setverdict(fail) }
1312 if (rawenc12(cms15) == '010601017069636E696301'O) { setverdict(pass) } else { setverdict(fail) }
1313 if (rawenc14(cms16) == '010A01016D6F636B01747572746C65'O) { setverdict(pass) } else { setverdict(fail) }
1314 if (rawenc16(cms17) == '010264696E6E657262656C6C01'O) { setverdict(pass) } else { setverdict(fail) }
1315 if (rawenc18(cms18) == '010274696765726C696C7901'O) { setverdict(pass) } else { setverdict(fail) }
1316 if (rawenc20(cms19) == '01010001'O) { setverdict(pass) } else { setverdict(fail) }
1317 if (rawenc22(cms20) == '010103016F6E65'O) { setverdict(pass) } else { setverdict(fail) }
1318 if (rawenc24(cms21) == '010101010201'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1319 if (rawenc24(cms22) == '0101'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1320 if (rawenc24(cms23) == '0101'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1321 if (rawenc26(cms24) == '090102030401'O) { setverdict(pass) } else { setverdict(fail) }
1322 if (rawenc28(cms25) == '01010201'O) { setverdict(pass) } else { setverdict(fail) }
1323 if (rawenc30(cms26) == '0101020121'O) { setverdict(pass) } else { setverdict(fail) }
1324 if (rawenc32(cms27) == '0101020121'O) { setverdict(pass) } else { setverdict(fail) }
1325 if (rawenc34(cms28) == '01010201030409'O) { setverdict(pass) } else { setverdict(fail) }
1326 if (rawenc36(cms29) == '01010201030409'O) { setverdict(pass) } else { setverdict(fail) }
1327 if (rawenc38(cms30) == '010181'O) { setverdict(pass) } else { setverdict(fail) }
1328 if (rawenc40(cms31) == '0101028301058601'O) { setverdict(pass) } else { setverdict(fail) }
1329 if (rawenc42(cms32) == '010103'O) { setverdict(pass) } else { setverdict(fail) }
1330 if (rawenc44(cms33) == '0101015859'O) { setverdict(pass) } else { setverdict(fail) }
1331 if (rawenc46(cms34) == '0101015859'O) { setverdict(pass) } else { setverdict(fail) }
1332 if (rawenc1(valueof(tmr1)) == '01807472616275636F'O) { setverdict(pass) } else { setverdict(fail) }
1333 if (rawenc1(valueof(tmr2)) == '800177696E6773'O) { setverdict(pass) } else { setverdict(fail) }
1334 if (rawenc1(valueof(tmr3)) == '80786F64757301'O) { setverdict(pass) } else { setverdict(fail) }
1335 if (rawenc3(valueof(tmr4)) == '0101807472616275636F0000000000006A617A7A01'O) { setverdict(pass) } else { setverdict(fail) }
1336 if (rawenc1(valueof(tmr5)) == '80'O) { setverdict(pass) } else { setverdict(fail) }
1337 if (rawenc1(valueof(tmr6)) == '11226361736361646961'O) { setverdict(pass) } else { setverdict(fail) }
1338 if (rawenc1(valueof(tmr7)) == '112280737065656463726F7373'O) { setverdict(pass) } else { setverdict(fail) }
1339 if (rawenc1(valueof(tmr8)) == '112299993344747269676F6E5566'O) { setverdict(pass) } else { setverdict(fail) }
1340 if (rawenc1(valueof(tmr9)) == '01B100'O) { setverdict(pass) } else { setverdict(fail) }
1341 if (rawenc1(valueof(tmr10)) == 'B100'O) { setverdict(pass) } else { setverdict(fail) }
1342 if (rawenc1(valueof(tmr11)) == '80B100'O) { setverdict(pass) } else { setverdict(fail) }
1343 if (rawenc1(valueof(tmr12)) == '802A726F636B72696467652A'O) { setverdict(pass) } else { setverdict(fail) }
1344 if (rawenc1(valueof(tmr13)) == '80'O) { setverdict(pass) } else { setverdict(fail) }
1345 if (rawenc9(valueof(tmr14)) == '01070101756E69636F726E01'O) { setverdict(pass) } else { setverdict(fail) }
1346 if (rawenc11(valueof(tmr15)) == '010601017069636E696301'O) { setverdict(pass) } else { setverdict(fail) }
1347 if (rawenc13(valueof(tmr16)) == '010A01016D6F636B01747572746C65'O) { setverdict(pass) } else { setverdict(fail) }
1348 if (rawenc15(valueof(tmr17)) == '010264696E6E657262656C6C01'O) { setverdict(pass) } else { setverdict(fail) }
1349 if (rawenc17(valueof(tmr18)) == '010274696765726C696C7901'O) { setverdict(pass) } else { setverdict(fail) }
1350 if (rawenc19(valueof(tmr19)) == '01010001'O) { setverdict(pass) } else { setverdict(fail) }
1351 if (rawenc21(valueof(tmr20)) == '010103016F6E65'O) { setverdict(pass) } else { setverdict(fail) }
1352 if (rawenc23(valueof(tmr21)) == '010101010201'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1353 if (rawenc23(valueof(tmr22)) == '0101'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1354 if (rawenc23(valueof(tmr23)) == '0101'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1355 if (rawenc25(valueof(tmr24)) == '090102030401'O) { setverdict(pass) } else { setverdict(fail) }
1356 if (rawenc27(valueof(tmr25)) == '01010201'O) { setverdict(pass) } else { setverdict(fail) }
1357 if (rawenc29(valueof(tmr26)) == '0101020121'O) { setverdict(pass) } else { setverdict(fail) }
1358 if (rawenc31(valueof(tmr27)) == '0101020121'O) { setverdict(pass) } else { setverdict(fail) }
1359 if (rawenc33(valueof(tmr28)) == '01010201030409'O) { setverdict(pass) } else { setverdict(fail) }
1360 if (rawenc35(valueof(tmr29)) == '01010201030409'O) { setverdict(pass) } else { setverdict(fail) }
1361 if (rawenc37(valueof(tmr30)) == '010181'O) { setverdict(pass) } else { setverdict(fail) }
1362 if (rawenc39(valueof(tmr31)) == '0101028301058601'O) { setverdict(pass) } else { setverdict(fail) }
1363 if (rawenc41(valueof(tmr32)) == '010103'O) { setverdict(pass) } else { setverdict(fail) }
1364 if (rawenc43(valueof(tmr33)) == '0101015859'O) { setverdict(pass) } else { setverdict(fail) }
1365 if (rawenc45(valueof(tmr34)) == '0101015859'O) { setverdict(pass) } else { setverdict(fail) }
1366 if (rawenc2(valueof(tms1)) == '01807472616275636F'O) { setverdict(pass) } else { setverdict(fail) }
1367 if (rawenc2(valueof(tms2)) == '800177696E6773'O) { setverdict(pass) } else { setverdict(fail) }
1368 if (rawenc2(valueof(tms3)) == '80786F64757301'O) { setverdict(pass) } else { setverdict(fail) }
1369 if (rawenc7(valueof(tms4)) == '0101807472616275636F0000000000006A617A7A01'O) { setverdict(pass) } else { setverdict(fail) }
1370 if (rawenc2(valueof(tms5)) == '80'O) { setverdict(pass) } else { setverdict(fail) }
1371 if (rawenc2(valueof(tms6)) == '11226361736361646961'O) { setverdict(pass) } else { setverdict(fail) }
1372 if (rawenc2(valueof(tms7)) == '112280737065656463726F7373'O) { setverdict(pass) } else { setverdict(fail) }
1373 if (rawenc2(valueof(tms8)) == '112299993344747269676F6E5566'O) { setverdict(pass) } else { setverdict(fail) }
1374 if (rawenc2(valueof(tms9)) == '01B100'O) { setverdict(pass) } else { setverdict(fail) }
1375 if (rawenc2(valueof(tms10)) == 'B100'O) { setverdict(pass) } else { setverdict(fail) }
1376 if (rawenc2(valueof(tms11)) == '80B100'O) { setverdict(pass) } else { setverdict(fail) }
1377 if (rawenc2(valueof(tms12)) == '802A726F636B72696467652A'O) { setverdict(pass) } else { setverdict(fail) }
1378 if (rawenc2(valueof(tms13)) == '80'O) { setverdict(pass) } else { setverdict(fail) }
1379 if (rawenc10(valueof(tms14)) == '01070101756E69636F726E01'O) { setverdict(pass) } else { setverdict(fail) }
1380 if (rawenc12(valueof(tms15)) == '010601017069636E696301'O) { setverdict(pass) } else { setverdict(fail) }
1381 if (rawenc14(valueof(tms16)) == '010A01016D6F636B01747572746C65'O) { setverdict(pass) } else { setverdict(fail) }
1382 if (rawenc16(valueof(tms17)) == '010264696E6E657262656C6C01'O) { setverdict(pass) } else { setverdict(fail) }
1383 if (rawenc18(valueof(tms18)) == '010274696765726C696C7901'O) { setverdict(pass) } else { setverdict(fail) }
1384 if (rawenc20(valueof(tms19)) == '01010001'O) { setverdict(pass) } else { setverdict(fail) }
1385 if (rawenc22(valueof(tms20)) == '010103016F6E65'O) { setverdict(pass) } else { setverdict(fail) }
1386 if (rawenc24(valueof(tms21)) == '010101010201'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1387 if (rawenc24(valueof(tms22)) == '0101'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1388 if (rawenc24(valueof(tms23)) == '0101'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1389 if (rawenc26(valueof(tms24)) == '090102030401'O) { setverdict(pass) } else { setverdict(fail) }
1390 if (rawenc28(valueof(tms25)) == '01010201'O) { setverdict(pass) } else { setverdict(fail) }
1391 if (rawenc30(valueof(tms26)) == '0101020121'O) { setverdict(pass) } else { setverdict(fail) }
1392 if (rawenc32(valueof(tms27)) == '0101020121'O) { setverdict(pass) } else { setverdict(fail) }
1393 if (rawenc34(valueof(tms28)) == '01010201030409'O) { setverdict(pass) } else { setverdict(fail) }
1394 if (rawenc36(valueof(tms29)) == '01010201030409'O) { setverdict(pass) } else { setverdict(fail) }
1395 if (rawenc38(valueof(tms30)) == '010181'O) { setverdict(pass) } else { setverdict(fail) }
1396 if (rawenc40(valueof(tms31)) == '0101028301058601'O) { setverdict(pass) } else { setverdict(fail) }
1397 if (rawenc42(valueof(tms32)) == '010103'O) { setverdict(pass) } else { setverdict(fail) }
1398 if (rawenc44(valueof(tms33)) == '0101015859'O) { setverdict(pass) } else { setverdict(fail) }
1399 if (rawenc46(valueof(tms34)) == '0101015859'O) { setverdict(pass) } else { setverdict(fail) }
1400 }
1401
1402 type record of integer myintlist1 with { variant "" encode "RAW" }
1403 type set of integer myintset1 with { variant "" encode "RAW" }
1404
1405 const myintlist1 cmil1 := { 1, 2, 3 } with { erroneous([0]) "before := 1" }
1406 const myintlist1 cmil2 := { 1, 2, 3 } with { erroneous([2]) "before := 1" }
1407 const myintlist1 cmil3 := { 1, 2, 3 } with { erroneous([2]) "after := 1" }
1408 const myintlist1 cmil4 := { 1, 2, 3 } with { erroneous([0]) "value := 0" }
1409 const myintlist1 cmil5 := { 1, 2, 3 } with { erroneous([0]) "before := 3" erroneous([0]) "value := 2" erroneous([0]) "after := 1" }
1410 const myintlist1 cmil6 := { 1, 2, 3 } with { erroneous([2]) "before := omit all" }
1411 const myintlist1 cmil7 := { 1, 2, 3 } with { erroneous([0]) "value := omit" }
1412 const myintlist1 cmil8 := { 1, 2, 3 } with { erroneous([0]) "after := omit all" }
1413 const myintlist1 cmil9 := { 1, 2, 3 } with { erroneous([0]) "after := myrec1 : { 1, \"hulululu\" }" }
1414 const myintlist1 cmil10 := { 1, 2, 3 } with { erroneous([0], [1], [2]) "after := 6 * 7" }
1415 const myintlist1 cmil11 := { 1, 2, 3 } with { erroneous([0]) "value(raw) := '1122'O" }
1416 const myintlist1 cmil12 := { 1, 2, 3 } with { erroneous([0]) "value(raw) := '1122'O" erroneous([1]) "after(raw) := '1122'O" erroneous([2]) "before(raw) := '2211'O" }
1417 const myintset1 cmis1 := { 1, 2, 3 } with { erroneous([0]) "before := 1" }
1418 const myintset1 cmis2 := { 1, 2, 3 } with { erroneous([2]) "before := 1" }
1419 const myintset1 cmis3 := { 1, 2, 3 } with { erroneous([2]) "after := 1" }
1420 const myintset1 cmis4 := { 1, 2, 3 } with { erroneous([0]) "value := 0" }
1421 const myintset1 cmis5 := { 1, 2, 3 } with { erroneous([0]) "before := 3" erroneous([0]) "value := 2" erroneous([0]) "after := 1" }
1422 const myintset1 cmis6 := { 1, 2, 3 } with { erroneous([2]) "before := omit all" }
1423 const myintset1 cmis7 := { 1, 2, 3 } with { erroneous([0]) "value := omit" }
1424 const myintset1 cmis8 := { 1, 2, 3 } with { erroneous([0]) "after := omit all" }
1425 const myintset1 cmis9 := { 1, 2, 3 } with { erroneous([0]) "after := myrec1 : { 1, \"hulululu\" }" }
1426 const myintset1 cmis10 := { 1, 2, 3 } with { erroneous([0], [1], [2]) "after := 6 * 7" }
1427 const myintset1 cmis11 := { 1, 2, 3 } with { erroneous([0]) "value(raw) := '1122'O" }
1428 const myintset1 cmis12 := { 1, 2, 3 } with { erroneous([0]) "value(raw) := '1122'O" erroneous([1]) "after(raw) := '1122'O" erroneous([2]) "before(raw) := '2211'O" }
1429 template myintlist1 tmil1 := { 1, 2, 3 } with { erroneous([0]) "before := 1" }
1430 template myintlist1 tmil2 := { 1, 2, 3 } with { erroneous([2]) "before := 1" }
1431 template myintlist1 tmil3 := { 1, 2, 3 } with { erroneous([2]) "after := 1" }
1432 template myintlist1 tmil4 := { 1, 2, 3 } with { erroneous([0]) "value := 0" }
1433 template myintlist1 tmil5 := { 1, 2, 3 } with { erroneous([0]) "before := 3" erroneous([0]) "value := 2" erroneous([0]) "after := 1" }
1434 template myintlist1 tmil6 := { 1, 2, 3 } with { erroneous([2]) "before := omit all" }
1435 template myintlist1 tmil7 := { 1, 2, 3 } with { erroneous([0]) "value := omit" }
1436 template myintlist1 tmil8 := { 1, 2, 3 } with { erroneous([0]) "after := omit all" }
1437 template myintlist1 tmil9 := { 1, 2, 3 } with { erroneous([0]) "after := myrec1 : { 1, \"hulululu\" }" }
1438 template myintlist1 tmil10 := { 1, 2, 3 } with { erroneous([0], [1], [2]) "after := 6 * 7" }
1439 template myintlist1 tmil11 := { 1, 2, 3 } with { erroneous([0]) "value(raw) := '1122'O" }
1440 template myintlist1 tmil12 := { 1, 2, 3 } with { erroneous([0]) "value(raw) := '1122'O" erroneous([1]) "after(raw) := '1122'O" erroneous([2]) "before(raw) := '2211'O" }
1441 template myintset1 tmis1 := { 1, 2, 3 } with { erroneous([0]) "before := 1" }
1442 template myintset1 tmis2 := { 1, 2, 3 } with { erroneous([2]) "before := 1" }
1443 template myintset1 tmis3 := { 1, 2, 3 } with { erroneous([2]) "after := 1" }
1444 template myintset1 tmis4 := { 1, 2, 3 } with { erroneous([0]) "value := 0" }
1445 template myintset1 tmis5 := { 1, 2, 3 } with { erroneous([0]) "before := 3" erroneous([0]) "value := 2" erroneous([0]) "after := 1" }
1446 template myintset1 tmis6 := { 1, 2, 3 } with { erroneous([2]) "before := omit all" }
1447 template myintset1 tmis7 := { 1, 2, 3 } with { erroneous([0]) "value := omit" }
1448 template myintset1 tmis8 := { 1, 2, 3 } with { erroneous([0]) "after := omit all" }
1449 template myintset1 tmis9 := { 1, 2, 3 } with { erroneous([0]) "after := myrec1 : { 1, \"hulululu\" }" }
1450 template myintset1 tmis10 := { 1, 2, 3 } with { erroneous([0], [1], [2]) "after := 6 * 7" }
1451 template myintset1 tmis11 := { 1, 2, 3 } with { erroneous([0]) "value(raw) := '1122'O" }
1452 template myintset1 tmis12 := { 1, 2, 3 } with { erroneous([0]) "value(raw) := '1122'O" erroneous([1]) "after(raw) := '1122'O" erroneous([2]) "before(raw) := '2211'O" }
1453
1454 // Basic encoding of record of/set of values/templates.
1455 testcase raw_negtest_recordofs() runs on MyComp
1456 {
1457 if (rawenc4(cmil1) == '01010203'O) { setverdict(pass) } else { setverdict(fail) }
1458 if (rawenc4(cmil2) == '01020103'O) { setverdict(pass) } else { setverdict(fail) }
1459 if (rawenc4(cmil3) == '01020301'O) { setverdict(pass) } else { setverdict(fail) }
1460 if (rawenc4(cmil4) == '000203'O) { setverdict(pass) } else { setverdict(fail) }
1461 if (rawenc4(cmil5) == '0302010203'O) { setverdict(pass) } else { setverdict(fail) }
1462 if (rawenc4(cmil6) == '03'O) { setverdict(pass) } else { setverdict(fail) }
1463 if (rawenc4(cmil7) == '0203'O) { setverdict(pass) } else { setverdict(fail) }
1464 if (rawenc4(cmil8) == '01'O) { setverdict(pass) } else { setverdict(fail) }
1465 if (rawenc4(cmil9) == '010168756C756C756C750203'O) { setverdict(pass) } else { setverdict(fail) }
1466 if (rawenc4(cmil10) == '012A022A032A'O) { setverdict(pass) } else { setverdict(fail) }
1467 if (rawenc4(cmil11) == '11220203'O) { setverdict(pass) } else { setverdict(fail) }
1468 if (rawenc4(cmil12) == '1122021122221103'O) { setverdict(pass) } else { setverdict(fail) }
1469 if (rawenc5(cmis1) == '01010203'O) { setverdict(pass) } else { setverdict(fail) }
1470 if (rawenc5(cmis2) == '01020103'O) { setverdict(pass) } else { setverdict(fail) }
1471 if (rawenc5(cmis3) == '01020301'O) { setverdict(pass) } else { setverdict(fail) }
1472 if (rawenc5(cmis4) == '000203'O) { setverdict(pass) } else { setverdict(fail) }
1473 if (rawenc5(cmis5) == '0302010203'O) { setverdict(pass) } else { setverdict(fail) }
1474 if (rawenc5(cmis6) == '03'O) { setverdict(pass) } else { setverdict(fail) }
1475 if (rawenc5(cmis7) == '0203'O) { setverdict(pass) } else { setverdict(fail) }
1476 if (rawenc5(cmis8) == '01'O) { setverdict(pass) } else { setverdict(fail) }
1477 if (rawenc5(cmis9) == '010168756C756C756C750203'O) { setverdict(pass) } else { setverdict(fail) }
1478 if (rawenc5(cmis10) == '012A022A032A'O) { setverdict(pass) } else { setverdict(fail) }
1479 if (rawenc5(cmis11) == '11220203'O) { setverdict(pass) } else { setverdict(fail) }
1480 if (rawenc5(cmis12) == '1122021122221103'O) { setverdict(pass) } else { setverdict(fail) }
1481 if (rawenc4(valueof(tmil1)) == '01010203'O) { setverdict(pass) } else { setverdict(fail) }
1482 if (rawenc4(valueof(tmil2)) == '01020103'O) { setverdict(pass) } else { setverdict(fail) }
1483 if (rawenc4(valueof(tmil3)) == '01020301'O) { setverdict(pass) } else { setverdict(fail) }
1484 if (rawenc4(valueof(tmil4)) == '000203'O) { setverdict(pass) } else { setverdict(fail) }
1485 if (rawenc4(valueof(tmil5)) == '0302010203'O) { setverdict(pass) } else { setverdict(fail) }
1486 if (rawenc4(valueof(tmil6)) == '03'O) { setverdict(pass) } else { setverdict(fail) }
1487 if (rawenc4(valueof(tmil7)) == '0203'O) { setverdict(pass) } else { setverdict(fail) }
1488 if (rawenc4(valueof(tmil8)) == '01'O) { setverdict(pass) } else { setverdict(fail) }
1489 if (rawenc4(valueof(tmil9)) == '010168756C756C756C750203'O) { setverdict(pass) } else { setverdict(fail) }
1490 if (rawenc4(valueof(tmil10)) == '012A022A032A'O) { setverdict(pass) } else { setverdict(fail) }
1491 if (rawenc4(valueof(tmil11)) == '11220203'O) { setverdict(pass) } else { setverdict(fail) }
1492 if (rawenc4(valueof(tmil12)) == '1122021122221103'O) { setverdict(pass) } else { setverdict(fail) }
1493 if (rawenc5(valueof(tmis1)) == '01010203'O) { setverdict(pass) } else { setverdict(fail) }
1494 if (rawenc5(valueof(tmis2)) == '01020103'O) { setverdict(pass) } else { setverdict(fail) }
1495 if (rawenc5(valueof(tmis3)) == '01020301'O) { setverdict(pass) } else { setverdict(fail) }
1496 if (rawenc5(valueof(tmis4)) == '000203'O) { setverdict(pass) } else { setverdict(fail) }
1497 if (rawenc5(valueof(tmis5)) == '0302010203'O) { setverdict(pass) } else { setverdict(fail) }
1498 if (rawenc5(valueof(tmis6)) == '03'O) { setverdict(pass) } else { setverdict(fail) }
1499 if (rawenc5(valueof(tmis7)) == '0203'O) { setverdict(pass) } else { setverdict(fail) }
1500 if (rawenc5(valueof(tmis8)) == '01'O) { setverdict(pass) } else { setverdict(fail) }
1501 if (rawenc5(valueof(tmis9)) == '010168756C756C756C750203'O) { setverdict(pass) } else { setverdict(fail) }
1502 if (rawenc5(valueof(tmis10)) == '012A022A032A'O) { setverdict(pass) } else { setverdict(fail) }
1503 if (rawenc5(valueof(tmis11)) == '11220203'O) { setverdict(pass) } else { setverdict(fail) }
1504 if (rawenc5(valueof(tmis12)) == '1122021122221103'O) { setverdict(pass) } else { setverdict(fail) }
1505 }
1506
1507 type union myuni1 {
1508 integer f1,
1509 float f2,
1510 charstring f3,
1511 myintlist1 f4,
1512 octetstring f5
1513 } with { variant "" encode "RAW" }
1514
1515 type union myuni2 {
1516 myrec1 f1,
1517 myrec1 f2,
1518 myrec1 f3,
1519 myrec2 f4
1520 } with {
1521 variant "TAG(f1, f1 = 9;
1522 f2, { f1 = 10, f2 = \"kayano\" };
1523 f3, OTHERWISE)"
1524 variant "" encode "RAW"
1525 }
1526
1527 // `before/after' is not allowed here, but `omit' is fine.
1528 const myuni1 cmu1 := { f1 := 0 } with { erroneous(f1) "value := 1" }
1529 const myuni1 cmu2 := { f1 := 0 } with { erroneous(f1) "value := omit" }
1530 const myuni1 cmu3 := { f1 := 0 } with { erroneous(f1) "value(raw) := '1122'O" }
1531 const myuni1 cmu4 := { f1 := 0 } with { erroneous(f1) "value(raw) := ''B" }
1532 const myuni1 cmu5 := { f4 := { 0, 1, 2, 3 } } with { erroneous(f4[0]) "value := 100" }
1533 const myuni1 cmu6 := { f4 := { 0, 1, 2, 3 } } with { erroneous(f4[0]) "value := omit" erroneous(f4[3]) "after := 99" }
1534 const myuni2 cmu7 := { f2 := { 10, "nimbus" } } with { erroneous(f2.f1) "value := 11" } // Expected `erroneous' operation.
1535 const myuni2 cmu8 := { f2 := { 19, "nimbus" } } with { erroneous(f2.f1) "value := 11" } // `erroneous' stuff is overwritten by TAGs mechanism (19(13) -> 10(0A)).
1536 const myuni2 cmu9 := { f2 := { 19, "nimbus" } } with { erroneous(f2.f1) "value := omit" } // Strange results are possible...
1537 template myuni1 tmu1 := { f1 := 0 } with { erroneous(f1) "value := 1" }
1538 template myuni1 tmu2 := { f1 := 0 } with { erroneous(f1) "value := omit" }
1539 template myuni1 tmu3 := { f1 := 0 } with { erroneous(f1) "value(raw) := '1122'O" }
1540 template myuni1 tmu4 := { f1 := 0 } with { erroneous(f1) "value(raw) := ''B" }
1541 template myuni1 tmu5 := { f4 := { 0, 1, 2, 3 } } with { erroneous(f4[0]) "value := 100" }
1542 template myuni1 tmu6 := { f4 := { 0, 1, 2, 3 } } with { erroneous(f4[0]) "value := omit" erroneous(f4[3]) "after := 99" }
1543 template myuni2 tmu7 := { f2 := { 10, "nimbus" } } with { erroneous(f2.f1) "value := 11" }
1544 template myuni2 tmu8 := { f2 := { 19, "nimbus" } } with { erroneous(f2.f1) "value := 11" }
1545 template myuni2 tmu9 := { f2 := { 19, "nimbus" } } with { erroneous(f2.f1) "value := omit" }
1546
1547 // Basic encoding of union values/templates.
1548 testcase raw_negtest_unions() runs on MyComp
1549 {
1550 if (rawenc6(cmu1) == '01'O) { setverdict(pass) } else { setverdict(fail) }
1551 if (rawenc6(cmu2) == ''O) { setverdict(pass) } else { setverdict(fail) }
1552 if (rawenc6(cmu3) == '1122'O) { setverdict(pass) } else { setverdict(fail) }
1553 if (rawenc6(cmu4) == ''O) { setverdict(pass) } else { setverdict(fail) }
1554 if (rawenc6(cmu5) == '64010203'O) { setverdict(pass) } else { setverdict(fail) }
1555 if (rawenc6(cmu6) == '01020363'O) { setverdict(pass) } else { setverdict(fail) }
1556 if (rawenc8(cmu7) == '0B6E696D627573'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1557 if (rawenc8(cmu8) == '0B6E696D627573'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1558 if (rawenc8(cmu9) == '6E696D627573'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1559 if (rawenc6(valueof(tmu1)) == '01'O) { setverdict(pass) } else { setverdict(fail) }
1560 if (rawenc6(valueof(tmu2)) == ''O) { setverdict(pass) } else { setverdict(fail) }
1561 if (rawenc6(valueof(tmu3)) == '1122'O) { setverdict(pass) } else { setverdict(fail) }
1562 if (rawenc6(valueof(tmu4)) == ''O) { setverdict(pass) } else { setverdict(fail) }
1563 if (rawenc6(valueof(tmu5)) == '64010203'O) { setverdict(pass) } else { setverdict(fail) }
1564 if (rawenc6(valueof(tmu6)) == '01020363'O) { setverdict(pass) } else { setverdict(fail) }
1565 if (rawenc8(valueof(tmu7)) == '0B6E696D627573'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1566 if (rawenc8(valueof(tmu8)) == '0B6E696D627573'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1567 if (rawenc8(valueof(tmu9)) == '6E696D627573'O) { setverdict(pass) } else { setverdict(fail) } // There will be warnings, but fine.
1568 }
1569
1570 ///////////////////////////////////////////////////////////////////////////////
1571 // RAW tests for special cases where erroneous and raw attributes can conflict
1572
1573 external function encode_RawSpecTest_Rec_ExtBitGroup(in RawSpecTest_Rec_ExtBitGroup pdu) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(ALL:WARNING)" }
1574 external function encode_RawSpecTest_Rec_ExtBitGroup1(in RawSpecTest_Rec_ExtBitGroup1 pdu) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(ALL:WARNING)" }
1575 external function encode_RawSpecTest_Rec_LengthTo(in RawSpecTest_Rec_LengthTo pdu) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(ALL:WARNING)" }
1576 external function encode_RawSpecTest_Rec_LengthIndex(in RawSpecTest_Rec_LengthIndex pdu) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(ALL:WARNING)" }
1577 external function encode_RawSpecTest_Rec_PointerTo(in RawSpecTest_Rec_PointerTo pdu) return octetstring with { extension "prototype(convert) encode(RAW) errorbehavior(ALL:WARNING)" }
1578
1579 group RawSpecTest {
1580 type bitstring BIT7 with { variant "BITORDER(lsb), FIELDLENGTH(7)" }
1581 type bitstring BIT1 with { variant "BITORDER(lsb), FIELDLENGTH(1)" }
1582 type octetstring OCT1 with { variant "ALIGN(left)"; variant "FIELDLENGTH(1)" }
1583
1584 type record RawSpecTest_Rec_ExtBitGroup {
1585 OCT1 header,
1586 BIT7 octet2info,
1587 BIT1 extbit1,
1588 BIT7 octet2ainfo optional,
1589 BIT1 extbit2 optional,
1590 OCT1 octet3,
1591 BIT7 octet4info,
1592 BIT1 extbit3,
1593 BIT7 octet4ainfo optional,
1594 BIT1 extbit4 optional
1595 }
1596 with {
1597 variant "EXTENSION_BIT_GROUP(yes,octet2info,extbit2)"
1598 variant "EXTENSION_BIT_GROUP(yes,octet4info,extbit4)"
1599 }
1600
1601 type record RawSpecTest_Rec_ExtBitGroup1 {
1602 OCT1 header,
1603 BIT7 octet2info,
1604 BIT1 extbit1,
1605 BIT7 octet2ainfo optional,
1606 BIT1 extbit2 optional,
1607 OCT1 octet3,
1608 BIT7 octet4info,
1609 BIT1 extbit3,
1610 BIT7 octet4ainfo optional,
1611 BIT1 extbit4 optional
1612 }
1613 with {
1614 variant "EXTENSION_BIT_GROUP(yes,octet4info,extbit4)"
1615 }
1616
1617 const RawSpecTest_Rec_ExtBitGroup c_pdu1:={
1618 header:='0F'O,
1619 octet2info:='1011011'B,
1620 extbit1:= '0'B,
1621 octet2ainfo:= omit,
1622 extbit2:= omit,
1623 octet3:='00'O,
1624 octet4info:='0110001'B,
1625 extbit3:='1'B,
1626 octet4ainfo:='0011100'B,
1627 extbit4:='0'B
1628 }
1629
1630 const RawSpecTest_Rec_ExtBitGroup c_pdu2:= c_pdu1
1631 with {
1632 erroneous (header) "value := OCT1:'0F'O"
1633 erroneous (octet3) "value := OCT1:'00'O"
1634 }
1635
1636 const RawSpecTest_Rec_ExtBitGroup c_pdu3:= c_pdu1
1637 with {
1638 erroneous (extbit2) "value := omit"
1639 }
1640
1641 const RawSpecTest_Rec_ExtBitGroup1 c_pdu4:= {
1642 header:='0F'O,
1643 octet2info:='1011011'B,
1644 extbit1:= '0'B,
1645 octet2ainfo:= omit,
1646 extbit2:= omit,
1647 octet3:='00'O,
1648 octet4info:='0110001'B,
1649 extbit3:='1'B,
1650 octet4ainfo:='0011100'B,
1651 extbit4:='0'B
1652 }
1653
1654 type record RawSpecTest_Rec_LengthTo {
1655 integer len,
1656 OCT1 o1,
1657 OCT1 o2,
1658 OCT1 o3,
1659 OCT1 o4,
1660 OCT1 o5
1661 }
1662 with {
1663 variant (len) "LENGTHTO(o1,o3,o5)"
1664 }
1665
1666 const RawSpecTest_Rec_LengthTo c_lengthto :={
1667 len := 0,
1668 o1 := '11'O,
1669 o2 := '22'O,
1670 o3 := '33'O,
1671 o4 := '44'O,
1672 o5 := '55'O
1673 }
1674
1675 const RawSpecTest_Rec_LengthTo c_lengthto1 := c_lengthto with { erroneous (o2,o4) "value := 'FF'O" }
1676 const RawSpecTest_Rec_LengthTo c_lengthto2 := c_lengthto with { erroneous (len) "value := '1234567890'O" }
1677 const RawSpecTest_Rec_LengthTo c_lengthto3 := c_lengthto with { erroneous (len,o1,o2,o3,o4,o5) "after := 'FF'O" erroneous (len,o1,o2,o3,o4,o5) "before := 'EE'O" }
1678
1679 type union InnerUni_LengthIndex { integer len } with { variant "" }
1680 type record RawSpecTest_Rec_LengthIndex {
1681 InnerUni_LengthIndex r,
1682 OCT1 o1,
1683 OCT1 o2,
1684 OCT1 o3,
1685 OCT1 o4,
1686 OCT1 o5
1687 }
1688 with {
1689 variant (r) "LENGTHTO(o1,o3,o5)"
1690 variant (r) "LENGTHINDEX(len)"
1691 }
1692
1693 const RawSpecTest_Rec_LengthIndex c_lengthindex :={
1694 r := { len := 9 },
1695 o1 := '11'O,
1696 o2 := '22'O,
1697 o3 := '33'O,
1698 o4 := '44'O,
1699 o5 := '55'O
1700 }
1701
1702 const RawSpecTest_Rec_LengthIndex c_lengthindex1 := c_lengthindex with { erroneous (r.len) "value := 'FF'O" }
1703 const RawSpecTest_Rec_LengthIndex c_lengthindex3 := c_lengthindex with { erroneous (o4) "before := omit all" }
1704 const RawSpecTest_Rec_LengthIndex c_lengthindex4 := c_lengthindex with { erroneous (r) "before := InnerUni_LengthIndex:{len:=7*16+7}" }
1705 const RawSpecTest_Rec_LengthIndex c_lengthindex5 := c_lengthindex with { erroneous (o3) "after := omit all" }
1706
1707 type record RawSpecTest_Rec_PointerTo {
1708 integer ptr1,
1709 integer ptr2,
1710 integer ptr3,
1711 octetstring field1,
1712 octetstring field2,
1713 octetstring field3
1714 }
1715 with {
1716 variant (ptr1) "POINTERTO(field1)";
1717 variant (ptr2) "POINTERTO(field2)";
1718 variant (ptr3) "POINTERTO(field3)"
1719 }
1720
1721 const RawSpecTest_Rec_PointerTo c_pointerto := {
1722 ptr1 := 0,
1723 ptr2 := 0,
1724 ptr3 := 0,
1725 field1 := 'AABBCC'O,
1726 field2 := 'EEEFFF'O,
1727 field3 := 'ABCDEF'O
1728 }
1729
1730 const RawSpecTest_Rec_PointerTo c_pointerto1 := c_pointerto with { erroneous (ptr1) "before := 'FF'O" }
1731 const RawSpecTest_Rec_PointerTo c_pointerto2 := c_pointerto with { erroneous (ptr1) "value := 'FF'O" }
1732 const RawSpecTest_Rec_PointerTo c_pointerto3 := c_pointerto with { erroneous (field1) "value := '77'O" }
1733 const RawSpecTest_Rec_PointerTo c_pointerto4 := c_pointerto with { erroneous (ptr3) "after := omit all" }
1734
1735 } with { encode "RAW" }
1736
1737
1738 testcase negtest_compare_with_erroneous_types_RAW_special() runs on MyComp
1739 {
1740 //log(encode_RawSpecTest_Rec_ExtBitGroup(c_pdu1));
1741 if (encode_RawSpecTest_Rec_ExtBitGroup(c_pdu1)==encode_RawSpecTest_Rec_ExtBitGroup(c_pdu2)) { setverdict(pass) } else { setverdict(fail) }
1742 //log(encode_RawSpecTest_Rec_ExtBitGroup1(c_pdu4));
1743 //log(encode_RawSpecTest_Rec_ExtBitGroup(c_pdu3));
1744 if (encode_RawSpecTest_Rec_ExtBitGroup1(c_pdu4)==encode_RawSpecTest_Rec_ExtBitGroup(c_pdu3)) { setverdict(pass) } else { setverdict(fail) }
1745 }
1746
1747 testcase negtest_compare_with_octetstring_RAW_special() runs on MyComp
1748 {
1749 ////////////////////////
1750 // LENGTHTO
1751 //log(encode_RawSpecTest_Rec_LengthTo(c_lengthto1)); // '0311FF33FF55'O
1752 //log(encode_RawSpecTest_Rec_LengthTo(c_lengthto2)); // '12345678901122334455'O
1753 //log(encode_RawSpecTest_Rec_LengthTo(c_lengthto3)); // 'EE03FFEE11FFEE22FFEE33FFEE44FFEE55FF'O
1754 if (encode_RawSpecTest_Rec_LengthTo(c_lengthto1)=='0311FF33FF55'O) { setverdict(pass) } else { setverdict(fail) }
1755 if (encode_RawSpecTest_Rec_LengthTo(c_lengthto2)=='12345678901122334455'O) { setverdict(pass) } else { setverdict(fail) }
1756 if (encode_RawSpecTest_Rec_LengthTo(c_lengthto3)=='EE03FFEE11FFEE22FFEE33FFEE44FFEE55FF'O) { setverdict(pass) } else { setverdict(fail) }
1757
1758 ////////////////////////
1759 // LENGTHTO / LENGTHINDEX
1760 //log(encode_RawSpecTest_Rec_LengthIndex(c_lengthindex)); // '031122334455'O
1761 //log(encode_RawSpecTest_Rec_LengthIndex(c_lengthindex1)); // 'FF1122334455'O
1762 if (encode_RawSpecTest_Rec_LengthIndex(c_lengthindex1)=='FF1122334455'O) { setverdict(pass) } else { setverdict(fail) }
1763 //log(encode_RawSpecTest_Rec_LengthIndex(c_lengthindex3)); // '4455'O
1764 if (encode_RawSpecTest_Rec_LengthIndex(c_lengthindex3)=='4455'O) { setverdict(pass) } else { setverdict(fail) }
1765 //log(encode_RawSpecTest_Rec_LengthIndex(c_lengthindex4)); // '77031122334455'O
1766 if (encode_RawSpecTest_Rec_LengthIndex(c_lengthindex4)=='77031122334455'O) { setverdict(pass) } else { setverdict(fail) }
1767 ///log(encode_RawSpecTest_Rec_LengthIndex(c_lengthindex5)); // segfault, where? :)
1768 if (encode_RawSpecTest_Rec_LengthIndex(c_lengthindex5)=='09112233'O) { setverdict(pass) } else { setverdict(fail) }
1769
1770 ///////////////////////
1771 // POINTERTO
1772 //log(encode_RawSpecTest_Rec_PointerTo(c_pointerto)); // '030507AABBCCEEEFFFABCDEF'O
1773 //log(encode_RawSpecTest_Rec_PointerTo(c_pointerto1)); // 'FF030305AABBCCEEEFFFABCDEF'O
1774 if (encode_RawSpecTest_Rec_PointerTo(c_pointerto1)=='FF030305AABBCCEEEFFFABCDEF'O) { setverdict(pass) } else { setverdict(fail) }
1775 //log(encode_RawSpecTest_Rec_PointerTo(c_pointerto2)); // 'FF0507AABBCCEEEFFFABCDEF'O
1776 if (encode_RawSpecTest_Rec_PointerTo(c_pointerto2)=='FF0507AABBCCEEEFFFABCDEF'O) { setverdict(pass) } else { setverdict(fail) }
1777 ///log(encode_RawSpecTest_Rec_PointerTo(c_pointerto3)); // '77EEEFFFABCDEF'O is this ok???
1778 ///if (encode_RawSpecTest_Rec_PointerTo(c_pointerto3)=='77EEEFFFABCDEF'O) { setverdict(pass) } else { setverdict(fail) }
1779 ///log(encode_RawSpecTest_Rec_PointerTo(c_pointerto4)); // ''O ok???
1780 ///if (encode_RawSpecTest_Rec_PointerTo(c_pointerto4)==''O) { setverdict(pass) } else { setverdict(fail) }
1781 }
1782
1783 control {
1784 execute(negtest_compare_with_erroneous_types_BER());
1785 execute(negtest_compare_with_octetstring_BER());
1786 execute(erroneous_logging());
1787 execute(negtest_compare_with_erroneous_types_TEXT());
1788 execute(raw_negtest_recordofs());
1789 execute(raw_negtest_records());
1790 execute(raw_negtest_unions());
1791 execute(negtest_compare_with_erroneous_types_RAW_special());
1792 execute(negtest_compare_with_octetstring_RAW_special());
1793 }
1794 }
This page took 0.067773 seconds and 6 git commands to generate.