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 ******************************************************************************/
10 import from Types all;
12 type component MyComp {}
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)" }
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)" }
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)" };
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)" };
50 const MySeq c_myseq := { i:=321, b:=false }
52 erroneous (i) "value := omit"
55 const MySeq c_myseq2 := { i:=321, b:=false }
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"
64 const MySeq c_myseq3 := { i:=321, b:=false }
66 erroneous (b) "before := omit all"
69 const MySeq c_myseq4 := { i:=321, b:=false }
71 erroneous (i) "after := omit all"
72 erroneous (i) "value := omit"
75 const MySeq c_myseq5 := { i:=321, b:=false }
77 erroneous (i) "after := omit all"
78 erroneous (i) "value := MySeqOf:{11,22,33}"
81 template MySeq t_myseq6_par(template integer p_i, template boolean p_b) := { i:=p_i, b:=p_b }
83 erroneous (b) "value := omit"
84 erroneous (i) "value := omit"
85 erroneous (b) "after := MyUnion:{b:=true}"
88 const MySeqOf c_myseqof := { 1,2,3,4,5 }
90 erroneous([0]) "after := omit all"
91 erroneous([0]) "value := 3.14"
92 erroneous([0]) "before := 0.0001"
95 const MySeqOf c_myseqof2 := { 1,2,3,4,5 }
97 erroneous([2]) "before := omit all"
98 erroneous([2]) "value := false"
99 erroneous([2]) "after := omit all"
102 const MyUnion c_myunion := { s:={ i:=123, b:=true} }
104 erroneous (s.i) "value := omit"
105 erroneous (s.b) "value := omit"
108 const MyUnion c_myunion2 := { i:=333 }
110 erroneous (i) "value := 3.14"
113 const MyUnion c_myunion3e := { i:=321 }
115 erroneous (i) "value(raw) := 'ABCD'O"
118 const MySeqModified2 c_seq_rawerr := { bs:='10101'B, i:=12345, oc:='123456'O, b:=true, r:=3.14 }
120 erroneous (bs) "before(raw) := 'ABCDEF'O"
121 erroneous (oc) "after(raw) := 'ABCDEF'O"
122 erroneous (i) "value(raw) := 'FFFFFFFFFFFFFF'O"
125 const MySeqOf c_seqof_rawerr :={ 1, 2, 3, 4, 5 }
127 erroneous ([0]) "before(raw) := 'DEADBEEF'O"
128 erroneous ([0]) "after(raw) := 'CAFEFEED'O"
129 erroneous ([3]) "value(raw) := 'BEEBEEFACE'O"
132 const MySeqOf c_seqof_erroneous_inside :={ 1, 2, 3, 4, 5 }
134 erroneous ([0]) "before(raw) := 'DEADBEEF'O"
135 erroneous ([0]) "after(raw) := 'CAFEFEED'O"
136 erroneous ([3]) "value := c_seq_rawerr"
139 template MySeq t_myseq_err := { i:=12, b:=true }
141 erroneous (i) "value := omit"
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" }
147 template MySeq t_myseq_err2 := { i:=12, b:=true }
149 erroneous (i) "value := MyInt:12"
150 erroneous (b) "value := MyBool:true"
153 const MyRecursiveSeq c_myrecursiveseq := { r := { r := omit } }
154 with { erroneous (r.r) "value:=1" }
158 type record TEXT_record {
161 } with { variant "SEPARATOR('\n\r')"};
163 type record TEXT_record_modified {
165 } with { variant "SEPARATOR('\n\r')"};
167 const TEXT_record c_myrecord_err:= {f1:="value1",f2:="value2"}
169 erroneous (f2) "before := omit all"
172 type record TEXT_record_modified2 {
174 } with { variant "SEPARATOR('\n\r')"};
176 const TEXT_record c_myrecord_err2:= {f1:="value1",f2:="value2"}
178 erroneous (f1) "after := omit all"
181 type record TEXT_record_modified3 {
184 } with { variant "SEPARATOR('\n\r')"};
186 const TEXT_record c_myrecord_err3:= {f1:="value1",f2:="value2"}
188 erroneous (f1) "value := ""ERRORVALUE1"""
189 erroneous (f2) "value := ""ERRORVALUE2"""
192 type record TEXT_record_comma {
195 } with { variant "SEPARATOR(',')"};
197 const TEXT_record_comma c_myrecord_err4:= {f1:="value1",f2:="value2"}
199 erroneous (f1) "value := ""ERRORVALUE1"""
200 erroneous (f2) "value := ""ERRORVALUE2"""
203 const TEXT_record_comma c_myrecord_err5:= {f1:="value1",f2:="value2"}
205 erroneous (f1) "value(raw) := 'FEDA'O"
206 erroneous (f2) "value(raw) := 'ADEF'O"
209 type record TEXT_record_int_bool {
212 } with { variant "SEPARATOR('\n\r')"};
214 const TEXT_record_int_bool c_myrecord_err6:={i:=12,b:=true}
216 erroneous (i) "value := 13"
217 erroneous (b) "value := false"
220 type record TEXT_record_int_bool2 {
223 } with { variant "SEPARATOR('\n\r')"};
225 const TEXT_record_int_bool c_myrecord_err7:={i:=12,b:=true}
227 erroneous (i) "value(raw) := 'ABCD'O"
228 erroneous (b) "value(raw) := 'BABA'O"
231 const TEXT_record_int_bool c_myrecord_err8:={i:=12,b:=true}
233 erroneous (i) "after(raw) := 'ABAB'O"
234 erroneous (b) "before(raw) := 'BABA'O"
237 type record of integer TEXT_rofint with { variant "BEGIN('PDU:'),END(':UDP'),SEPARATOR(',')"};
239 const TEXT_rofint c_rofint := { 1,2,3,4,5,6,7,8 }
241 erroneous ([0]) "before:=0"
244 type record TEXT_record1{
247 } with { variant "BEGIN('Head:'),END(':end'),SEPARATOR(',')"};
249 type record of TEXT_record1 TEXT_record_of with { variant "BEGIN('PDU:'),END(':UDP')"};
251 const TEXT_record_of c_myrecord_of_err:={{f1:="v1",f2:="v2"},{f1:="v3",f2:="v4"}}
253 erroneous ([0]) "value := omit"
256 const TEXT_record_of c_myrecord_of_err2:={{f1:="v1",f2:="v2"},{f1:="v3",f2:="v4"}}
258 erroneous ([0].f1) "value := ""f1"""
259 erroneous ([1].f2) "value := ""f2"""
262 const TEXT_record_of c_myrecord_of_err3:={{f1:="v1",f2:="v2"},{f1:="v3",f2:="v4"}}
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"
270 type union TEXT_union {
273 } with { variant "BEGIN('Head:'),END(':end')";
274 variant (f1) "BEGIN('f1:'),END(':1f')"
275 variant (f2) "BEGIN('f2:'),END(':2f')" };
277 const TEXT_union c_mytextunion_err:={f1:="value2"}
279 erroneous (f1) "value := TEXT_union.f1:""IRON"""
282 type union TEXT_union2 {
285 } with { variant "BEGIN('Head:'),END(':end')"};
287 const TEXT_union2 c_mytextunion_err2:={f1:="value2"}
289 erroneous (f1) "value(raw) :=TEXT_union.f1:""ABCD"""
292 template TEXT_record t_mytextreq_err := { f1:="ORIG", f2:="INAL" }
294 erroneous (f1) "value := omit"
297 type record TEXT_record_int_bool3 {
300 }with { variant "BEGIN('BEGIN:'),END(':END'),SEPARATOR('_SEPARATOR_')"};
302 const TEXT_record_int_bool3 c_myrecord_err10:={i:=13,b:=true}
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"
312 type record TEXT_record_single{
315 with { variant "BEGIN('BEGIN:'),END(':END'),SEPARATOR('_SEPARATOR_')"};
317 const TEXT_record_single c_myrecord_err11:={s:="SINGLE CHARSTRING"}
319 erroneous (s) "before(raw) := '4444'O"
320 erroneous (s) "value(raw) := '2222'O"
321 erroneous (s) "after(raw) := '3333'O"
324 const TEXT_record_int_bool3 c_myrecord_err12:={i:=13,b:=true}
326 erroneous (i) "value := omit"
327 erroneous (i) "after(raw) := '4444'O"
330 type record TEXT_record_optional{
331 charstring s optional
333 with { variant "BEGIN('BEGIN:'),END(':END'),SEPARATOR('_SEPARATOR_')"};
335 const TEXT_record_optional c_myrecord_err13:={s:="optional"}
337 erroneous (s) "value := omit"
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""" }
344 }with {encode "TEXT"}
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
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); }
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); }
360 const MySeqModified3 c_myseqmod3 := { b := false };
361 if (encode_MySeq(c_myseq3)==encode_MySeqModified3(c_myseqmod3))
362 { setverdict(pass); } else { setverdict(fail); }
364 const MySeqModified4 c_myseqmod4 := {};
365 if (encode_MySeq(c_myseq4)==encode_MySeqModified4(c_myseqmod4))
366 { setverdict(pass); } else { setverdict(fail); }
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); }
372 // sequence of values
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); }
378 const MySeqOfModified2 c_myseqofmod2 := { false };
379 if (encode_MySeqOf(c_myseqof2)==encode_MySeqOfModified2(c_myseqofmod2))
380 { setverdict(pass); } else { setverdict(fail); }
384 const MyUnionModified c_myunionmod := { s := {} };
385 if (encode_MyUnion(c_myunion)==encode_MyUnionModified(c_myunionmod))
386 { setverdict(pass); } else { setverdict(fail); }
388 const MyUnionModified c_myunionmod2 := { r := 3.14 };
389 if (encode_MyUnion(c_myunion2)==encode_MyUnionModified(c_myunionmod2))
390 { setverdict(pass); } else { setverdict(fail); }
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); }
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); }
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); }
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); }
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
416 // sequence with raw value
417 if (encode_MySeqModified2(c_seq_rawerr)=='3023ABCDEF030203A8FFFFFFFFFFFFFF0403123456ABCDEF0101FF0908033331342E452D32'O)
418 { setverdict(pass); } else { setverdict(fail); }
420 // sequence of with raw value
421 if (encode_MySeqOf(c_seqof_rawerr)=='3019DEADBEEF020101CAFEFEED020102020103BEEBEEFACE020105'O)
422 { setverdict(pass); } else { setverdict(fail); }
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); }
428 // union with raw value
429 if (encode_MyUnion(c_myunion3e)=='ABCD'O)
430 { setverdict(pass); } else { setverdict(fail); }
432 // recursive with erroenous embedded on an optional path
433 if (encode_MyRecursiveSeq(c_myrecursiveseq)=='30053003020101'O)
434 { setverdict(pass); } else { setverdict(fail); }
436 if (encode_MyRecursiveRec(c_myrecursiverec)=="<MySeq><MySeq>error</MySeq></MySeq>")
437 { setverdict(pass); } else { setverdict(fail); }
440 //////////////////////////////////////////////////////////////////////////////
448 with { encode "TEXT" variant "" }
450 type record of integer ROF
451 with { encode "TEXT" variant "" }
459 with { encode "TEXT" variant "" }
461 template U tu := { i := 123 }
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"
471 const ROF c_rofa := { 1,2,3 }
473 erroneous ([0]) "value := 333"
474 erroneous ([1]) "value := 333"
475 erroneous ([2]) "value := 333"
478 const ROF c_rofb := { 1,2,3 }
480 erroneous ([0],[1],[2]) "value := 333"
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" }
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" }
491 testcase erroneous_logging() runs on MyComp
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 } " &
501 { setverdict(pass); } else { setverdict(fail); }
503 // multiple qualifiers in one erroneous
504 if (log2str(c_rofa)==log2str(c_rofb))
505 { setverdict(pass); } else { setverdict(fail); }
507 // erroneous references a non-erroneous
508 if (log2str(c_rof2)==log2str(c_rof3))
509 { setverdict(pass); } else { setverdict(fail); }
511 // erroneous references other erroneous
512 if (log2str(c_rof2b)==log2str(c_rof3b))
513 { setverdict(pass); } else { setverdict(fail); }
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
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 {
526 log ("encode_TEXT_Record(c_myrecord_err)= " , encode_TEXT_Record(c_myrecord_err)) ;
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 {
533 log ("encode_TEXT_Record(c_myrecord_err2)= " , encode_TEXT_Record(c_myrecord_err2)) ;
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 {
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));
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 {
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));
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);
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))
558 if(vl_encoded==vl_expected)
559 { setverdict(pass); } else {
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) );
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 {
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));
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 {
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));
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 {
593 log("encoded :",vl_encoded);
594 log("expected:",vl_expected);
595 log ("encode_TEXT_RecordModified5(c_myrecord_err8)= " , encode_TEXT_RecordModified5(c_myrecord_err8));
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 {
602 log ("encode_TEXT_rofint(c_rofint)= " , encode_TEXT_rofint(c_rofint));
603 log ("encode_TEXT_rofint(c_myrofint)= " , encode_TEXT_rofint(c_myrofint));
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 {
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));
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 {
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));
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 {
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));
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 {
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));
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 {
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));
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 {
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)));
655 if (encode_TEXT_RecordModified7(c_myrecord_err10)=="BEGIN:DD_SEPARATOR_ _SEPARATOR_\"\"_SEPARATOR_UU_SEPARATOR_33_SEPARATOR_ff:END" )
656 { setverdict(pass); } else {
658 log ("encode_TEXT_RecordModified7(c_myrecord_err10)= " , encode_TEXT_RecordModified7(c_myrecord_err10));
661 if (encode_TEXT_RecordSingle(c_myrecord_err11)=="BEGIN:DD_SEPARATOR_\"\"_SEPARATOR_33:END")
662 { setverdict(pass); } else {
664 log ("encode_TEXT_RecordSingle(c_myrecord_err11)= " , encode_TEXT_RecordSingle(c_myrecord_err11));
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);
672 if (encode_TEXT_RecordModified8(c_myrecord_err13)=="BEGIN::END" )
673 { setverdict(pass); } else {
675 log ("encode_TEXT_RecordModified8(c_myrecord_err13)= " , encode_TEXT_RecordModified8(c_myrecord_err13));
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)" }
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)" }
735 } with { variant (f1) "FIELDLENGTH(8)" encode "RAW" }
741 } with { variant (f1) "FIELDLENGTH(8)" encode "RAW" }
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)"
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)"
770 } with { variant (f1) "LENGTHTO(f2)" encode "RAW" }
775 } with { variant (f1) "LENGTHTO(f2)" encode "RAW" }
779 charstring f2 optional
780 } with { variant (f1) "LENGTHTO(f2)" encode "RAW" }
784 charstring f2 optional
785 } with { variant (f1) "LENGTHTO(f2)" encode "RAW" }
789 charstring f2 optional,
791 } with { variant (f1) "LENGTHTO(f2, f3)" encode "RAW" }
795 charstring f2 optional,
797 } with { variant (f1) "LENGTHTO(f2, f3)" encode "RAW" }
803 } with { variant (f1) "POINTERTO(f3)" encode "RAW" }
809 } with { variant (f1) "POINTERTO(f3)" encode "RAW" }
813 charstring f2 optional,
814 charstring f3 optional
815 } with { variant (f1) "POINTERTO(f3)" encode "RAW" }
819 charstring f2 optional,
820 charstring f3 optional
821 } with { variant (f1) "POINTERTO(f3)" encode "RAW" }
823 type union myuni8_rec9 {
825 } with { variant "" encode "RAW" }
831 variant (f2) "LENGTHTO(f3)"
832 variant (f2) "LENGTHINDEX(f1)"
836 type union myuni8_set9 {
838 } with { variant "" encode "RAW" }
844 variant (f2) "LENGTHTO(f3)"
845 variant (f2) "LENGTHINDEX(f1)"
849 type union myuni10_rec11 {
851 } with { variant "" encode "RAW" }
852 type record myrec11 {
854 myuni10_rec11 f2 optional,
855 charstring f3 optional,
856 charstring f4 optional
858 variant (f2) "LENGTHTO(f3, f4)"
859 variant (f2) "LENGTHINDEX(f1)"
864 type union myuni10_set11 {
866 } with { variant "" encode "RAW" }
869 myuni10_set11 f2 optional,
870 charstring f3 optional,
871 charstring f4 optional
873 variant (f2) "LENGTHTO(f3, f4)"
874 variant (f2) "LENGTHINDEX(f1)"
878 type record myrec12 {
881 } with { variant (f2) "PRESENCE(f1 = 128)" encode "RAW" }
886 } with { variant (f2) "PRESENCE(f1 = 128)" encode "RAW" }
888 type record myrec13 {
890 } with { variant "" encode "RAW" }
891 type record myrec14 {
896 } with { variant (f4) "PRESENCE(f1 = 9, f2.f1 = 99, f3 = 1)" encode "RAW" }
900 } with { variant "" encode "RAW" }
906 } with { variant (f4) "PRESENCE(f1 = 9, f2.f1 = 99, f3 = 1)" encode "RAW" }
908 type record myrec15 {
911 } with { variant "PRESENCE(f1 = 9, f2 = 2)" encode "RAW" }
916 } with { variant "PRESENCE(f1 = 9, f2 = 2)" encode "RAW" }
918 type record myrec16 {
920 } with { variant "" encode "RAW" }
921 type record myrec17 {
926 variant "TAG(f1, f1 = 1; f2, f1 = 2)"
932 } with { variant "" encode "RAW" }
938 variant "TAG(f1, f1 = 1; f2, f1 = 2)"
942 type record myrec18 {
944 } with { variant "" encode "RAW" }
945 type record myrec19 {
950 variant "TAG(f1, f1 = 1; f2, f1 = 2)"
956 } with { variant "" encode "RAW" }
962 variant "TAG(f1, f1 = 1; f2, f1 = 2)"
966 type record myrec20 {
969 } with { variant "" encode "RAW" }
973 } with { variant "" encode "RAW" }
974 type record myrec21 {
979 variant (f3) "CROSSTAG(f1, { f1 = 1, f1 = 11, f2 = 6 }; f2, f1 = 3)" encode "RAW"
985 } with { variant "" encode "RAW" }
989 } with { variant "" encode "RAW" }
995 variant (f3) "CROSSTAG(f1, { f1 = 1, f1 = 11, f2 = 6 }; f2, f1 = 3)" encode "RAW"
998 type record myrec22 {
1001 } with { variant "" encode "RAW" }
1002 type union myuni_3 {
1005 } with { variant "" encode "RAW" }
1006 type record myrec23 {
1007 integer f1 optional,
1008 integer f2 optional,
1011 variant (f3) "CROSSTAG(f1, { f1 = 1, f1 = 11, f2 = 6 }; f2, f1 = 3)" encode "RAW"
1015 integer f1 optional,
1017 } with { variant "" encode "RAW" }
1018 type union myuni_4 {
1021 } with { variant "" encode "RAW" }
1023 integer f1 optional,
1024 integer f2 optional,
1027 variant (f3) "CROSSTAG(f1, { f1 = 1, f1 = 11, f2 = 6 }; f2, f1 = 3)" encode "RAW"
1030 type record myrec24 {
1033 } with { variant "EXTENSION_BIT(yes)" encode "RAW" }
1038 } with { variant "EXTENSION_BIT(yes)" encode "RAW" }
1040 type record myrec25 {
1048 variant "EXTENSION_BIT_GROUP(yes, f1, f3)"
1049 variant "EXTENSION_BIT_GROUP(yes, f5, f6)"
1061 variant "EXTENSION_BIT_GROUP(yes, f1, f3)"
1062 variant "EXTENSION_BIT_GROUP(yes, f5, f6)"
1066 type record myrec26 {
1069 } with { variant (f2) "TAG(f2, f1 = 1)" encode "RAW" }
1074 } with { variant (f2) "TAG(f2, f1 = 1)" encode "RAW" }
1076 type union myuni_5 {
1079 } with { variant "" encode "RAW" }
1080 type record myrec27 {
1085 variant (f2) "LENGTHTO(f3)"
1086 variant (f2) "LENGTHINDEX(f1)"
1090 type union myuni_6 {
1093 } with { variant "" encode "RAW" }
1099 variant (f2) "LENGTHTO(f3)"
1100 variant (f2) "LENGTHINDEX(f1)"
1104 type record myrec28 {
1105 integer f1 optional,
1106 myuni_5 f2 optional,
1107 charstring f3 optional
1109 variant (f2) "LENGTHTO(f3)"
1110 variant (f2) "LENGTHINDEX(f1)"
1115 integer f1 optional,
1116 myuni_6 f2 optional,
1117 charstring f3 optional
1119 variant (f2) "LENGTHTO(f3)"
1120 variant (f2) "LENGTHINDEX(f1)"
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""" }
1261 // Basic encoding of record/set values/templates.
1262 testcase raw_negtest_records() runs on MyComp
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) }
1402 type record of integer myintlist1 with { variant "" encode "RAW" }
1403 type set of integer myintset1 with { variant "" encode "RAW" }
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" }
1454 // Basic encoding of record of/set of values/templates.
1455 testcase raw_negtest_recordofs() runs on MyComp
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) }
1513 } with { variant "" encode "RAW" }
1521 variant "TAG(f1, f1 = 9;
1522 f2, { f1 = 10, f2 = \"kayano\" };
1524 variant "" encode "RAW"
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" }
1547 // Basic encoding of union values/templates.
1548 testcase raw_negtest_unions() runs on MyComp
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.
1570 ///////////////////////////////////////////////////////////////////////////////
1571 // RAW tests for special cases where erroneous and raw attributes can conflict
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)" }
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)" }
1584 type record RawSpecTest_Rec_ExtBitGroup {
1588 BIT7 octet2ainfo optional,
1589 BIT1 extbit2 optional,
1593 BIT7 octet4ainfo optional,
1594 BIT1 extbit4 optional
1597 variant "EXTENSION_BIT_GROUP(yes,octet2info,extbit2)"
1598 variant "EXTENSION_BIT_GROUP(yes,octet4info,extbit4)"
1601 type record RawSpecTest_Rec_ExtBitGroup1 {
1605 BIT7 octet2ainfo optional,
1606 BIT1 extbit2 optional,
1610 BIT7 octet4ainfo optional,
1611 BIT1 extbit4 optional
1614 variant "EXTENSION_BIT_GROUP(yes,octet4info,extbit4)"
1617 const RawSpecTest_Rec_ExtBitGroup c_pdu1:={
1619 octet2info:='1011011'B,
1624 octet4info:='0110001'B,
1626 octet4ainfo:='0011100'B,
1630 const RawSpecTest_Rec_ExtBitGroup c_pdu2:= c_pdu1
1632 erroneous (header) "value := OCT1:'0F'O"
1633 erroneous (octet3) "value := OCT1:'00'O"
1636 const RawSpecTest_Rec_ExtBitGroup c_pdu3:= c_pdu1
1638 erroneous (extbit2) "value := omit"
1641 const RawSpecTest_Rec_ExtBitGroup1 c_pdu4:= {
1643 octet2info:='1011011'B,
1648 octet4info:='0110001'B,
1650 octet4ainfo:='0011100'B,
1654 type record RawSpecTest_Rec_LengthTo {
1663 variant (len) "LENGTHTO(o1,o3,o5)"
1666 const RawSpecTest_Rec_LengthTo c_lengthto :={
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" }
1679 type union InnerUni_LengthIndex { integer len } with { variant "" }
1680 type record RawSpecTest_Rec_LengthIndex {
1681 InnerUni_LengthIndex r,
1689 variant (r) "LENGTHTO(o1,o3,o5)"
1690 variant (r) "LENGTHINDEX(len)"
1693 const RawSpecTest_Rec_LengthIndex c_lengthindex :={
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" }
1707 type record RawSpecTest_Rec_PointerTo {
1716 variant (ptr1) "POINTERTO(field1)";
1717 variant (ptr2) "POINTERTO(field2)";
1718 variant (ptr3) "POINTERTO(field3)"
1721 const RawSpecTest_Rec_PointerTo c_pointerto := {
1725 field1 := 'AABBCC'O,
1726 field2 := 'EEEFFF'O,
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" }
1735 } with { encode "RAW" }
1738 testcase negtest_compare_with_erroneous_types_RAW_special() runs on MyComp
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) }
1747 testcase negtest_compare_with_octetstring_RAW_special() runs on MyComp
1749 ////////////////////////
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) }
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) }
1770 ///////////////////////
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) }
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());