1 .******************************************************************************
2 .* Copyright (c) 2000-2016 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
16 .* Szabo, Janos Zoltan – initial implementation
18 .******************************************************************************/
22 :docname.Test Description
23 :docno.7/152 91-CRL 113 200/3 Uen
27 :prep.ETH/XZR Krisztian Pandi
28 :appr.ETH/XZ (Gyula Koos)
31 :title.Test description - RAW coder
33 .*---------------------------------------------------------------------*
34 :h1.PREREQUISITES AND PREPARATIONS
35 .*---------------------------------------------------------------------*
36 .*---------------------------------------------------------------------*
37 :h2.Scope of the Test Object
38 .*---------------------------------------------------------------------*
41 This file is obsolate, don't modify, improve it anymore!
43 This TD contains test cases related to TTCN3 Executor's RAW coder function.
44 DON'T YOU DARE TO WRITE AN INSPECTION RECORD ABOUT THIS FILE.
48 :p.:us.Revision Information:eus.
53 REV DATE PREPARED CHANGE
54 === ========== ======== ======
55 A 2003-10-31 ETHCSIR New document
56 B 2005-11-09 EKRISZA New tests and updates of the original tests.
57 C 2007-03-06 EDMDELI Implicit message encoding
58 D 2007-06-20 EDMDELI New testcase for implicit message encoding
59 E 2008-10-01 EFERKOV Big integers
60 F 2010-01-18 EKRISZA Updated for TITAN R8C
61 H 2010-08-13 EKRISZA Updated for TITAN R8E
62 J 2011-05-26 EKRISZA Added new test
63 K 2010-01-18 EKRISZA Updated for TITAN R8H
64 A 2011-12-12 EKRISZA Updated for release
65 A 2012-06-27 EFERKOV Updated for release
66 A 2013-01-17 EKRIPND Updated for release
69 .*---------------------------------------------------------------------*
71 .*---------------------------------------------------------------------*
72 :p.:us.Software Tools:eus.
79 .*---------------------------------------------------------------------*
80 :h1.REQUIREMENT-BASED TESTS
81 .*---------------------------------------------------------------------*
82 .*---------------------------------------------------------------------*
83 :h2.Testing FIELDLENGTH Attribute
84 .*---------------------------------------------------------------------*
85 .*---------------------------------------------------------------------*
86 :h3. FIELDLENGTH(16) for integer
87 .*---------------------------------------------------------------------*
90 <TC- FIELDLENGTH(16) for integer>
94 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
95 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
98 with { encode "RAW"; variant "FIELDLENGTH(16)"};
100 const RAW_PDU i := 255
101 const octetstring o := 'FF00'O
105 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
106 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
108 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
109 else {setverdict(fail);}
113 Overall verdict: pass
119 .*---------------------------------------------------------------------*
120 :h3. FIELDLENGTH(8) for integer
121 .*---------------------------------------------------------------------*
124 <TC- FIELDLENGTH(8) for integer>
128 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
129 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
132 with { encode "RAW"; variant "FIELDLENGTH(8)"};
134 const RAW_PDU i := 15
135 const octetstring o := '0F'O
139 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
140 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
142 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
143 else {setverdict(fail);}
147 Overall verdict: pass
153 .*---------------------------------------------------------------------*
154 :h3. FIELDLENGTH(4) for integer
155 .*---------------------------------------------------------------------*
158 <TC- FIELDLENGTH(4) for integer>
162 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
163 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
166 with { encode "RAW"; variant "FIELDLENGTH(4)"};
168 const RAW_PDU i := 15
169 const octetstring o := '0F'O
173 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
174 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
176 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
177 else {setverdict(fail);}
181 Overall verdict: pass
187 .*---------------------------------------------------------------------*
188 :h3. FIELDLENGTH(1) for longer integer
189 .*---------------------------------------------------------------------*
192 <TC- FIELDLENGTH(1) for longer integer>
196 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
197 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
200 with { encode "RAW"; variant "FIELDLENGTH(1)"};
202 const RAW_PDU i := 15
203 const octetstring o := '0F'O
207 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
208 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
210 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
211 else {setverdict(fail);}
215 Overall verdict: error
221 .*---------------------------------------------------------------------*
222 :h3. FIELDLENGTH(16) for integer
223 .*---------------------------------------------------------------------*
226 <TC- FIELDLENGTH(16) for integer>
230 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
231 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
234 with { encode "RAW"; variant "FIELDLENGTH(16)"};
236 const RAW_PDU i := 4660
237 const octetstring o := '3412'O
241 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
242 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
244 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
245 else {setverdict(fail);}
249 Overall verdict: pass
255 .*---------------------------------------------------------------------*
256 :h3. FIELDLENGTH(32) for integer 1 bit long
257 .*---------------------------------------------------------------------*
260 <TC- FIELDLENGTH(32) for integer 1 bit long>
264 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
265 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
268 with { encode "RAW"; variant "FIELDLENGTH(32)"};
271 const octetstring o := '01000000'O
275 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
276 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
278 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
279 else {setverdict(fail);}
283 Overall verdict: pass
289 .*---------------------------------------------------------------------*
290 :h3. Default FIELDLENGTH for integer
291 .*---------------------------------------------------------------------*
294 <TC- Default FIELDLENGTH for integer>
298 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
299 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
302 with { encode "RAW"; variant ""};
304 const RAW_PDU i := 255
305 const octetstring o := 'FF'O
309 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
310 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
312 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
313 else {setverdict(fail);}
317 Overall verdict: pass
323 .*---------------------------------------------------------------------*
324 :h3. FIELDLENGTH(8) for bitstring
325 .*---------------------------------------------------------------------*
328 <TC- FIELDLENGTH(8) for bitstring>
332 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
333 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
335 type bitstring RAW_PDU
336 with { encode "RAW"; variant "FIELDLENGTH(8)"};
338 const RAW_PDU i := '11110000'B
339 const octetstring o := 'F0'O
343 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
344 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
346 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
347 else {setverdict(fail);}
351 Overall verdict: pass
357 .*---------------------------------------------------------------------*
358 :h3. FIELDLENGTH(8) for bitstring 4 bits long
359 .*---------------------------------------------------------------------*
362 <TC- FIELDLENGTH(8) for bitstring 4 bits long>
366 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
367 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
369 type bitstring RAW_PDU
370 with { encode "RAW"; variant "FIELDLENGTH(8)"};
372 const RAW_PDU i := '1111'B
373 const octetstring o := '0F'O
377 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
378 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
380 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == '0000'B & i)) {setverdict(pass);}
381 else {setverdict(fail);}
385 Overall verdict: pass
391 .*---------------------------------------------------------------------*
392 :h3. FIELDLENGTH(4) for bitstring
393 .*---------------------------------------------------------------------*
396 <TC- FIELDLENGTH(4) for bitstring>
400 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
401 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
403 type bitstring RAW_PDU
404 with { encode "RAW"; variant "FIELDLENGTH(4)"};
406 const RAW_PDU i := '1111'B
407 const octetstring o := '0F'O
411 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
412 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
414 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
415 else {setverdict(fail);}
419 Overall verdict: pass
425 .*---------------------------------------------------------------------*
426 :h3. FIELDLENGTH(4) for longer bitstring
427 .*---------------------------------------------------------------------*
430 <TC- FIELDLENGTH(4) for longer bitstring>
434 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
435 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
437 type bitstring RAW_PDU
438 with { encode "RAW"; variant "FIELDLENGTH(4)"};
440 const RAW_PDU i := '11111111'B
441 const octetstring o := 'FF'O
445 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
446 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
448 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
449 else {setverdict(fail);}
453 Overall verdict: error
459 .*---------------------------------------------------------------------*
460 :h3. FIELDLENGTH(16) for bitstring
461 .*---------------------------------------------------------------------*
464 <TC- FIELDLENGTH(16) for bitstring>
468 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
469 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
471 type bitstring RAW_PDU
472 with { encode "RAW"; variant "FIELDLENGTH(16)"};
474 const RAW_PDU i := '1111000001110000'B
475 const octetstring o := '70F0'O
479 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
480 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
482 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
483 else {setverdict(fail);}
487 Overall verdict: pass
493 .*---------------------------------------------------------------------*
494 :h3. FIELDLENGTH(24) for bitstring
495 .*---------------------------------------------------------------------*
498 <TC- FIELDLENGTH(24) for bitstring>
502 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
503 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
505 type bitstring RAW_PDU
506 with { encode "RAW"; variant "FIELDLENGTH(24)"};
508 const RAW_PDU i := '1111000001110000'B
509 const octetstring o := '70F000'O
513 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
514 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
516 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) =='00000000'B & i)) {setverdict(pass);}
517 else {setverdict(fail);}
521 Overall verdict: pass
527 .*---------------------------------------------------------------------*
528 :h3. FIELDLENGTH(0) for bitstring
529 .*---------------------------------------------------------------------*
532 <TC- FIELDLENGTH(0) for bitstring>
536 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
537 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
539 type bitstring RAW_PDU
540 with { encode "RAW"; variant "FIELDLENGTH(0)"};
542 const RAW_PDU i := '1111000001110000'B
543 const octetstring o := '70F0'O
547 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
548 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
550 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
551 else {setverdict(fail);}
555 Overall verdict: pass
561 .*---------------------------------------------------------------------*
562 :h3. Default FIELDLENGTH for bitstring
563 .*---------------------------------------------------------------------*
566 <TC- Default FIELDLENGTH for bitstring>
570 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
571 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
573 type bitstring RAW_PDU
574 with { encode "RAW"; variant ""};
576 const RAW_PDU i := '1111000001110000'B
577 const octetstring o := '70F0'O
581 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
582 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
584 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
585 else {setverdict(fail);}
589 Overall verdict: pass
595 .*---------------------------------------------------------------------*
596 :h3. FIELDLENGTH(32) for bitstring 4 bits long
597 .*---------------------------------------------------------------------*
600 <TC- FIELDLENGTH(32) for bitstring 4 bits long>
604 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
605 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
607 type bitstring RAW_PDU
608 with { encode "RAW"; variant "FIELDLENGTH(32)"};
610 const RAW_PDU i := '1111'B
611 const octetstring o := '0F000000'O
615 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
616 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
618 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == '0000000000000000000000000000'B & i)) {setverdict(pass);}
619 else {setverdict(fail);}
623 Overall verdict: pass
629 .*---------------------------------------------------------------------*
630 :h3. FIELDLENGTH(1) for octetstring
631 .*---------------------------------------------------------------------*
634 <TC- FIELDLENGTH(1) for octetstring>
638 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
639 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
641 type octetstring RAW_PDU
642 with { encode "RAW"; variant "FIELDLENGTH(1)"};
644 const RAW_PDU i := '0F'O
645 const octetstring o := '0F'O
649 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
650 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
652 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
653 else {setverdict(fail);}
657 Overall verdict: pass
663 .*---------------------------------------------------------------------*
664 :h3. FIELDLENGTH(2) for octetstring
665 .*---------------------------------------------------------------------*
668 <TC- FIELDLENGTH(2) for octetstring>
672 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
673 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
675 type octetstring RAW_PDU
676 with { encode "RAW"; variant "FIELDLENGTH(2)"};
678 const RAW_PDU i := '1234'O
679 const octetstring o := '1234'O
683 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
684 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
686 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
687 else {setverdict(fail);}
691 Overall verdict: pass
697 .*---------------------------------------------------------------------*
698 :h3. FIELDLENGTH(2) and BYTEORDER (first) for octetstring
699 .*---------------------------------------------------------------------*
702 <TC- FIELDLENGTH(2) and BYTEORDER (first) for octetstring>
706 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
707 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
709 type octetstring RAW_PDU
710 with { variant "FIELDLENGTH(2)";
711 variant "BYTEORDER (first)";
715 const RAW_PDU i := '1234'O
716 const octetstring o := '1234'O
720 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
721 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
723 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
724 else {setverdict(fail);}
728 Overall verdict: pass
734 .*---------------------------------------------------------------------*
735 :h3. FIELDLENGTH(2) and BYTEORDER (last) for octetstring
736 .*---------------------------------------------------------------------*
739 <TC- FIELDLENGTH(2) and BYTEORDER (last) for octetstring>
743 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
744 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
746 type octetstring RAW_PDU
748 variant "FIELDLENGTH(2)";
749 variant "BYTEORDER (last)"
752 const RAW_PDU i := '1234'O
753 const octetstring o := '3412'O
757 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
758 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
760 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
761 else {setverdict(fail);}
765 Overall verdict: pass
771 .*---------------------------------------------------------------------*
772 :h3. FIELDLENGTH(4) and BYTEORDER (first) for octetstring
773 .*---------------------------------------------------------------------*
776 <TC- FIELDLENGTH(4) and BYTEORDER (first) for octetstring>
780 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
781 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
783 type octetstring RAW_PDU
785 variant "FIELDLENGTH(4)";
786 variant "BYTEORDER (first)"
789 const RAW_PDU i := '12345678'O
790 const octetstring o := '12345678'O
794 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
795 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
797 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
798 else {setverdict(fail);}
802 Overall verdict: pass
808 .*---------------------------------------------------------------------*
809 :h3. FIELDLENGTH(4) for octetstring 3 octets long
810 .*---------------------------------------------------------------------*
813 <TC- FIELDLENGTH(4) for octetstring 3 octets long>
817 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
818 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
820 type octetstring RAW_PDU
822 variant "FIELDLENGTH(4)";
823 variant "BYTEORDER (first)"
826 const RAW_PDU i := '123456'O
827 const octetstring o := '12345600'O
831 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
832 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
834 if ((enc_RAW_PDU(i) == o)and((dec_RAW_PDU(o) == i & '00'O))) {setverdict(pass);}
835 else {setverdict(fail);}
839 Overall verdict: pass
845 .*---------------------------------------------------------------------*
846 :h3. FIELDLENGTH(5) for octetstring 2 octets long
847 .*---------------------------------------------------------------------*
850 <TC- FIELDLENGTH(5) for octetstring 2 octets long>
854 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
855 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
857 type octetstring RAW_PDU
859 variant "FIELDLENGTH(5)"
862 const RAW_PDU i := '1234'O
863 const octetstring o := '1234000000'O
867 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
868 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
870 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i & '000000'O )) {setverdict(pass);}
871 else {setverdict(fail);}
875 Overall verdict: pass
881 .*---------------------------------------------------------------------*
882 :h3. FIELDLENGTH(4) and BYTEORDER (last) for octetstring
883 .*---------------------------------------------------------------------*
886 <TC- FIELDLENGTH(4) and BYTEORDER (last) for octetstring>
890 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
891 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
893 type octetstring RAW_PDU
895 variant "FIELDLENGTH(4)";
896 variant "BYTEORDER (last)"
899 const RAW_PDU i := '12345678'O
900 const octetstring o := '78563412'O
904 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
905 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
907 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
908 else {setverdict(fail);}
912 Overall verdict: pass
918 .*---------------------------------------------------------------------*
919 :h3. FIELDLENGTH(4) and BYTEORDER (last) for octetstring 3 octets long
920 .*---------------------------------------------------------------------*
923 <TC- FIELDLENGTH(4) and BYTEORDER (last) for octetstring 3 octets long>
927 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
928 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
930 type octetstring RAW_PDU
932 variant "FIELDLENGTH(4)";
933 variant "BYTEORDER (last)"
936 const RAW_PDU i := '123456'O
937 const octetstring o := '00563412'O
941 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
942 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
944 if ((enc_RAW_PDU(i) == o)and((dec_RAW_PDU(o) == i & '00'O))) {setverdict(pass);}
945 else {setverdict(fail);}
949 Overall verdict: pass
955 .*---------------------------------------------------------------------*
956 :h3. Default FIELDLENGTH for octetstring
957 .*---------------------------------------------------------------------*
960 <TC- Default FIELDLENGTH for octetstring>
964 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
965 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
967 type octetstring RAW_PDU
971 const RAW_PDU i := '123456'O
972 const octetstring o := '123456'O
976 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
977 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
979 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
980 else {setverdict(fail);}
984 Overall verdict: pass
990 .*---------------------------------------------------------------------*
991 :h3. FIELDLENGTH(0) for octetstring
992 .*---------------------------------------------------------------------*
995 <TC- FIELDLENGTH(0) for octetstring>
999 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1000 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1002 type octetstring RAW_PDU
1004 variant "FIELDLENGTH(0)"
1007 const RAW_PDU i := '1234'O
1008 const octetstring o := '1234'O
1012 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1013 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1015 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1016 else {setverdict(fail);}
1020 Overall verdict: pass
1026 .*---------------------------------------------------------------------*
1027 :h3. FIELDLENGTH(2) for hexstring
1028 .*---------------------------------------------------------------------*
1031 <TC- FIELDLENGTH(2) for hexstring>
1035 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1036 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1038 type hexstring RAW_PDU
1039 with { encode "RAW";
1040 variant "FIELDLENGTH(2)"};
1042 const RAW_PDU i := '0F'H
1043 const octetstring o := 'F0'O
1047 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1048 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1050 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1051 else {setverdict(fail);}
1055 Overall verdict: pass
1061 .*---------------------------------------------------------------------*
1062 :h3. FIELDLENGTH(4) for hexstring
1063 .*---------------------------------------------------------------------*
1066 <TC- FIELDLENGTH(4) for hexstring>
1070 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1071 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1073 type hexstring RAW_PDU
1075 variant "FIELDLENGTH(4)"};
1077 const RAW_PDU i := '1234'H
1078 const octetstring o := '2143'O
1082 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1083 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1085 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1086 else {setverdict(fail);}
1090 Overall verdict: pass
1096 .*---------------------------------------------------------------------*
1097 :h3. FIELDLENGTH(8) for hexstring
1098 .*---------------------------------------------------------------------*
1101 <TC- FIELDLENGTH(8) for hexstring>
1105 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1106 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1108 type hexstring RAW_PDU
1109 with { encode "RAW";
1110 variant "FIELDLENGTH(8)"};
1112 const RAW_PDU i := '1234'H
1113 const octetstring o := '21430000'O
1117 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1118 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1120 if ((enc_RAW_PDU(i) == o)and((dec_RAW_PDU(o) == i & '0000'H ))) {setverdict(pass);}
1121 else {setverdict(fail);}
1125 Overall verdict: pass
1131 .*---------------------------------------------------------------------*
1132 :h3. FIELDLENGTH(2) for hexstring longer
1133 .*---------------------------------------------------------------------*
1136 <TC- FIELDLENGTH(2) for hexstring longer>
1140 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1141 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1143 type hexstring RAW_PDU
1145 variant "FIELDLENGTH(2)"};
1147 const RAW_PDU i := '1234'H
1148 const octetstring o := '1234'O
1152 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1153 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1155 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1156 else {setverdict(fail);}
1160 Overall verdict: error
1166 .*---------------------------------------------------------------------*
1167 :h3. Default FIELDLENGTH for hexstring
1168 .*---------------------------------------------------------------------*
1171 <TC- Default FIELDLENGTH for hexstring>
1175 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1176 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1178 type hexstring RAW_PDU
1179 with { encode "RAW";
1182 const RAW_PDU i := '12345670'H
1183 const octetstring o := '21436507'O
1187 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1188 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1190 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1191 else {setverdict(fail);}
1195 Overall verdict: pass
1201 .*---------------------------------------------------------------------*
1202 :h3. FIELDLENGTH(0) for hexstring
1203 .*---------------------------------------------------------------------*
1206 <TC- FIELDLENGTH(0) for hexstring>
1210 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1211 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1213 type hexstring RAW_PDU
1214 with { encode "RAW";
1215 variant "FIELDLENGTH(0)"};
1217 const RAW_PDU i := '123456'H
1218 const octetstring o := '214365'O
1222 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1223 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1225 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1226 else {setverdict(fail);}
1230 Overall verdict: pass
1236 .*---------------------------------------------------------------------*
1237 :h3. FIELDLENGTH(12) for hexstring 2 hex long
1238 .*---------------------------------------------------------------------*
1241 <TC- FIELDLENGTH(12) for hexstring 2 hex long>
1245 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1246 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1248 type hexstring RAW_PDU
1249 with { encode "RAW";
1250 variant "FIELDLENGTH(12)"};
1252 const RAW_PDU i := '12'H
1253 const octetstring o := '210000000000'O
1257 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1258 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1260 if ((enc_RAW_PDU(i) == o)and((dec_RAW_PDU(o) == i & '0000000000'H ))) {setverdict(pass);}
1261 else {setverdict(fail);}
1265 Overall verdict: pass
1271 .*---------------------------------------------------------------------*
1272 :h3. FIELDLENGTH (4) for enumerated
1273 .*---------------------------------------------------------------------*
1276 <TC- FIELDLENGTH (4) for enumerated>
1280 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1281 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1283 type enumerated RAW_PDU
1284 { zero, first, second, third, fourth, fifth, sixth , seventh, eight, nineth,
1286 with { variant "FIELDLENGTH(4)" ;
1289 const RAW_PDU i := first
1290 const octetstring o := '01'O
1294 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1295 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1297 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
1298 else {setverdict(fail);}
1302 Overall verdict: pass
1308 .*---------------------------------------------------------------------*
1309 :h3. FIELDLENGTH(32) for enumerated
1310 .*---------------------------------------------------------------------*
1313 <TC- FIELDLENGTH(32) for enumerated>
1317 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1318 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1320 type enumerated RAW_PDU
1321 { zero, first, second, third, fourth, fifth, sixth , seventh, eight, nineth,
1323 with { variant "FIELDLENGTH(32)"
1326 const RAW_PDU i := first
1327 const octetstring o := '01000000'O
1331 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1332 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1334 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
1335 else {setverdict(fail);}
1339 Overall verdict: pass
1345 .*---------------------------------------------------------------------*
1346 :h3. Default FIELDLENGTH for enumerated
1347 .*---------------------------------------------------------------------*
1350 <TC- Default FIELDLENGTH for enumerated>
1354 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1355 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1357 type enumerated RAW_PDU
1358 { zero, first, second, third, fourth, fifth, sixth , seventh, eight, nineth,
1363 const RAW_PDU i := tenth
1364 const octetstring o := '0A'O
1368 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1369 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1371 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
1372 else {setverdict(fail);}
1376 Overall verdict: pass
1382 .*---------------------------------------------------------------------*
1383 :h3. FIELDLENGTH with length restriction - bitstring
1384 .*---------------------------------------------------------------------*
1387 <TC- FIELDLENGTH with length restriction bitstring>
1391 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1392 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1395 type bitstring RAW_PDU length (4);
1397 const octetstring o := '0F'O
1398 const RAW_PDU i := '1111'B
1403 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1404 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1406 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
1407 else {setverdict(fail);}
1411 Overall verdict: pass
1417 .*---------------------------------------------------------------------*
1418 :h3. FIELDLENGTH with length restriction - hexstring
1419 .*---------------------------------------------------------------------*
1422 <TC- FIELDLENGTH with length restriction hexstring>
1426 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1427 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1430 type hexstring RAW_PDU length (0);
1432 const octetstring o := ''O
1433 const RAW_PDU i := ''H
1438 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1439 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1441 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
1442 else {setverdict(fail);}
1446 Overall verdict: pass
1452 .*---------------------------------------------------------------------*
1453 :h3. FIELDLENGTH with length restriction - octetstring
1454 .*---------------------------------------------------------------------*
1457 <TC- FIELDLENGTH with length restriction hexstring>
1461 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1462 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1465 type octetstring RAW_PDU length (2 .. 2);
1467 const octetstring o := '1122'O
1468 const RAW_PDU i := '1122'O
1473 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1474 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1476 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
1477 else {setverdict(fail);}
1481 Overall verdict: pass
1487 .*---------------------------------------------------------------------*
1488 :h3. FIELDLENGTH with length restriction - record
1489 .*---------------------------------------------------------------------*
1492 <TC- FIELDLENGTH with length restriction record>
1496 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1497 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1501 type bitstring btype length (4)
1502 type hexstring htype length (5)
1503 type octetstring otype length (2 .. 2)
1505 type record RAW_PDU {btype b, htype h, otype o}
1506 with {encode "RAW"; variant ""};
1508 const octetstring o := '1932541122'O
1509 const RAW_PDU i := {'1001'B,'12345'H, '1122'O}
1513 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1514 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1516 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
1517 else {setverdict(fail);}
1521 Overall verdict: pass
1527 .*---------------------------------------------------------------------*
1528 :h3. FIELDLENGTH with length restriction - record of
1529 .*---------------------------------------------------------------------*
1532 <TC- FIELDLENGTH with length restriction record of>
1536 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1537 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1540 type bitstring btype length (12 .. 12)
1542 type record length (2 .. 2) of btype RAW_PDU
1543 with {encode "RAW"; variant ""};
1545 const RAW_PDU i := {'000011111111'B, '111100001111'B}
1546 const octetstring o := 'FFF0F0'O
1550 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1551 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1553 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
1554 else {setverdict(fail);}
1558 Overall verdict: pass
1564 .*---------------------------------------------------------------------*
1565 :h3. FIELDLENGTH with length restriction - set
1566 .*---------------------------------------------------------------------*
1569 <TC- FIELDLENGTH with length restriction set>
1573 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1574 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1578 type bitstring btype length (1)
1579 type hexstring htype length (4)
1580 type octetstring otype length (2 .. 2)
1582 type set RAW_PDU {htype h, otype o, btype b}
1583 with {encode "RAW"; variant ""};
1585 const octetstring o := '2143112201'O
1586 const RAW_PDU i := {h := '1234'H, o := '1122'O, b := '1'B}
1590 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1591 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1593 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
1594 else {setverdict(fail);}
1598 Overall verdict: pass
1604 .*---------------------------------------------------------------------*
1605 :h3. FIELDLENGTH with length restriction - set of
1606 .*---------------------------------------------------------------------*
1609 <TC- FIELDLENGTH with length restriction set of>
1613 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1614 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1617 type bitstring btype length (12 .. 12)
1619 type set length (2 .. 2) of btype RAW_PDU
1620 with {encode "RAW"; variant ""};
1622 const RAW_PDU i := {'000011111111'B, '111100001111'B}
1623 const octetstring o := 'FFF0F0'O
1627 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1628 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1630 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
1631 else {setverdict(fail);}
1635 Overall verdict: pass
1641 .*---------------------------------------------------------------------*
1642 :h3. FIELDLENGTH with length restriction and ALIGN - bitstring
1643 .*---------------------------------------------------------------------*
1646 <TC- FIELDLENGTH with length restriction and ALIGN - bitstring>
1650 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1651 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1654 type bitstring RAW_PDU length (9 .. 9)
1655 with {encode "RAW"; variant "ALIGN(left)"}
1658 const RAW_PDU i := '111100001'B
1659 const octetstring o := 'E101'O
1663 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1664 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1666 if ((dec_RAW_PDU(o) == i )) {setverdict(pass);} else {setverdict(fail);}
1671 Overall verdict: pass
1677 .*---------------------------------------------------------------------*
1678 :h3. FIELDLENGTH with length restriction and ALIGN - hexstring
1679 .*---------------------------------------------------------------------*
1682 <TC- FIELDLENGTH with length restriction and ALIGN - hexstring>
1686 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1687 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1690 type hexstring RAW_PDU length (10 .. 10)
1691 with {encode "RAW"; variant "ALIGN(right), BITORDERINOCTET(lsb)"}
1694 const RAW_PDU i := '0000012345'H
1695 const octetstring o := '0000103254000000'O
1699 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1700 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1702 if ((dec_RAW_PDU(o) == i )) {setverdict(pass);} else {setverdict(fail);}
1707 Overall verdict: pass
1714 .*---------------------------------------------------------------------*
1715 :h3. FIELDLENGTH with length restriction and ALIGN - octetstring
1716 .*---------------------------------------------------------------------*
1719 <TC- FIELDLENGTH with length restriction and ALIGN - octetstring>
1723 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1724 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1727 type octetstring RAW_PDU length (8 .. 8)
1728 with {encode "RAW"; variant "ALIGN(left)"}
1731 const RAW_PDU i := '0102030400000000'O
1732 const octetstring o := '010203040000000000000000000000'O
1736 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1737 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1739 if ((dec_RAW_PDU(o) == i )) {setverdict(pass);} else {setverdict(fail);}
1743 Overall verdict: pass
1749 .*---------------------------------------------------------------------*
1750 :h2.Testing BYTEORDER Attribute
1751 .*---------------------------------------------------------------------*
1753 .*---------------------------------------------------------------------*
1754 :h3. BYTEORDER(first) for integer 0
1755 .*---------------------------------------------------------------------*
1758 <TC- BYTEORDER(first) for integer 0>
1762 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1763 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1765 type integer RAW_PDU
1766 with { encode "RAW"; variant "BYTEORDER (first)" };
1768 const RAW_PDU i := 0
1769 const octetstring o := '00'O
1773 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1774 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1776 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1777 else {setverdict(fail);}
1781 Overall verdict: pass
1787 .*---------------------------------------------------------------------*
1788 :h3. BYTEORDER(first) for integer
1789 .*---------------------------------------------------------------------*
1792 <TC- BYTEORDER(first) for integer>
1796 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1797 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1799 type integer RAW_PDU
1800 with { encode "RAW"; variant "BYTEORDER (first)" };
1802 const RAW_PDU i := 1
1803 const octetstring o := '01'O
1807 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1808 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1810 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1811 else {setverdict(fail);}
1815 Overall verdict: pass
1821 .*---------------------------------------------------------------------*
1822 :h3. BYTEORDER(first) for integer
1823 .*---------------------------------------------------------------------*
1826 <TC- BYTEORDER(first) for integer>
1830 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1831 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1833 type integer RAW_PDU
1834 with { encode "RAW"; variant "BYTEORDER (first)" };
1836 const RAW_PDU i := 18
1837 const octetstring o := '12'O
1841 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1842 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1844 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1845 else {setverdict(fail);}
1849 Overall verdict: pass
1855 .*---------------------------------------------------------------------*
1856 :h3. BYTEORDER(first) and FIELDLENGTH (8) for integer
1857 .*---------------------------------------------------------------------*
1860 <TC- BYTEORDER(first) and FIELDLENGTH (8) for integer>
1864 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1865 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1867 type integer RAW_PDU
1868 with { encode "RAW" ;
1869 variant "FIELDLENGTH (8)" ;
1870 variant "BYTEORDER (first)" };
1872 const RAW_PDU i := 15
1873 const octetstring o := '0F'O
1877 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1878 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1880 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1881 else {setverdict(fail);}
1885 Overall verdict: pass
1891 .*---------------------------------------------------------------------*
1892 :h3. BYTEORDER(first) and FIELDLENGTH(16)for integer
1893 .*---------------------------------------------------------------------*
1896 <TC- BYTEORDER(first) and FIELDLENGTH(16)for integer>
1900 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1901 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1903 type integer RAW_PDU
1904 with { encode "RAW" ;
1905 variant "FIELDLENGTH(16)" ;
1906 variant "BYTEORDER (first)" };
1908 const RAW_PDU i := 15
1909 const octetstring o := '0F00'O
1913 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1914 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1916 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1917 else {setverdict(fail);}
1921 Overall verdict: pass
1927 .*---------------------------------------------------------------------*
1928 :h3. BYTEORDER(last) for integer 0
1929 .*---------------------------------------------------------------------*
1932 <TC- BYTEORDER(last) for integer 0>
1936 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1937 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1939 type integer RAW_PDU
1940 with { encode "RAW"; variant "BYTEORDER (last)" };
1942 const RAW_PDU i := 0
1943 const octetstring o := '00'O
1947 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1948 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1950 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1951 else {setverdict(fail);}
1955 Overall verdict: pass
1961 .*---------------------------------------------------------------------*
1962 :h3. BYTEORDER(last) for integer
1963 .*---------------------------------------------------------------------*
1966 <TC- BYTEORDER(last) for integer>
1970 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
1971 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
1973 type integer RAW_PDU
1974 with { encode "RAW"; variant "BYTEORDER (last)" };
1976 const RAW_PDU i := 1
1977 const octetstring o := '01'O
1981 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
1982 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
1984 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
1985 else {setverdict(fail);}
1989 Overall verdict: pass
1995 .*---------------------------------------------------------------------*
1996 :h3. BYTEORDER (last) for integer
1997 .*---------------------------------------------------------------------*
2000 <TC- BYTEORDER (last) for integer>
2004 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2005 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2007 type integer RAW_PDU
2008 with { encode "RAW"; variant "BYTEORDER (last)" };
2010 const RAW_PDU i := 18
2011 const octetstring o := '12'O
2015 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2016 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2018 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2019 else {setverdict(fail);}
2023 Overall verdict: pass
2029 .*---------------------------------------------------------------------*
2030 :h3. BYTEORDER(last) and FIELDLENGTH (8) for integer
2031 .*---------------------------------------------------------------------*
2034 <TC- BYTEORDER(last) and FIELDLENGTH (8) for integer>
2038 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2039 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2041 type integer RAW_PDU
2042 with { encode "RAW";
2043 variant "FIELDLENGTH (8)" ;
2044 variant "BYTEORDER (last)" };
2046 const RAW_PDU i := 15
2047 const octetstring o := '0F'O
2051 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2052 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2054 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2055 else {setverdict(fail);}
2059 Overall verdict: pass
2065 .*---------------------------------------------------------------------*
2066 :h3. BYTEORDER(last) and FIELDLENGTH(16) for integer
2067 .*---------------------------------------------------------------------*
2070 <TC- BYTEORDER(last) and FIELDLENGTH(16) for integer>
2074 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2075 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2077 type integer RAW_PDU
2078 with { encode "RAW";
2079 variant "FIELDLENGTH(16)" ;
2080 variant "BYTEORDER (last)" };
2082 const RAW_PDU i := 15
2083 const octetstring o := '000F'O
2087 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2088 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2090 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2091 else {setverdict(fail);}
2095 Overall verdict: pass
2101 .*---------------------------------------------------------------------*
2102 :h3. BYTEORDER(first) for bitstring
2103 .*---------------------------------------------------------------------*
2106 <TC- BYTEORDER(first) for bitstring>
2110 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2111 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2113 type bitstring RAW_PDU
2114 with { encode "RAW";
2115 variant "FIELDLENGTH(16)" ;
2116 variant "BYTEORDER (first)" };
2118 const RAW_PDU i := '0000000100000010'B
2119 const octetstring o := '0201'O
2123 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2124 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2126 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2127 else {setverdict(fail);}
2131 Overall verdict: pass
2137 .*---------------------------------------------------------------------*
2138 :h3. BYTEORDER(last) for bitstring
2139 .*---------------------------------------------------------------------*
2142 <TC- BYTEORDER(last) for bitstring>
2146 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2147 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2149 type bitstring RAW_PDU
2150 with { encode "RAW";
2151 variant "FIELDLENGTH(16)" ;
2152 variant "BYTEORDER (last)" };
2154 const RAW_PDU i := '0000000100000010'B
2155 const octetstring o := '0102'O
2159 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2160 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2162 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2163 else {setverdict(fail);}
2167 Overall verdict: pass
2173 .*---------------------------------------------------------------------*
2174 :h3. BYTEORDER(first) for octetstring
2175 .*---------------------------------------------------------------------*
2178 <TC- BYTEORDER(first) for octetstring>
2182 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2183 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2185 type octetstring RAW_PDU
2186 with { encode "RAW";
2187 variant "BYTEORDER (first)"};
2189 const RAW_PDU i := '1234'O
2190 const octetstring o := '1234'O
2194 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2195 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2197 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2198 else {setverdict(fail);}
2202 Overall verdict: pass
2208 .*---------------------------------------------------------------------*
2209 :h3. BYTEORDER(last) for octetstring
2210 .*---------------------------------------------------------------------*
2213 <TC- BYTEORDER(last) for octetstring>
2217 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2218 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2220 type octetstring RAW_PDU
2221 with { encode "RAW";
2222 variant "BYTEORDER (last)"};
2224 const RAW_PDU i := '1234'O
2225 const octetstring o := '3412'O
2229 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2230 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2232 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2233 else {setverdict(fail);}
2237 Overall verdict: pass
2244 .*---------------------------------------------------------------------*
2245 :h3. BYTEORDER(first) for enumerated
2246 .*---------------------------------------------------------------------*
2249 <TC- BYTEORDER(first) for enumerated>
2253 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2254 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2256 type enumerated RAW_PDU
2257 { zero, first, second, third, fourth, fifth, sixth , seventh, eight, nineth,
2259 with { encode "RAW";
2260 variant "FIELDLENGTH(16)" ;
2261 variant "BYTEORDER (first) "};
2263 const RAW_PDU i := first
2264 const octetstring o := '0100'O
2268 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2269 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2271 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
2272 else {setverdict(fail);}
2276 Overall verdict: pass
2282 .*---------------------------------------------------------------------*
2283 :h3. BYTEORDER(last) for enumerated
2284 .*---------------------------------------------------------------------*
2287 <TC- BYTEORDER(last) for enumerated>
2291 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2292 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2294 type enumerated RAW_PDU
2295 { zero, first, second, third, fourth, fifth, sixth , seventh, eight, nineth,
2297 with { encode "RAW";
2298 variant "FIELDLENGTH(16)" ;
2299 variant "BYTEORDER (last) "};
2301 const RAW_PDU i := first
2302 const octetstring o := '0001'O
2306 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2307 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2309 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
2310 else {setverdict(fail);}
2314 Overall verdict: pass
2320 .*---------------------------------------------------------------------*
2321 :h3. BYTEORDER(first) for hexstring
2322 .*---------------------------------------------------------------------*
2325 <TC- BYTEORDER(first) for hexstring>
2329 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2330 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2332 type hexstring RAW_PDU
2333 with { encode "RAW"; variant "BYTEORDER(first)"};
2335 const RAW_PDU i := '1234567890'H
2336 const octetstring o := '2143658709'O
2340 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2341 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2343 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2344 else {setverdict(fail);}
2348 Overall verdict: pass
2354 .*---------------------------------------------------------------------*
2355 :h3. BYTEORDER(last) for hexstring
2356 .*---------------------------------------------------------------------*
2359 <TC- BYTEORDER(last) for hexstring>
2363 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2364 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2366 type hexstring RAW_PDU
2367 with { encode "RAW"; variant "BYTEORDER(last)"};
2369 const RAW_PDU i := '1234567890'H
2370 const octetstring o := '0987654321'O
2374 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2375 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2377 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2378 else {setverdict(fail);}
2382 Overall verdict: pass
2388 .*---------------------------------------------------------------------*
2389 :h2.Testing BITORDERINFIELD Attribute
2390 .*---------------------------------------------------------------------*
2391 .*---------------------------------------------------------------------*
2392 :h3. BITORDERINFIELD(lsb) for integer
2393 .*---------------------------------------------------------------------*
2396 <TC- BITORDERINFIELD(lsb) for integer>
2400 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2401 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2403 type integer RAW_PDU
2404 with { encode "RAW";
2405 variant "FIELDLENGTH(8)" ;
2406 variant "BITORDERINFIELD(lsb)"};
2408 const RAW_PDU i := 15
2409 const octetstring o := '0F'O
2413 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2414 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2416 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2417 else {setverdict(fail);}
2421 Overall verdict: pass
2427 .*---------------------------------------------------------------------*
2428 :h3. BITORDERINFIELD(msb) for integer
2429 .*---------------------------------------------------------------------*
2432 <TC- BITORDERINFIELD(msb) for integer>
2436 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2437 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2439 type integer RAW_PDU
2440 with { encode "RAW";
2441 variant "FIELDLENGTH(8)" ;
2442 variant "BITORDERINFIELD(msb)"};
2444 const RAW_PDU i := 15
2445 const octetstring o := 'F0'O
2449 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2450 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2452 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2453 else {setverdict(fail);}
2457 Overall verdict: pass
2463 .*---------------------------------------------------------------------*
2464 :h3. BITORDERINFIELD(lsb) for integer
2465 .*---------------------------------------------------------------------*
2468 <TC- BITORDERINFIELD(lsb) for integer>
2472 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2473 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2475 type integer RAW_PDU
2476 with { encode "RAW";
2477 variant "FIELDLENGTH(16)" ;
2478 variant "BITORDERINFIELD(lsb)"};
2480 const RAW_PDU i := 4660
2481 const octetstring o := '3412'O
2485 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2486 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2488 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2489 else {setverdict(fail);}
2493 Overall verdict: pass
2499 .*---------------------------------------------------------------------*
2500 :h3. BITORDERINFIELD(msb) for integer
2501 .*---------------------------------------------------------------------*
2504 <TC- BITORDERINFIELD(msb) for integer>
2508 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2509 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2511 type integer RAW_PDU
2512 with { encode "RAW";
2513 variant "FIELDLENGTH(16)" ;
2514 variant "BITORDERINFIELD(msb)"};
2516 const RAW_PDU i := 4660
2517 const octetstring o := '482C'O
2521 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2522 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2524 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2525 else {setverdict(fail);}
2529 Overall verdict: pass
2535 .*---------------------------------------------------------------------*
2536 :h3. BITORDERINFIELD(lsb) for octetstring
2537 .*---------------------------------------------------------------------*
2540 <TC- BITORDERINFIELD(lsb) for octetstring>
2544 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2545 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2547 type octetstring RAW_PDU
2548 with { encode "RAW";
2549 variant "FIELDLENGTH(1)" ;
2550 variant "BITORDERINFIELD(lsb)"};
2552 const RAW_PDU i := '0F'O
2553 const octetstring o := '0F'O
2557 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2558 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2560 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2561 else {setverdict(fail);}
2565 Overall verdict: pass
2571 .*---------------------------------------------------------------------*
2572 :h3. BITORDERINFIELD(msb) for octetstring
2573 .*---------------------------------------------------------------------*
2576 <TC- BITORDERINFIELD(msb) for octetstring>
2580 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2581 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2583 type octetstring RAW_PDU
2584 with { encode "RAW";
2585 variant "FIELDLENGTH(1)" ;
2586 variant "BITORDERINFIELD(msb)"};
2588 const RAW_PDU i := '0F'O
2589 const octetstring o := 'F0'O
2593 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2594 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2596 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2597 else {setverdict(fail);}
2601 Overall verdict: pass
2607 .*---------------------------------------------------------------------*
2608 :h3. BITORDERINFIELD(lsb) for octetstring
2609 .*---------------------------------------------------------------------*
2612 <TC- BITORDERINFIELD(lsb) for octetstring>
2616 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2617 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2619 type octetstring RAW_PDU
2620 with { encode "RAW";
2621 variant "FIELDLENGTH(2)" ;
2622 variant "BITORDERINFIELD(lsb)"};
2624 const RAW_PDU i := '1234'O
2625 const octetstring o := '1234'O
2629 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2630 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2632 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2633 else {setverdict(fail);}
2637 Overall verdict: pass
2643 .*---------------------------------------------------------------------*
2644 :h3. BITORDERINFIELD(msb) for octetstring
2645 .*---------------------------------------------------------------------*
2648 <TC- BITORDERINFIELD(msb) for octetstring>
2652 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2653 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2655 type octetstring RAW_PDU
2656 with { encode "RAW";
2657 variant "FIELDLENGTH(2)" ;
2658 variant "BITORDERINFIELD(msb)"};
2660 const RAW_PDU i := '1234'O
2661 const octetstring o := '2C48'O
2665 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2666 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2668 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2669 else {setverdict(fail);}
2673 Overall verdict: pass
2679 .*---------------------------------------------------------------------*
2680 :h3. BITORDERINFIELD(lsb) for bitstring
2681 .*---------------------------------------------------------------------*
2684 <TC- BITORDERINFIELD(lsb) for bitstring>
2688 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2689 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2691 type bitstring RAW_PDU
2692 with { encode "RAW";
2693 variant "FIELDLENGTH(8)" ;
2694 variant "BITORDERINFIELD(lsb)"};
2696 const RAW_PDU i := '00000011'B
2697 const octetstring o := '03'O
2701 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2702 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2704 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2705 else {setverdict(fail);}
2709 Overall verdict: pass
2715 .*---------------------------------------------------------------------*
2716 :h3. BITORDERINFIELD(msb) for bitstring
2717 .*---------------------------------------------------------------------*
2720 <TC- BITORDERINFIELD(msb) for bitstring>
2724 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2725 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2727 type bitstring RAW_PDU
2728 with { encode "RAW";
2729 variant "FIELDLENGTH(8)" ;
2730 variant "BITORDERINFIELD(msb)"};
2732 const RAW_PDU i := '00000011'B
2733 const octetstring o := 'C0'O
2737 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2738 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2740 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2741 else {setverdict(fail);}
2745 Overall verdict: pass
2751 .*---------------------------------------------------------------------*
2752 :h3. BITORDERINFIELD(lsb) for bitstring
2753 .*---------------------------------------------------------------------*
2756 <TC- BITORDERINFIELD(lsb) for bitstring>
2760 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2761 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2763 type bitstring RAW_PDU
2764 with { encode "RAW";
2765 variant "FIELDLENGTH(16)" ;
2766 variant "BITORDERINFIELD(lsb)"};
2768 const RAW_PDU i := '0001111100110001'B
2769 const octetstring o := '311F'O
2773 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2774 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2776 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2777 else {setverdict(fail);}
2781 Overall verdict: pass
2787 .*---------------------------------------------------------------------*
2788 :h3. BITORDERINFIELD(msb) for bitstring
2789 .*---------------------------------------------------------------------*
2792 <TC- BITORDERINFIELD(msb) for bitstring>
2796 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2797 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2799 type bitstring RAW_PDU
2800 with { encode "RAW";
2801 variant "FIELDLENGTH(16)" ;
2802 variant "BITORDERINFIELD(msb)"};
2804 const RAW_PDU i := '0001111100110001'B
2805 const octetstring o := 'F88C'O
2809 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2810 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2812 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2813 else {setverdict(fail);}
2817 Overall verdict: pass
2823 .*---------------------------------------------------------------------*
2824 :h3. BITORDERINFIELD(lsb) for enumerated
2825 .*---------------------------------------------------------------------*
2828 <TC- BITORDERINFIELD(lsb) for enumerated>
2832 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2833 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2835 type enumerated RAW_PDU
2836 { zero, first, second, third, fourth, fifth, sixth , seventh, eight, nineth,
2838 with { encode "RAW";
2839 variant "FIELDLENGTH(4)" ;
2840 variant "BITORDERINFIELD (lsb) "};
2842 const RAW_PDU i := first
2843 const octetstring o := '01'O
2847 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2848 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2850 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
2851 else {setverdict(fail);}
2855 Overall verdict: pass
2861 .*---------------------------------------------------------------------*
2862 :h3. BITORDERINFIELD(msb) for enumerated
2863 .*---------------------------------------------------------------------*
2866 <TC- BITORDERINFIELD(msb) for enumerated>
2870 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2871 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2873 type enumerated RAW_PDU
2874 { zero, first, second, third, fourth, fifth, sixth , seventh, eight, nineth,
2876 with { encode "RAW";
2877 variant "FIELDLENGTH(8)" ;
2878 variant "BITORDERINFIELD (msb) "};
2880 const RAW_PDU i := first
2881 const octetstring o := '80'O
2885 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2886 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2888 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
2889 else {setverdict(fail);}
2893 Overall verdict: pass
2899 .*---------------------------------------------------------------------*
2900 :h3. BITORDERINFIELD(lsb) for hexstring
2901 .*---------------------------------------------------------------------*
2904 <TC- BITORDERINFIELD(lsb) for hexstring>
2908 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2909 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2911 type hexstring RAW_PDU
2912 with { encode "RAW"; variant "BITORDERINFIELD(lsb)"};
2914 const RAW_PDU i := '1234'H
2915 const octetstring o := '2143'O
2919 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2920 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2922 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2923 else {setverdict(fail);}
2927 Overall verdict: pass
2933 .*---------------------------------------------------------------------*
2934 :h3. BITORDERINFIELD(msb) for hexstring
2935 .*---------------------------------------------------------------------*
2938 <TC- BITORDERINFIELD(msb) for hexstring>
2942 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2943 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2945 type hexstring RAW_PDU
2946 with { encode "RAW"; variant "BITORDERINFIELD(msb)"};
2948 const RAW_PDU i := '1234'H
2949 const octetstring o := 'C284'O
2953 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2954 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2956 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2957 else {setverdict(fail);}
2961 Overall verdict: pass
2967 .*---------------------------------------------------------------------*
2968 :h2.Testing BITORDERINOCTET Attribute
2969 .*---------------------------------------------------------------------*
2971 .*---------------------------------------------------------------------*
2972 :h3. BITORDERINOCTET(lsb) for integer
2973 .*---------------------------------------------------------------------*
2976 <TC- BITORDERINOCTET(lsb) for integer>
2980 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
2981 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
2983 type integer RAW_PDU
2984 with { encode "RAW";
2985 variant "FIELDLENGTH(8)" ;
2986 variant "BITORDERINOCTET(lsb)"};
2988 const RAW_PDU i := 15
2989 const octetstring o := '0F'O
2993 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
2994 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
2996 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
2997 else {setverdict(fail);}
3001 Overall verdict: pass
3007 .*---------------------------------------------------------------------*
3008 :h3. BITORDERINOCTET (msb) for integer
3009 .*---------------------------------------------------------------------*
3012 <TC- BITORDERINOCTET (msb) for integer>
3016 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3017 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3019 type integer RAW_PDU
3020 with { encode "RAW";
3021 variant "FIELDLENGTH(8)" ;
3022 variant "BITORDERINOCTET(msb)"};
3024 const RAW_PDU i := 15
3025 const octetstring o := 'F0'O
3029 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3030 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3032 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3033 else {setverdict(fail);}
3037 Overall verdict: pass
3043 .*---------------------------------------------------------------------*
3044 :h3. BITORDERINOCTET(lsb) for integer
3045 .*---------------------------------------------------------------------*
3048 <TC- BITORDERINOCTET(lsb) for integer>
3052 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3053 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3055 type integer RAW_PDU
3056 with { encode "RAW";
3057 variant "FIELDLENGTH(16)" ;
3058 variant "BITORDERINOCTET(lsb)"};
3060 const RAW_PDU i := 4660
3061 const octetstring o := '3412'O
3065 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3066 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3068 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3069 else {setverdict(fail);}
3073 Overall verdict: pass
3079 .*---------------------------------------------------------------------*
3080 :h3. BITORDERINOCTET(msb) for integer
3081 .*---------------------------------------------------------------------*
3084 <TC- BITORDERINOCTET(msb) for integer>
3088 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3089 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3091 type integer RAW_PDU
3092 with { encode "RAW";
3093 variant "FIELDLENGTH(16)" ;
3094 variant "BITORDERINOCTET(msb)"
3097 const RAW_PDU i := 4660
3098 const octetstring o := '2C48'O
3102 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3103 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3105 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3106 else {setverdict(fail);}
3110 Overall verdict: pass
3116 .*---------------------------------------------------------------------*
3117 :h3. BITORDERINOCTET(lsb) for octetstring
3118 .*---------------------------------------------------------------------*
3121 <TC- BITORDERINOCTET(lsb) for octetstring>
3125 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3126 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3128 type octetstring RAW_PDU
3129 with { encode "RAW";
3130 variant "FIELDLENGTH(1)" ;
3131 variant "BITORDERINOCTET(lsb)"
3134 const RAW_PDU i := '0F'O
3135 const octetstring o := '0F'O
3139 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3140 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3142 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3143 else {setverdict(fail);}
3147 Overall verdict: pass
3153 .*---------------------------------------------------------------------*
3154 :h3. BITORDERINOCTET(msb) for octetstring
3155 .*---------------------------------------------------------------------*
3158 <TC- BITORDERINOCTET(msb) for octetstring>
3162 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3163 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3165 type octetstring RAW_PDU
3166 with { encode "RAW";
3167 variant "FIELDLENGTH(1)" ;
3168 variant "BITORDERINOCTET(msb)"
3171 const RAW_PDU i := '0F'O
3172 const octetstring o := 'F0'O
3176 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3177 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3179 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3180 else {setverdict(fail);}
3184 Overall verdict: pass
3190 .*---------------------------------------------------------------------*
3191 :h3. BITORDERINOCTET(lsb) for octetstring
3192 .*---------------------------------------------------------------------*
3195 <TC- BITORDERINOCTET(lsb) for octetstring>
3199 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3200 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3202 type octetstring RAW_PDU
3204 variant "FIELDLENGTH(2)" ;
3205 variant "BITORDERINOCTET(lsb)"
3208 const RAW_PDU i := '1234'O
3209 const octetstring o := '1234'O
3213 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3214 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3216 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3217 else {setverdict(fail);}
3221 Overall verdict: pass
3227 .*---------------------------------------------------------------------*
3228 :h3. BITORDERINOCTET(msb) for octetstring
3229 .*---------------------------------------------------------------------*
3232 <TC- BITORDERINOCTET(msb) for octetstring>
3236 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3237 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3239 type octetstring RAW_PDU
3240 with { encode "RAW";
3241 variant "FIELDLENGTH(2)" ;
3242 variant "BITORDERINOCTET(msb)"
3245 const RAW_PDU i := '1234'O
3246 const octetstring o := '482C'O
3250 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3251 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3253 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3254 else {setverdict(fail);}
3258 Overall verdict: pass
3264 .*---------------------------------------------------------------------*
3265 :h3. BITORDERINOCTET(lsb) for bitstring
3266 .*---------------------------------------------------------------------*
3269 <TC- BITORDERINOCTET(lsb) for bitstring>
3273 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3274 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3276 type bitstring RAW_PDU
3277 with { encode "RAW";
3278 variant "FIELDLENGTH(8)" ;
3279 variant "BITORDERINOCTET(lsb)"
3282 const RAW_PDU i := '00000011'B
3283 const octetstring o := '03'O
3287 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3288 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3290 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3291 else {setverdict(fail);}
3295 Overall verdict: pass
3301 .*---------------------------------------------------------------------*
3302 :h3. BITORDERINOCTET(msb) for bitstring
3303 .*---------------------------------------------------------------------*
3306 <TC- BITORDERINOCTET(msb) for bitstring>
3310 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3311 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3313 type bitstring RAW_PDU
3314 with { encode "RAW";
3315 variant "FIELDLENGTH(8)" ;
3316 variant "BITORDERINOCTET(msb)"
3319 const RAW_PDU i := '00000011'B
3320 const octetstring o := 'C0'O
3324 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3325 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3327 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3328 else {setverdict(fail);}
3332 Overall verdict: pass
3338 .*---------------------------------------------------------------------*
3339 :h3. BITORDERINOCTET(lsb) for bitstring
3340 .*---------------------------------------------------------------------*
3343 <TC- BITORDERINOCTET(lsb) for bitstring>
3347 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3348 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3350 type bitstring RAW_PDU
3351 with { encode "RAW";
3352 variant "FIELDLENGTH(16)" ;
3353 variant "BITORDERINOCTET(lsb)"
3356 const RAW_PDU i := '0001111100110001'B
3357 const octetstring o := '311F'O
3361 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3362 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3364 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3365 else {setverdict(fail);}
3369 Overall verdict: pass
3375 .*---------------------------------------------------------------------*
3376 :h3. BITORDERINOCTET(msb) for bitstring
3377 .*---------------------------------------------------------------------*
3380 <TC- BITORDERINOCTET(msb) for bitstring>
3384 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3385 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3387 type bitstring RAW_PDU
3388 with { encode "RAW";
3389 variant "FIELDLENGTH(16)" ;
3390 variant "BITORDERINOCTET(msb)"
3393 const RAW_PDU i := '0001111100110001'B
3394 const octetstring o := '8CF8'O
3398 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3399 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3401 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3402 else {setverdict(fail);}
3406 Overall verdict: pass
3412 .*---------------------------------------------------------------------*
3413 :h3. BITORDERINOCTET(lsb) for enumerated
3414 .*---------------------------------------------------------------------*
3417 <TC- BITORDERINOCTET(lsb) for enumerated>
3421 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3422 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3424 type enumerated RAW_PDU
3425 { zero, first, second, third, fourth, fifth, sixth , seventh, eight, nineth,
3427 with { encode "RAW";
3428 variant "FIELDLENGTH(4)" ;
3429 variant "BITORDERINOCTET (lsb) "
3432 const RAW_PDU i := first
3433 const octetstring o := '01'O
3437 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3438 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3440 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
3441 else {setverdict(fail);}
3445 Overall verdict: pass
3451 .*---------------------------------------------------------------------*
3452 :h3. BITORDERINOCTET(msb) for enumerated
3453 .*---------------------------------------------------------------------*
3456 <TC- BITORDERINOCTET(msb) for enumerated>
3460 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3461 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3463 type enumerated RAW_PDU
3464 { zero, first, second, third, fourth, fifth, sixth , seventh, eight, nineth,
3466 with { encode "RAW";
3467 variant "FIELDLENGTH(8)" ;
3468 variant "BITORDERINOCTET (msb) "
3471 const RAW_PDU i := first
3472 const octetstring o := '80'O
3476 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3477 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3479 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i )) {setverdict(pass);}
3480 else {setverdict(fail);}
3484 Overall verdict: pass
3491 .*---------------------------------------------------------------------*
3492 :h3. BITORDERINOCTET(lsb) for hexstring
3493 .*---------------------------------------------------------------------*
3496 <TC- BITORDERINOCTET(lsb) for hexstring>
3500 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3501 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3503 type hexstring RAW_PDU
3504 with { encode "RAW"; variant "BITORDERINOCTET(lsb)"};
3506 const RAW_PDU i := '1234'H
3507 const octetstring o := '2143'O
3511 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3512 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3514 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3515 else {setverdict(fail);}
3519 Overall verdict: pass
3525 .*---------------------------------------------------------------------*
3526 :h3. BITORDERINOCTET(msb) for hexstring
3527 .*---------------------------------------------------------------------*
3530 <TC- BITORDERINOCTET(msb) for hexstring>
3534 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3535 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3537 type hexstring RAW_PDU
3538 with { encode "RAW"; variant "BITORDERINOCTET(msb)"};
3540 const RAW_PDU i := '1234'H
3541 const octetstring o := '84C2'O
3545 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3546 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3548 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3549 else {setverdict(fail);}
3553 Overall verdict: pass
3560 .*---------------------------------------------------------------------*
3561 :h2.Testing COMP Attribute
3562 .*---------------------------------------------------------------------*
3564 .*---------------------------------------------------------------------*
3565 :h3. COMP( nosign ) for positive integer
3566 .*---------------------------------------------------------------------*
3569 <TC- COMP( nosign ) for positive integer>
3573 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3574 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3576 type integer RAW_PDU
3577 with { encode "RAW";
3578 variant "FIELDLENGTH(8)" ;
3579 variant "COMP( nosign ) "
3582 const RAW_PDU i := 2
3583 const octetstring o := '02'O
3587 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3588 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3590 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3591 else {setverdict(fail);}
3595 Overall verdict: pass
3601 .*---------------------------------------------------------------------*
3602 :h3. COMP ( nosign ) for negative integer
3603 .*---------------------------------------------------------------------*
3606 <TC- COMP ( nosign ) for negative integer >
3610 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3611 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3613 type integer RAW_PDU
3614 with { encode "RAW";
3615 variant "FIELDLENGTH(8)" ;
3616 variant "COMP( nosign ) "
3619 const RAW_PDU i := -2
3620 const octetstring o := '02'O
3624 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3625 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3627 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3628 else {setverdict(fail);}
3632 Overall verdict: error
3638 .*---------------------------------------------------------------------*
3639 :h3. COMP( signbit ) for positive integer
3640 .*---------------------------------------------------------------------*
3643 <TC- COMP( signbit ) for positive integer>
3647 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3648 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3650 type integer RAW_PDU
3651 with { encode "RAW";
3652 variant "FIELDLENGTH(8)" ;
3653 variant "COMP( signbit ) "
3656 const RAW_PDU i := 2
3657 const octetstring o := '02'O
3661 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3662 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3664 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3665 else {setverdict(fail);}
3669 Overall verdict: pass
3675 .*---------------------------------------------------------------------*
3676 :h3. COMP( signbit ) for negative integer
3677 .*---------------------------------------------------------------------*
3680 <TC- COMP( signbit ) for negative integer>
3684 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3685 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3687 type integer RAW_PDU
3688 with { encode "RAW";
3689 variant "FIELDLENGTH(8)" ;
3690 variant "COMP( signbit ) "
3693 const RAW_PDU i := -2
3694 const octetstring o := '82'O
3698 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3699 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3701 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3702 else {setverdict(fail);}
3706 Overall verdict: pass
3712 .*---------------------------------------------------------------------*
3713 :h3. COMP( 2scompl ) for positive integer
3714 .*---------------------------------------------------------------------*
3717 <TC- COMP( 2scompl ) for positive integer>
3721 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3722 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3724 type integer RAW_PDU
3725 with { encode "RAW";
3726 variant "FIELDLENGTH(8)" ;
3727 variant "COMP( 2scompl ) "
3730 const RAW_PDU i := 2
3731 const octetstring o := '02'O
3735 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3736 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3738 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3739 else {setverdict(fail);}
3743 Overall verdict: pass
3749 .*---------------------------------------------------------------------*
3750 :h3. COMP( 2scompl ) for negative integer
3751 .*---------------------------------------------------------------------*
3754 <TC- COMP( 2scompl ) for negative integer>
3758 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3759 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3761 type integer RAW_PDU
3762 with { encode "RAW";
3763 variant "FIELDLENGTH(8)" ;
3764 variant "COMP( 2scompl ) "
3767 const RAW_PDU i := -2
3768 const octetstring o := 'FE'O
3772 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3773 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3775 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3776 else {setverdict(fail);}
3780 Overall verdict: pass
3786 .*---------------------------------------------------------------------*
3787 :h2.Testing PADDING Attribute
3788 .*---------------------------------------------------------------------*
3790 .*---------------------------------------------------------------------*
3791 :h3. PADDING for integer
3792 .*---------------------------------------------------------------------*
3795 <TC- PADDING for integer>
3799 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3800 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3809 with { variant (int3) "FIELDLENGTH (4)" ;
3810 variant (int1) "PADDING( yes ) " ;
3811 variant (int2) "FIELDLENGTH (4)" ;
3812 variant (int2) "PADDING( yes ) " ;
3813 variant (int3) "FIELDLENGTH (4)" ;
3814 variant (int3) "PADDING( no ) " ;
3815 variant (int4) "FIELDLENGTH (4)" ;
3816 variant (int4) "PADDING( no ) " ; }
3817 } with {encode "RAW" };
3828 const octetstring o := '010243'O
3832 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3833 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3835 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3836 else {setverdict(fail);}
3840 Overall verdict: pass
3846 .*---------------------------------------------------------------------*
3847 :h3. PADDING for bitstring
3848 .*---------------------------------------------------------------------*
3851 <TC- PADDING for bitstring>
3855 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3856 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3865 with { variant (bit1) "FIELDLENGTH(4)" ;
3866 variant (bit1) "PADDING( yes ) " ;
3867 variant (bit2) "FIELDLENGTH(4)" ;
3868 variant (bit2) "PADDING( yes ) " ;
3869 variant (bit3) "FIELDLENGTH(4)" ;
3870 variant (bit3) "PADDING( no ) " ;
3871 variant (bit4) "FIELDLENGTH(4)" ;
3872 variant (bit4) "PADDING( no ) " ;
3874 } with {encode "RAW"}
3878 i := { bit1 := '0001'B ,
3885 const octetstring o := '010243'O
3889 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3890 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3892 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3893 else {setverdict(fail);}
3897 Overall verdict: pass
3903 .*---------------------------------------------------------------------*
3904 :h3. PADDING for enumerated
3905 .*---------------------------------------------------------------------*
3908 <TC- PADDING for enumerated>
3912 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3913 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3917 type enumerated enumerated1
3918 { zero, first, second, third, fourth, fifth }
3920 type enumerated enumerated2
3921 { tenth, eleventh, twelfth, thirteenth, fourthteenth, fifteenth }
3923 type enumerated enumerated3
3924 { twenty, twentyfirst, twentysecond, twentythird, twentyfourth, twentyfifth }
3926 type enumerated enumerated4
3927 { thirty, thirtyfirst, thirtysecond, thirtythird, thirtyfourth, thirtyfifth }
3931 { enumerated1 enum1 ,
3935 with { variant (enum1) "FIELDLENGTH(4)" ;
3936 variant (enum1) "PADDING( yes ) " ;
3937 variant (enum2) "FIELDLENGTH(4)" ;
3938 variant (enum2) "PADDING( yes ) " ;
3939 variant (enum3) "FIELDLENGTH(4)" ;
3940 variant (enum3) "PADDING( no ) " ;
3941 variant (enum4) "FIELDLENGTH(4)" ;
3942 variant (enum4) "PADDING( no ) " ;
3944 } with {encode "RAW" };
3948 i := { enum1 := first ,
3950 enum3 := twentythird ,
3951 enum4 := thirtyfourth }
3958 const octetstring o := '010243'O
3962 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
3963 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
3965 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
3966 else {setverdict(fail);}
3970 Overall verdict: pass
3976 .*---------------------------------------------------------------------*
3977 :h3. PADDING for hexstring
3978 .*---------------------------------------------------------------------*
3981 <TC- PADDING for hexstring>
3985 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
3986 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
3995 with { encode "RAW";
3996 variant (hex1) "FIELDLENGTH(1)" ;
3997 variant (hex1) "PADDING( yes ) " ;
3998 variant (hex2) "FIELDLENGTH(1)" ;
3999 variant (hex2) "PADDING( yes ) " ;
4000 variant (hex3) "FIELDLENGTH(1)" ;
4001 variant (hex3) "PADDING( no ) " ;
4002 variant (hex4) "FIELDLENGTH(1)" ;
4003 variant (hex4) "PADDING( no ) " ;
4005 } with {encode "RAW" }
4009 i := { hex1 := '1'H ,
4016 const octetstring o := '010243'O
4020 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4021 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4023 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4024 else {setverdict(fail);}
4028 Overall verdict: pass
4035 .*---------------------------------------------------------------------*
4036 :h2.Testing PREPADDING Attribute
4037 .*---------------------------------------------------------------------*
4039 .*---------------------------------------------------------------------*
4040 :h3. PREPADDING(yes) for bitstring
4041 .*---------------------------------------------------------------------*
4044 <TC- PREPADDING(yes) for bitstring>
4048 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4049 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4051 type bitstring RAW_PDU length (3)
4052 with {encode "RAW"; variant "PREPADDING(yes)"}
4054 const RAW_PDU i := '101'B
4055 const octetstring o := '05'O
4059 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4060 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4062 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4063 else {setverdict(fail);}
4067 Overall verdict: pass
4074 .*---------------------------------------------------------------------*
4075 :h3. PREPADDING(yes) for hexstring
4076 .*---------------------------------------------------------------------*
4079 <TC- PREPADDING(yes) for hexstring>
4083 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4084 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4086 type hexstring RAW_PDU length (1)
4087 with {encode "RAW"; variant "PREPADDING(yes)"}
4089 const RAW_PDU i := 'F'H
4090 const octetstring o := '0F'O
4094 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4095 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4097 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4098 else {setverdict(fail);}
4102 Overall verdict: pass
4108 .*---------------------------------------------------------------------*
4109 :h3. PREPADDING(word16) for octetstring
4110 .*---------------------------------------------------------------------*
4113 <TC- PREPADDING(word16) for octetstring>
4117 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4118 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4120 type octetstring otype
4121 with {encode "RAW"; variant "PREPADDING(word16)"}
4122 type hexstring htype length (3)
4124 type record RAW_PDU { htype h, otype o}
4125 with {encode "RAW"; variant ""}
4127 const RAW_PDU i := {'AAA'H,'FF'O}
4128 const octetstring o := 'AA0AFF'O
4132 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4133 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4135 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4136 else {setverdict(fail);}
4140 Overall verdict: pass
4146 .*---------------------------------------------------------------------*
4147 :h3. PREPADDING(word16) for record of
4148 .*---------------------------------------------------------------------*
4151 <TC- PREPADDING(word16) for record of>
4155 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4156 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4159 with {encode "RAW"; variant "FIELDLENGTH(3)"}
4160 type record length (1) of itype rtype
4161 with {encode "RAW"; variant "PREPADDING(word16)"}
4163 type record RAW_PDU {itype r1, rtype r2}
4164 with {encode "RAW"; variant ""}
4166 const RAW_PDU i := {4,{7}}
4167 const octetstring o := '040007'O
4171 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4172 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4174 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4175 else {setverdict(fail);}
4179 Overall verdict: pass
4185 .*---------------------------------------------------------------------*
4186 :h3. PREPADDING(dword32) for set of
4187 .*---------------------------------------------------------------------*
4190 <TC- PREPADDING(dword32) for set of>
4194 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4195 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4197 type bitstring BIT3 length (3)
4198 type record length (2) of BIT3 rtype
4199 with {encode "RAW"; variant "PREPADDING(dword32)"}
4201 type record RAW_PDU {BIT3 r1, rtype r2}
4202 with {encode "RAW"; variant ""}
4204 const RAW_PDU i := {'100'B,{'111'B, '101'B}}
4205 const octetstring o := '040000002F'O
4209 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4210 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4212 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4213 else {setverdict(fail);}
4217 Overall verdict: pass
4223 .*---------------------------------------------------------------------*
4224 :h3. PREPADDING(dword32) for record
4225 .*---------------------------------------------------------------------*
4228 <TC- PREPADDING(dword32) for record>
4232 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4233 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4235 type bitstring BIT3 length (3)
4237 type record stype {BIT3 s1, BIT3 s2}
4238 with {encode "RAW"; variant "PREPADDING(dword32)"}
4240 type record RAW_PDU {stype r1, stype r2, stype r3}
4241 with {encode "RAW"; variant ""}
4243 const RAW_PDU i := {{'111'B,'111'B},{'110'B,'000'B},{'111'B,'111'B}}
4244 const octetstring o := '3F000000060000003F'O
4248 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4249 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4251 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4252 else {setverdict(fail);}
4256 Overall verdict: pass
4262 .*---------------------------------------------------------------------*
4263 :h3. PREPADDING(word16) for set
4264 .*---------------------------------------------------------------------*
4267 <TC- PREPADDING(word16) for set>
4271 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4272 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4274 type bitstring BIT3 length (3)
4276 type set stype {BIT3 s1}
4277 with {encode "RAW"; variant "PREPADDING(word16)"}
4279 type record RAW_PDU {stype r1, stype r2, stype r3}
4280 with {encode "RAW"; variant ""}
4282 const RAW_PDU i := {{s1:='111'B},{s1:='110'B},{s1:='111'B}}
4283 const octetstring o := '0700060007'O
4287 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4288 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4290 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4291 else {setverdict(fail);}
4295 Overall verdict: pass
4301 .*---------------------------------------------------------------------*
4302 :h3. PREPADDING(word16) for union
4303 .*---------------------------------------------------------------------*
4306 <TC- PREPADDING(word16) for union>
4310 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4311 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4313 type bitstring BIT3 length (3)
4314 type hexstring HEX1 length (1)
4316 type union utype {BIT3 u1, HEX1 u2}
4317 with {encode "RAW"; variant "PREPADDING(word16)"}
4319 type record RAW_PDU {utype r1, utype r2, utype r3}
4320 with {encode "RAW"; variant ""}
4322 const RAW_PDU i := {{u1:='111'B},{u1:='010'B},{u1:='111'B}}
4323 const octetstring o := '0700020007'O
4327 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4328 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4330 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4331 else {setverdict(fail);}
4335 Overall verdict: pass
4341 .*---------------------------------------------------------------------*
4342 :h2.Testing PADDING_PATTERN Attribute
4343 .*---------------------------------------------------------------------*
4345 .*---------------------------------------------------------------------*
4346 :h3. PADDING_PATTERN for record of
4347 .*---------------------------------------------------------------------*
4350 <TC- PADDING_PATTERN for record of>
4354 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4355 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4358 with {encode "RAW"; variant "FIELDLENGTH(3)"}
4359 type record length (1) of itype rtype
4360 with {encode "RAW"; variant "PREPADDING(yes), PADDING_PATTERN('1'B)"}
4362 type record RAW_PDU {itype r1, rtype r2}
4363 with {encode "RAW"; variant ""}
4365 const RAW_PDU i := {4,{7}}
4366 const octetstring o := 'FC07'O
4370 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4371 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4373 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4374 else {setverdict(fail);}
4378 Overall verdict: pass
4384 .*---------------------------------------------------------------------*
4385 :h3. PADDING_PATTERN for set of
4386 .*---------------------------------------------------------------------*
4389 <TC- PADDING_PATTERN for set of>
4393 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4394 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4396 type bitstring BIT3 length (3)
4398 type set length (2) of BIT3 rtype
4399 with {encode "RAW"; variant "PREPADDING(yes), PADDING_PATTERN('10000'B)"}
4401 type record RAW_PDU {BIT3 r1, rtype r2}
4402 with {encode "RAW"; variant ""}
4405 const RAW_PDU i := {'100'B,{'111'B, '101'B}}
4406 const octetstring o := '842F'O
4410 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4411 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4413 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4414 else {setverdict(fail);}
4418 Overall verdict: pass
4424 .*---------------------------------------------------------------------*
4425 :h3. PADDING_PATTERN for record
4426 .*---------------------------------------------------------------------*
4429 <TC- PADDING_PATTERN for record>
4433 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4434 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4436 type bitstring BIT9 length (9)
4438 type record stype {BIT9 s1, BIT9 s2}
4439 with {encode "RAW"; variant "PREPADDING(40), PADDING_PATTERN('100000'B)"}
4441 type record RAW_PDU {stype r1, stype r2, stype r3}
4442 with {encode "RAW"; variant ""}
4445 const RAW_PDU i := {{'111000111'B,'111000111'B},{'111111111'B,'111111111'B},{'111000111'B,'111000111'B}}
4446 const octetstring o := 'C78F832008FFFF832008C78F03'O
4450 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4451 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4453 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4454 else {setverdict(fail);}
4458 Overall verdict: pass
4464 .*---------------------------------------------------------------------*
4465 :h3. PADDING_PATTERN for set
4466 .*---------------------------------------------------------------------*
4469 <TC- PADDING_PATTERN for set>
4473 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4474 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4476 type hexstring HEX3 length (3)
4478 type set stype {HEX3 s1}
4479 with {encode "RAW"; variant "PREPADDING(15), PADDING_PATTERN('10001'B)"}
4481 type record RAW_PDU {stype r1, stype r2, stype r3}
4482 with {encode "RAW"; variant ""}
4484 const RAW_PDU i := {{s1:='FFF'H},{s1:='FFF'H},{s1:='FFF'H}}
4485 const octetstring o := 'FF9FFFCFFF03'O
4489 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4490 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4492 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4493 else {setverdict(fail);}
4497 Overall verdict: pass
4503 .*---------------------------------------------------------------------*
4504 :h3. PADDING_PATTERN for union
4505 .*---------------------------------------------------------------------*
4508 <TC- PADDING_PATTERN for union>
4512 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4513 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4515 type octetstring OCT2 length (2)
4517 type union utype {OCT2 u1, hexstring u2}
4518 with {encode "RAW"; variant "PREPADDING(256),PADDING_PATTERN('11001'B)"}
4520 type record RAW_PDU {utype r1, utype r2, utype r3}
4521 with {encode "RAW"; variant ""}
4523 const RAW_PDU i := {{u1:='AABB'O},{u1:='CCDD'O},{u1:='EEFF'O}}
4524 const octetstring o := 'AABB39E79C73CE39E79C73CE39E79C73CE39E79C73CE39E79C73CE39E79C73CECCDD39E79C73CE39E79C73CE39E79C73CE39E79C73CE39E79C73CE39E79C73CEEEFF'O
4528 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4529 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4531 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4532 else {setverdict(fail);}
4536 Overall verdict: pass
4543 .*---------------------------------------------------------------------*
4544 :h2.Testing PADDALL Attribute
4545 .*---------------------------------------------------------------------*
4547 .*---------------------------------------------------------------------*
4548 :h3. PADDALL with PADDING Attribute - record
4549 .*---------------------------------------------------------------------*
4552 <TC- PADDALL with PADDING Attribute - record>
4556 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4557 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4559 type bitstring BIT1 length (1)
4561 type record stype {BIT1 s1, BIT1 s2}
4562 with {encode "RAW"; variant "PADDING(yes), PADDALL"}
4564 type record RAW_PDU {stype r1, stype r2, stype r3}
4565 with {encode "RAW"; variant ""}
4567 const RAW_PDU i := {{'1'B,'1'B},{'1'B,'1'B},{'1'B,'1'B}}
4568 const octetstring o := '010101010101'O
4572 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4573 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4575 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4576 else {setverdict(fail);}
4580 Overall verdict: pass
4586 .*---------------------------------------------------------------------*
4587 :h3. PADDALL with PADDING Attribute - set
4588 .*---------------------------------------------------------------------*
4591 <TC- PADDALL with PADDING Attribute - set>
4595 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4596 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4598 type bitstring BIT3 length (3)
4600 type set stype {BIT3 s1, BIT3 s2}
4601 with {encode "RAW"; variant "PADDING(4), PADDALL"}
4603 type set RAW_PDU {stype r1, stype r2}
4604 with {encode "RAW"; variant "PADDING(dword32), PADDALL"}
4606 const RAW_PDU i := {r1:={s1:='111'B,s2:='101'B},r2:={s1:='111'B,s2:='101'B}}
4608 const octetstring o := '57570000'O
4612 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4613 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4615 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4616 else {setverdict(fail);}
4620 Overall verdict: pass
4626 .*---------------------------------------------------------------------*
4627 :h3. PADDALL with PREPADDING Attribute - record
4628 .*---------------------------------------------------------------------*
4631 <TC- PADDALL with PADDING Attribute - record>
4635 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4636 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4638 type hexstring HEX1 length (1)
4640 type record stype {HEX1 s1, HEX1 s2}
4642 type record RAW_PDU {stype r1, stype r2, stype r3}
4643 with {encode "RAW"; variant "PREPADDING(12), PADDALL"}
4645 const RAW_PDU i := {{'A'H,'B'H},{'A'H,'B'H},{'A'H,'B'H}}
4646 const octetstring o := 'BAA00BBA'O
4650 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4651 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4653 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4654 else {setverdict(fail);}
4658 Overall verdict: pass
4664 .*---------------------------------------------------------------------*
4665 :h3. PADDALL with PREPADDING Attribute - set
4666 .*---------------------------------------------------------------------*
4669 <TC- PADDALL with PADDING Attribute - set>
4673 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4674 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4676 type hexstring HEX1 length (1)
4678 type set stype {HEX1 s1, HEX1 s2, HEX1 s3}
4679 with {encode "RAW"; variant "PREPADDING(12), PADDALL"}
4681 type set RAW_PDU {stype r1, stype r2}
4682 with {encode "RAW"; variant "PREPADDING(36), PADDALL, PADDING_PATTERN('1111'B)"}
4684 const RAW_PDU i := { r1:={s1:='A'H,s2:='B'H,s3:='C'H},
4685 r2:={s1:='A'H,s2:='B'H,s3:='C'H}}
4687 const octetstring o := '0AB000FCAF000BC0'O
4691 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4692 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4694 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4695 else {setverdict(fail);}
4699 Overall verdict: pass
4706 .*---------------------------------------------------------------------*
4707 :h2.Testing PTROFFSET Attribute
4708 .*---------------------------------------------------------------------*
4710 .*---------------------------------------------------------------------*
4711 :h3. PTROFFSET is set to default base
4712 .*---------------------------------------------------------------------*
4715 <TC- PTROFFSET is set to default base>
4719 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4720 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4722 type bitstring BIT4 length (4)
4723 type hexstring HEX1 length (1)
4724 type octetstring OCT3 length (3)
4729 with {variant "FIELDLENGTH(8)" };
4731 type record RAW_PDU {
4737 with { variant (ptr1) "POINTERTO(field1)";
4738 variant (ptr1) "UNIT(1)";
4739 variant (ptr1) "PTROFFSET(ptr1)";
4740 variant (ptr2) "POINTERTO(field2)";
4741 variant (ptr2) "UNIT(1)"
4742 variant (ptr2) "PTROFFSET(ptr2)"}
4744 } with {encode "RAW" };
4746 const RAW_PDU i := {16,12,'0110'B,'1001'B}
4748 const octetstring o := '100C96'O
4753 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4754 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4756 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4757 else {setverdict(fail);}
4761 Overall verdict: pass
4767 .*---------------------------------------------------------------------*
4768 :h3. PTROFFSET is set to the beginning of record
4769 .*---------------------------------------------------------------------*
4772 <TC- PTROFFSET is set to the beginning of record>
4776 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4777 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4779 type bitstring BIT3 length (3)
4780 type hexstring HEX1 length (1)
4781 type octetstring OCT3 length (3)
4786 with { encode "RAW"; variant "FIELDLENGTH(8)" };
4789 type record RAW_PDU {
4798 with { variant (ptr1) "POINTERTO(field1)";
4799 variant (ptr1) "UNIT(1)";
4800 variant (ptr1) "PTROFFSET(ptr1)";
4801 variant (ptr2) "POINTERTO(field2)";
4802 variant (ptr2) "UNIT(1)";
4803 variant (ptr2) "PTROFFSET(ptr1)";
4804 variant (ptr3) "POINTERTO(field3)";
4805 variant (ptr3) "UNIT(1)";
4806 variant (ptr3) "PTROFFSET(ptr1)"}
4808 } with {encode "RAW" };
4810 const RAW_PDU i := {24,27,31,'111'B,'A'H,'010203'O}
4812 const octetstring o := '181B1FD7008101'O
4816 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4817 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4819 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4820 else {setverdict(fail);}
4824 Overall verdict: pass
4831 .*---------------------------------------------------------------------*
4832 :h3. PTROFFSET is set to data field
4833 .*---------------------------------------------------------------------*
4836 <TC- PTROFFSET is set to data field>
4840 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4841 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4843 type bitstring BIT3 length (3)
4844 type hexstring HEX1 length (1)
4845 type octetstring OCT3 length (3)
4850 with { variant "FIELDLENGTH(8)" };
4853 type record RAW_PDU {
4862 with { variant (ptr1) "POINTERTO(field1)";
4863 variant (ptr1) "UNIT(1)";
4864 variant (ptr1) "PTROFFSET(field1)";
4865 variant (ptr2) "POINTERTO(field2)";
4866 variant (ptr2) "UNIT(1)";
4867 variant (ptr2) "PTROFFSET(field1)";
4868 variant (ptr3) "POINTERTO(field3)";
4869 variant (ptr3) "UNIT(1)";
4870 variant (ptr3) "PTROFFSET(field1)"}
4872 } with {encode "RAW" };
4874 const RAW_PDU i := {0,3,7,'111'B,'A'H,'010203'O}
4876 const octetstring o := '000307D7008101'O
4880 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4881 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4883 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4884 else {setverdict(fail);}
4888 Overall verdict: pass
4894 .*---------------------------------------------------------------------*
4895 :h2.Testing HEXORDER Attribute
4896 .*---------------------------------------------------------------------*
4898 .*---------------------------------------------------------------------*
4899 :h3. HEXORDER(low) for hexstring
4900 .*---------------------------------------------------------------------*
4903 <TC- HEXORDER(low) for hexstring>
4907 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4908 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4910 type hexstring RAW_PDU
4911 with { encode "RAW"; variant "HEXORDER(low)"};
4913 const RAW_PDU i := '1234567890'H
4914 const octetstring o := '2143658709'O
4918 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4919 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4921 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4922 else {setverdict(fail);}
4926 Overall verdict: pass
4932 .*---------------------------------------------------------------------*
4933 :h3. HEXORDER(high) for hexstring
4934 .*---------------------------------------------------------------------*
4937 <TC- HEXORDER(high) for hexstring>
4941 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4942 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4944 type hexstring RAW_PDU
4945 with { encode "RAW"; variant "HEXORDER(high)"};
4947 const RAW_PDU i := '1234567890'H
4948 const octetstring o := '1234567890'O
4952 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4953 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4955 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4956 else {setverdict(fail);}
4960 Overall verdict: pass
4966 .*---------------------------------------------------------------------*
4967 :h2.Testing EXTENSION BIT Attribute
4968 .*---------------------------------------------------------------------*
4970 .*---------------------------------------------------------------------*
4971 :h3. EXTENSION_BIT(no) for octetstring
4972 .*---------------------------------------------------------------------*
4975 <TC- EXTENSION_BIT(no) for octetstring>
4979 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
4980 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
4982 type octetstring RAW_PDU
4983 with { encode "RAW"; variant "EXTENSION_BIT(no)"};
4985 const RAW_PDU i := '1234567890'O
4986 const octetstring o := '1234567890'O
4990 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
4991 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
4993 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
4994 else {setverdict(fail);}
4998 Overall verdict: pass
5004 .*---------------------------------------------------------------------*
5005 :h3. EXTENSION_BIT(yes) for octetstring
5006 .*---------------------------------------------------------------------*
5009 <TC- EXTENSION_BIT(yes) for octetstring>
5013 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5014 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5016 type octetstring RAW_PDU
5017 with { encode "RAW"; variant "EXTENSION_BIT(yes)"};
5019 const RAW_PDU i := '010203040500'O
5020 const octetstring o := '010203040580'O
5024 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5025 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5027 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == '010203040580'O)) {setverdict(pass);}
5028 else {setverdict(fail);}
5032 Overall verdict: pass
5038 .*---------------------------------------------------------------------*
5039 :h3. EXTENSION_BIT(reverse) for octetstring
5040 .*---------------------------------------------------------------------*
5043 <TC- EXTENSION_BIT(reverse) for octetstring>
5047 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5048 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5050 type octetstring RAW_PDU
5051 with { encode "RAW"; variant "EXTENSION_BIT(reverse)"};
5053 const RAW_PDU i := '010203040500'O
5054 const octetstring o := '818283848500'O
5058 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5059 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5061 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == '818283848500'O)) {setverdict(pass);}
5062 else {setverdict(fail);}
5066 Overall verdict: pass
5072 .*---------------------------------------------------------------------*
5073 :h3. EXTENSION_BIT(yes) for record of octetstring
5074 .*---------------------------------------------------------------------*
5077 <TC- EXTENSION_BIT(yes) for record of octetstring>
5081 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5082 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5084 type octetstring OCT1
5085 with { encode "RAW"; variant "FIELDLENGTH(1)"};
5087 type record of OCT1 RAW_PDU
5088 with { encode "RAW"; variant "EXTENSION_BIT(yes)"};
5090 const RAW_PDU i := {'84'O, '00'O}
5091 const octetstring o := '0480'O
5095 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5096 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5098 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
5102 Overall verdict: pass
5108 .*---------------------------------------------------------------------*
5109 :h3. EXTENSION_BIT(reverse) for record of octetstring
5110 .*---------------------------------------------------------------------*
5113 <TC- EXTENSION_BIT(reverse) for record of octetstring>
5117 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5118 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5120 type octetstring OCT1
5121 with { encode "RAW"; variant "FIELDLENGTH(1)"};
5123 type record of OCT1 RAW_PDU
5124 with { encode "RAW"; variant "EXTENSION_BIT(reverse)"};
5126 const RAW_PDU i := {'80'O}
5127 const octetstring o := '00'O
5131 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5132 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5134 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
5138 Overall verdict: pass
5144 .*---------------------------------------------------------------------*
5145 :h3. EXTENSION_BIT(no) for record of octetstring
5146 .*---------------------------------------------------------------------*
5149 <TC- EXTENSION_BIT(no) for record of octetstring>
5153 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5154 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5156 type octetstring OCT1
5157 with { encode "RAW"; variant "FIELDLENGTH(1)"};
5159 type record of OCT1 RAW_PDU
5160 with { encode "RAW"; variant "EXTENSION_BIT(no)"};
5162 const RAW_PDU i := {'84'O, '05'O}
5163 const octetstring o := '8405'O
5167 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5168 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5170 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
5174 Overall verdict: pass
5180 *---------------------------------------------------------------------*
5181 :h3. EXTENSION_BIT(yes) for record of bitstring
5182 .*---------------------------------------------------------------------*
5185 <TC- EXTENSION_BIT(yes) for record of bitstring>
5189 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5190 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5194 with { encode "RAW"; variant "FIELDLENGTH(3)"};
5196 type record of BIT3 RAW_PDU
5197 with { encode "RAW"; variant "EXTENSION_BIT(yes)"};
5199 const RAW_PDU i := {'111'B, '000'B, '111'B}
5200 const octetstring o := 'C301'O
5204 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5205 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5207 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
5211 Overall verdict: pass
5217 *---------------------------------------------------------------------*
5218 :h3. EXTENSION_BIT(reverse) for record of bitstring
5219 .*---------------------------------------------------------------------*
5222 <TC- EXTENSION_BIT(reverse) for record of bitstring>
5226 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5227 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5230 with { encode "RAW"; variant "FIELDLENGTH(3)"};
5232 type record of BIT3 RAW_PDU
5233 with { encode "RAW"; variant "EXTENSION_BIT(reverse)"};
5235 const RAW_PDU i := {'111'B, '000'B, '111'B}
5236 const octetstring o := 'E700'O
5240 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5241 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5243 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
5247 Overall verdict: pass
5253 *---------------------------------------------------------------------*
5254 :h3. EXTENSION_BIT(yes) for set of bitstring
5255 .*---------------------------------------------------------------------*
5258 <TC- EXTENSION_BIT(yes) for set of bitstring>
5262 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5263 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5266 with { encode "RAW"; variant "FIELDLENGTH(3)"};
5268 type set of BIT3 RAW_PDU
5269 with { encode "RAW"; variant "EXTENSION_BIT(yes)"};
5271 const RAW_PDU i := {'111'B, '000'B, '111'B}
5272 const octetstring o := 'C301'O
5276 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5277 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5279 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
5283 Overall verdict: pass
5289 *---------------------------------------------------------------------*
5290 :h3. EXTENSION_BIT(reverse) for set of bitstring
5291 .*---------------------------------------------------------------------*
5294 <TC- EXTENSION_BIT(reverse) for set of bitstring>
5298 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5299 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5302 with { encode "RAW"; variant "FIELDLENGTH(3)"};
5304 type set of BIT3 RAW_PDU
5305 with { encode "RAW"; variant "EXTENSION_BIT(reverse)"};
5307 const RAW_PDU i := {'111'B, '000'B, '111'B}
5308 const octetstring o := 'E700'O
5312 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5313 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5315 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
5319 Overall verdict: pass
5325 *---------------------------------------------------------------------*
5326 :h3. EXTENSION_BIT(yes) for set of hexstring
5327 .*---------------------------------------------------------------------*
5330 <TC- EXTENSION_BIT(yes) for set of hexstring>
5334 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5335 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5337 type set of hexstring RAW_PDU
5338 with { encode "RAW"; variant "EXTENSION_BIT(yes)"};
5340 const RAW_PDU i := {'F'H, '0'H, 'F'H}
5341 const octetstring o := '070F'O
5345 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5346 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5348 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
5352 Overall verdict: pass
5358 *---------------------------------------------------------------------*
5359 :h3. EXTENSION_BIT(reverse) for set of hexstring
5360 .*---------------------------------------------------------------------*
5363 <TC- EXTENSION_BIT(reverse) for set of hexstring>
5367 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5368 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5370 type set of hexstring RAW_PDU
5371 with { encode "RAW"; variant "EXTENSION_BIT(reverse)"};
5373 const RAW_PDU i := {'F'H, '00'H, 'FFF'H}
5374 const octetstring o := '0FF87F'O
5378 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5379 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5381 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
5385 Overall verdict: pass
5392 .*---------------------------------------------------------------------*
5393 :h3. Test of record with EXTENSION_BIT
5394 .*---------------------------------------------------------------------*
5397 <TC- Test of record with EXTENSION_BIT >
5401 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5402 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5407 with { variant "FIELDLENGTH(1)" } ;
5410 with { variant "FIELDLENGTH(7)" } ;
5412 type octetstring OCT3
5413 with { variant "FIELDLENGTH(3)" } ;
5419 with { variant "EXTENSION_BIT (yes)"};
5425 with { variant "EXTENSION_BIT (yes)"};
5431 with { variant "EXTENSION_BIT (yes)"};
5440 octetstring more_extension optional }
5441 with { variant "EXTENSION_BIT (yes)" ;
5442 variant (more_extension) "EXTENSION_BIT (yes)"};
5450 octetstring more_extension optional }
5451 with { variant "EXTENSION_BIT (yes)";
5452 variant (more_extension) "EXTENSION_BIT (yes)"};
5460 octetstring more_extension optional }
5461 with { variant "EXTENSION_BIT (yes)";
5462 variant (more_extension) "EXTENSION_BIT (yes)"};
5471 Octet2 oct2 optional ,
5472 Octet3 oct3 optional }
5473 with { variant (length1) "LENGTHTO(oct1 , oct2 , oct3 )" }
5475 } with {encode "RAW"}
5480 i := { octstr := '123456'O ,
5483 { data := '0000001'B ,
5484 extensionbit := '0'B ,
5486 { data := '0000001'B ,
5487 extensionbit := '0'B } ,
5488 more_extension := '000080'O } ,
5490 { data := '0000010'B ,
5491 extensionbit := '0'B ,
5493 { data := '0000010'B ,
5494 extensionbit := '0'B } ,
5495 more_extension := '000080'O } ,
5497 { data := '0000011'B ,
5498 extensionbit := '0'B ,
5500 { data := '0000011'B ,
5501 extensionbit := '0'B } ,
5502 more_extension := '000080'O } }
5506 const octetstring o :='1234560F010100008002020000800303000080'O
5512 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5513 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5515 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
5516 else {setverdict(fail);}
5520 Overall verdict: pass
5526 .*---------------------------------------------------------------------*
5527 :h3. Test of record with EXTENSION_BIT
5528 .*---------------------------------------------------------------------*
5531 <TC- Test of record with EXTENSION_BIT >
5535 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5536 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5541 with { variant "FIELDLENGTH(1)" } ;
5544 with { variant "FIELDLENGTH(7)" } ;
5546 type octetstring OCT3
5547 with { variant "FIELDLENGTH(3)" } ;
5553 with { variant "EXTENSION_BIT (yes)"};
5559 with { variant "EXTENSION_BIT (yes)"};
5565 with { variant "EXTENSION_BIT (yes)"};
5574 octetstring more_extension optional }
5575 with { variant "EXTENSION_BIT (yes)" ;
5576 variant (more_extension) "EXTENSION_BIT (yes)"};
5584 octetstring more_extension optional }
5585 with { variant "EXTENSION_BIT (yes)";
5586 variant (more_extension) "EXTENSION_BIT (yes)"};
5594 octetstring more_extension optional }
5595 with { variant "EXTENSION_BIT (yes)";
5596 variant (more_extension) "EXTENSION_BIT (yes)"};
5605 Octet2 oct2 optional ,
5606 Octet3 oct3 optional }
5607 with { variant (length1) "LENGTHTO(oct1 , oct2 , oct3 )" }
5609 } with {encode "RAW"}
5615 i := { octstr := '123456'O ,
5618 { data := '0000001'B ,
5619 extensionbit := '0'B ,
5621 { data := '0000001'B ,
5622 extensionbit := '0'B } ,
5623 more_extension := '000080'O } ,
5625 { data := '0000010'B ,
5626 extensionbit := '0'B ,
5628 { data := '0000010'B ,
5629 extensionbit := '1'B } ,
5630 more_extension := omit } ,
5632 { data := '0000011'B ,
5633 extensionbit := '0'B ,
5635 { data := '0000011'B ,
5636 extensionbit := '0'B } ,
5637 more_extension := '000080'O } }
5641 const octetstring o :='1234560C010100008002820303000080'O
5647 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5648 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5650 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
5651 else {setverdict(fail);}
5655 Overall verdict: pass
5661 .*---------------------------------------------------------------------*
5662 :h3. Test of record with EXTENSION_BIT
5663 .*---------------------------------------------------------------------*
5666 <TC- Test of record with EXTENSION_BIT >
5670 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5671 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5676 with { variant "FIELDLENGTH(1)" } ;
5679 with { variant "FIELDLENGTH(7)" } ;
5681 type octetstring OCT3
5682 with { variant "FIELDLENGTH(3)" } ;
5688 with { variant "EXTENSION_BIT (yes)"};
5694 with { variant "EXTENSION_BIT (yes)"};
5700 with { variant "EXTENSION_BIT (yes)"};
5709 octetstring more_extension optional }
5710 with { variant "EXTENSION_BIT (yes)" ;
5711 variant (more_extension) "EXTENSION_BIT (yes)"};
5719 octetstring more_extension optional }
5720 with { variant "EXTENSION_BIT (yes)";
5721 variant (more_extension) "EXTENSION_BIT (yes)"};
5729 octetstring more_extension optional }
5730 with { variant "EXTENSION_BIT (yes)";
5731 variant (more_extension) "EXTENSION_BIT (yes)"};
5740 Octet2 oct2 optional ,
5741 Octet3 oct3 optional }
5742 with { variant (length1) "LENGTHTO(oct1 , oct2 , oct3 )" }
5744 } with {encode "RAW"}
5750 i := { octstr := '123456'O ,
5753 { data := '0000001'B ,
5754 extensionbit := '0'B ,
5756 { data := '0000001'B ,
5757 extensionbit := '0'B } ,
5758 more_extension := '000080'O } ,
5760 { data := '0000010'B ,
5761 extensionbit := '0'B ,
5763 { data := '0000010'B ,
5764 extensionbit := '1'B } ,
5765 more_extension := omit } ,
5767 { data := '0000011'B ,
5768 extensionbit := '0'B ,
5770 { data := '0000011'B ,
5771 extensionbit := '1'B } ,
5772 more_extension := omit } }
5776 const octetstring o :='12345609010100008002820383'O
5782 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5783 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5785 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
5786 else {setverdict(fail);}
5790 Overall verdict: pass
5796 .*---------------------------------------------------------------------*
5797 :h3. Test of record with EXTENSION_BIT
5798 .*---------------------------------------------------------------------*
5801 <TC- Test of record with EXTENSION_BIT >
5805 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5806 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5811 with { variant "FIELDLENGTH(1)" } ;
5814 with { variant "FIELDLENGTH(7)" } ;
5816 type octetstring OCT3
5817 with { variant "FIELDLENGTH(3)" } ;
5823 with { variant "EXTENSION_BIT (yes)"};
5829 with { variant "EXTENSION_BIT (yes)"};
5835 with { variant "EXTENSION_BIT (yes)"};
5844 octetstring more_extension optional }
5845 with { variant "EXTENSION_BIT (yes)" ;
5846 variant (more_extension) "EXTENSION_BIT (yes)"};
5854 octetstring more_extension optional }
5855 with { variant "EXTENSION_BIT (yes)";
5856 variant (more_extension) "EXTENSION_BIT (yes)"};
5864 octetstring more_extension optional }
5865 with { variant "EXTENSION_BIT (yes)";
5866 variant (more_extension) "EXTENSION_BIT (yes)"};
5875 Octet2 oct2 optional ,
5876 Octet3 oct3 optional }
5877 with { variant (length1) "LENGTHTO(oct1 , oct2 , oct3 )" }
5879 } with {encode "RAW"}
5885 i := { octstr := '123456'O ,
5888 { data := '0000001'B ,
5889 extensionbit := '0'B ,
5891 { data := '0000001'B ,
5892 extensionbit := '1'B } ,
5893 more_extension := omit } ,
5895 { data := '0000010'B ,
5896 extensionbit := '0'B ,
5898 { data := '0000010'B ,
5899 extensionbit := '1'B } ,
5900 more_extension := omit } ,
5902 { data := '0000011'B ,
5903 extensionbit := '0'B ,
5905 { data := '0000011'B ,
5906 extensionbit := '1'B } ,
5907 more_extension := omit } }
5911 const octetstring o :='12345606018102820383'O
5917 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
5918 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
5920 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
5921 else {setverdict(fail);}
5925 Overall verdict: pass
5931 .*---------------------------------------------------------------------*
5932 :h3. Test of record with EXTENSION_BIT
5933 .*---------------------------------------------------------------------*
5936 <TC- Test of record with EXTENSION_BIT >
5940 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
5941 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
5946 with { variant "FIELDLENGTH(1)" } ;
5949 with { variant "FIELDLENGTH(7)" } ;
5951 type octetstring OCT3
5952 with { variant "FIELDLENGTH(3)" } ;
5958 with { variant "EXTENSION_BIT (yes)"};
5964 with { variant "EXTENSION_BIT (yes)"};
5970 with { variant "EXTENSION_BIT (yes)"};
5979 octetstring more_extension optional }
5980 with { variant "EXTENSION_BIT (yes)" ;
5981 variant (more_extension) "EXTENSION_BIT (yes)"};
5989 octetstring more_extension optional }
5990 with { variant "EXTENSION_BIT (yes)";
5991 variant (more_extension) "EXTENSION_BIT (yes)"};
5999 octetstring more_extension optional }
6000 with { variant "EXTENSION_BIT (yes)";
6001 variant (more_extension) "EXTENSION_BIT (yes)"};
6010 Octet2 oct2 optional ,
6011 Octet3 oct3 optional }
6012 with { variant (length1) "LENGTHTO(oct1 , oct2 , oct3 )" }
6014 } with {encode "RAW"}
6020 i := { octstr := '123456'O ,
6023 { data := '0000001'B ,
6024 extensionbit := '0'B ,
6026 { data := '0000001'B ,
6027 extensionbit := '1'B } ,
6028 more_extension := omit } ,
6030 { data := '0000010'B ,
6031 extensionbit := '0'B ,
6033 { data := '0000010'B ,
6034 extensionbit := '1'B } ,
6035 more_extension := omit } ,
6040 const octetstring o :='1234560401810282'O
6046 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6047 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6049 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
6050 else {setverdict(fail);}
6054 Overall verdict: pass
6060 .*---------------------------------------------------------------------*
6061 :h3. Test of record with EXTENSION_BIT
6062 .*---------------------------------------------------------------------*
6065 <TC- Test of record with EXTENSION_BIT >
6069 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6070 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6075 with { variant "FIELDLENGTH(1)" } ;
6078 with { variant "FIELDLENGTH(7)" } ;
6080 type octetstring OCT3
6081 with { variant "FIELDLENGTH(3)" } ;
6087 with { variant "EXTENSION_BIT (yes)"};
6093 with { variant "EXTENSION_BIT (yes)"};
6099 with { variant "EXTENSION_BIT (yes)"};
6108 octetstring more_extension optional }
6109 with { variant "EXTENSION_BIT (yes)" ;
6110 variant (more_extension) "EXTENSION_BIT (yes)"};
6118 octetstring more_extension optional }
6119 with { variant "EXTENSION_BIT (yes)";
6120 variant (more_extension) "EXTENSION_BIT (yes)"};
6128 octetstring more_extension optional }
6129 with { variant "EXTENSION_BIT (yes)";
6130 variant (more_extension) "EXTENSION_BIT (yes)"};
6139 Octet2 oct2 optional ,
6140 Octet3 oct3 optional }
6141 with { variant (length1) "LENGTHTO(oct1 , oct2 , oct3 )" }
6143 } with {encode "RAW"}
6148 i := { octstr := '123456'O ,
6151 { data := '0000001'B ,
6152 extensionbit := '0'B ,
6154 { data := '0000001'B ,
6155 extensionbit := '1'B } ,
6156 more_extension := omit } ,
6162 const octetstring o :='123456020181'O
6168 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6169 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6171 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
6172 else {setverdict(fail);}
6176 Overall verdict: pass
6182 .*---------------------------------------------------------------------*
6183 :h3. Test of record with EXTENSION_BIT
6184 .*---------------------------------------------------------------------*
6187 <TC- Test of record with EXTENSION_BIT >
6191 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6192 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6197 with { variant "FIELDLENGTH(1)" } ;
6200 with { variant "FIELDLENGTH(7)" } ;
6202 type octetstring OCT3
6203 with { variant "FIELDLENGTH(3)" } ;
6230 octetstring more_extension optional }
6231 with { variant "EXTENSION_BIT (yes)" ;};
6239 octetstring more_extension optional }
6240 with { variant "EXTENSION_BIT (yes)"};
6248 octetstring more_extension optional }
6249 with { variant "EXTENSION_BIT (yes)"};
6258 Octet2 oct2 optional ,
6259 Octet3 oct3 optional }
6260 with { variant (length1) "LENGTHTO(oct1 , oct2 , oct3 )" }
6262 } with {encode "RAW"}
6268 i := { octstr := '123456'O ,
6271 { data := '0000001'B ,
6272 extensionbit := '0'B ,
6274 { data := '0000001'B ,
6275 extensionbit := '0'B } ,
6276 more_extension := '000080'O } ,
6278 { data := '0000010'B ,
6279 extensionbit := '0'B ,
6281 { data := '0000010'B ,
6282 extensionbit := '0'B } ,
6283 more_extension := '000080'O } ,
6285 { data := '0000011'B ,
6286 extensionbit := '0'B ,
6288 { data := '0000011'B ,
6289 extensionbit := '0'B } ,
6290 more_extension := '000080'O } }
6294 const octetstring o :='1234560F010100008002020000800303000080'O
6300 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6301 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6303 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
6304 else {setverdict(fail);}
6308 Overall verdict: pass
6314 .*---------------------------------------------------------------------*
6315 :h3. Test of record with EXTENSION_BIT
6316 .*---------------------------------------------------------------------*
6319 <TC- Test of record with EXTENSION_BIT >
6323 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6324 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6329 with { variant "FIELDLENGTH(1)" } ;
6332 with { variant "FIELDLENGTH(7)" } ;
6334 type octetstring OCT3
6335 with { variant "FIELDLENGTH(3)" } ;
6362 octetstring more_extension optional }
6363 with { variant "EXTENSION_BIT (yes)" ;};
6371 octetstring more_extension optional }
6372 with { variant "EXTENSION_BIT (yes)"};
6380 octetstring more_extension optional }
6381 with { variant "EXTENSION_BIT (yes)"};
6390 Octet2 oct2 optional ,
6391 Octet3 oct3 optional }
6392 with { variant (length1) "LENGTHTO(oct1 , oct2 , oct3 )" }
6400 i := { octstr := '123456'O ,
6403 { data := '0000001'B ,
6404 extensionbit := '0'B ,
6406 { data := '0000001'B ,
6407 extensionbit := '0'B } ,
6408 more_extension := '000080'O } ,
6414 const octetstring o :='123456050101000080'O
6420 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6421 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6423 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
6424 else {setverdict(fail);}
6428 Overall verdict: pass
6434 .*---------------------------------------------------------------------*
6435 :h3. Test of record with EXTENSION_BIT
6436 .*---------------------------------------------------------------------*
6439 <TC- Test of record with EXTENSION_BIT >
6443 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6444 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6449 with { variant "FIELDLENGTH(1)" } ;
6452 with { variant "FIELDLENGTH(7)" } ;
6454 type octetstring OCT3
6455 with { variant "FIELDLENGTH(3)" } ;
6482 octetstring more_extension optional }
6483 with { variant "EXTENSION_BIT (yes)" ;};
6491 octetstring more_extension optional }
6492 with { variant "EXTENSION_BIT (yes)"};
6500 octetstring more_extension optional }
6501 with { variant "EXTENSION_BIT (yes)"};
6510 Octet2 oct2 optional ,
6511 Octet3 oct3 optional }
6512 with { variant (length1) "LENGTHTO(oct1 , oct2 , oct3 )" }
6520 i := { octstr := '123456'O ,
6523 { data := '0000001'B ,
6524 extensionbit := '0'B ,
6526 { data := '0000001'B ,
6527 extensionbit := '0'B } ,
6528 more_extension := '000080'O } ,
6530 { data := '0000010'B ,
6531 extensionbit := '0'B ,
6533 { data := '0000010'B ,
6534 extensionbit := '0'B } ,
6535 more_extension := '000080'O } ,
6540 const octetstring o :='1234560A01010000800202000080'O
6546 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6547 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6549 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
6550 else {setverdict(fail);}
6554 Overall verdict: pass
6561 .*---------------------------------------------------------------------*
6562 :h2.Testing EXTENSION_BIT_GROUP Attribute
6563 .*---------------------------------------------------------------------*
6565 .*---------------------------------------------------------------------*
6566 :h3. EXTENSION_BIT_GROUP(no)
6567 .*---------------------------------------------------------------------*
6570 <TC- EXTENSION_BIT_GROUP(no)>
6574 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6575 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6579 type bitstring BIT1 length(1);
6580 type bitstring BIT7 length(7);
6582 type record RAW_PDU {
6589 }with { variant "EXTENSION_BIT_GROUP(no, field1, ext3)"};
6591 }with {encode "RAW"}
6593 const RAW_PDU i := {'1111111'B, '0'B, '1110000'B, '0'B,'0001111'B,'0'B}
6594 const octetstring o := '7F700F'O
6598 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6599 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6601 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
6605 Overall verdict: pass
6611 .*---------------------------------------------------------------------*
6612 :h3. EXTENSION_BIT_GROUP(yes)
6613 .*---------------------------------------------------------------------*
6616 <TC- EXTENSION_BIT_GROUP(yes)>
6620 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6621 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6625 type bitstring BIT1 length(1);
6626 type bitstring BIT7 length(7);
6628 type record RAW_PDU {
6635 }with { variant "EXTENSION_BIT_GROUP(yes, field1, ext2)"};
6639 const RAW_PDU i := {'1111111'B, '0'B, '1110000'B, '0'B,'0001111'B,'0'B}
6640 const octetstring o := '7FF00F'O
6644 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6645 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6647 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
6651 Overall verdict: pass
6657 .*---------------------------------------------------------------------*
6658 :h3. EXTENSION_BIT_GROUP(yes) - two groups
6659 .*---------------------------------------------------------------------*
6662 <TC- EXTENSION_BIT_GROUP(yes) - two groups>
6665 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6666 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6670 type bitstring BIT1 length(1);
6671 type bitstring BIT7 length(7);
6673 type record RAW_PDU {
6683 }with { variant "EXTENSION_BIT_GROUP(yes, field1, ext2)"
6684 variant "EXTENSION_BIT_GROUP(yes, field3, ext4)"};
6688 const RAW_PDU i := {'1111111'B, '0'B, '1110000'B, '0'B,'0001111'B,'0'B, '1111111'B, '0'B}
6689 const octetstring o := '7FF00FFF'O
6693 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6694 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6696 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
6701 Overall verdict: pass
6708 .*---------------------------------------------------------------------*
6709 :h3. EXTENSION_BIT_GROUP(yes, reverse) - two groups
6710 .*---------------------------------------------------------------------*
6713 <TC- EXTENSION_BIT_GROUP(yes, reverse) - two groups>
6716 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6717 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6721 type bitstring BIT1 length(1);
6722 type bitstring BIT7 length(7);
6724 type record RAW_PDU {
6734 }with { variant "EXTENSION_BIT_GROUP(yes, field1, ext2)"
6735 variant "EXTENSION_BIT_GROUP(reverse, field3, ext4)"};
6739 const RAW_PDU i := {'1111111'B, '0'B, '1110000'B, '0'B,'0001111'B,'0'B, '1111111'B, '0'B}
6740 const octetstring o := '7FF08F7F'O
6744 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6745 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6747 if (enc_RAW_PDU(i) == o) {setverdict(pass);} else {setverdict(fail);}
6752 Overall verdict: pass
6759 .*---------------------------------------------------------------------*
6760 :h2.Testing ALIGN Attribute
6761 .*---------------------------------------------------------------------*
6763 .*---------------------------------------------------------------------*
6764 :h3. ALIGN(right) for octetstring
6765 .*---------------------------------------------------------------------*
6768 <TC- ALIGN(right) for octetstring>
6772 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6773 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6775 type octetstring RAW_PDU
6776 with { encode "RAW";
6777 variant "FIELDLENGTH(4)";
6778 variant "ALIGN (right)"
6781 const RAW_PDU i := '123456'O
6782 const octetstring o := '12345600'O
6786 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6787 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6789 if ((enc_RAW_PDU(i) == o)and((dec_RAW_PDU(o) == i & '00'O))) {setverdict(pass);}
6790 else {setverdict(fail);}
6794 Overall verdict: pass
6800 .*---------------------------------------------------------------------*
6801 :h3. ALIGN(left) for octetstring
6802 .*---------------------------------------------------------------------*
6805 <TC- ALIGN(left) for octetstring>
6809 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6810 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6812 type octetstring RAW_PDU
6813 with { encode "RAW";
6814 variant "FIELDLENGTH(4)";
6815 variant "ALIGN (left)"
6818 const RAW_PDU i := '123456'O
6819 const octetstring o := '00123456'O
6823 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6824 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6826 if ((enc_RAW_PDU(i) == o)and((dec_RAW_PDU(o) =='00'O & i ))) {setverdict(pass);}
6827 else {setverdict(fail);}
6831 Overall verdict: pass
6837 .*---------------------------------------------------------------------*
6838 :h3. ALIGN(right) for bitstring
6839 .*---------------------------------------------------------------------*
6842 <TC- ALIGN(right) for bitstring>
6846 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6847 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6849 type bitstring RAW_PDU
6850 with { encode "RAW";
6851 variant "FIELDLENGTH(16)";
6852 variant "ALIGN (right)"
6855 const RAW_PDU i := '11111111'B
6856 const octetstring o := 'FF00'O
6860 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6861 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6863 if ((enc_RAW_PDU(i) == o)and((dec_RAW_PDU(o) == '00000000'B & i))) {setverdict(pass);}
6864 else {setverdict(fail);}
6868 Overall verdict: pass
6874 .*---------------------------------------------------------------------*
6875 :h3. ALIGN(left) for bitstring
6876 .*---------------------------------------------------------------------*
6879 <TC- ALIGN(left) for bitstring>
6883 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6884 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6886 type bitstring RAW_PDU
6887 with { encode "RAW";
6888 variant "FIELDLENGTH(16)";
6889 variant "ALIGN (left)"
6892 const RAW_PDU i := '11111111'B
6893 const octetstring o := '00FF'O
6897 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6898 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6900 if ((enc_RAW_PDU(i) == o)and((dec_RAW_PDU(o) ==i & '00000000'B ))) {setverdict(pass);}
6901 else {setverdict(fail);}
6905 Overall verdict: pass
6911 .*---------------------------------------------------------------------*
6912 :h2.Testing Compound types
6913 .*---------------------------------------------------------------------*
6915 .*---------------------------------------------------------------------*
6916 :h3. Test of record with integer and octetstring
6917 .*---------------------------------------------------------------------*
6920 <TC- Test of record with integer and octetstring>
6924 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6925 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6931 octetstring octstr }
6932 with { variant (int) "FIELDLENGTH(8)" ;
6933 variant (octstr) "FIELDLENGTH(2)" } ;
6943 const octetstring o := '141234'O
6949 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6950 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6952 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
6953 else {setverdict(fail);}
6957 Overall verdict: pass
6963 .*---------------------------------------------------------------------*
6964 :h3. Test of record with default values in field
6965 .*---------------------------------------------------------------------*
6968 <TC- Test of record with default values in field>
6972 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
6973 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
6979 octetstring octstr }
6980 with { variant (int) "" ;
6981 variant (octstr) "FIELDLENGTH(2)" } ;
6989 const octetstring o := '141234'O
6995 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
6996 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
6998 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
6999 else {setverdict(fail);}
7003 Overall verdict: pass
7009 .*---------------------------------------------------------------------*
7010 :h3. Test of record with bitstring
7011 .*---------------------------------------------------------------------*
7014 <TC- Test of record with bitstring>
7018 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
7019 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
7025 octetstring octstr ,
7029 with { variant (int) "" ;
7030 variant (octstr) "FIELDLENGTH(2)" ;
7031 variant (bit6) "FIELDLENGTH(6)" ;
7032 variant (bit2) "FIELDLENGTH(2)"
7047 const octetstring o := '1412343F'O
7053 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
7054 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
7056 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
7057 else {setverdict(fail);}
7061 Overall verdict: pass
7067 .*---------------------------------------------------------------------*
7068 :h3. Test of record with enumerated and fieldlength calculation
7069 .*---------------------------------------------------------------------*
7072 <TC- Test of record with enumerated and fieldlength calculation>
7076 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
7077 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
7081 type enumerated enum
7082 { zero, first, second, third, fourth, fifth, sixth, seventh, eighth, nineth,
7091 octetstring octstr ,
7098 with {variant (int) "" ;
7099 variant (octstr) "FIELDLENGTH(2)" ;
7100 variant (bit6) "FIELDLENGTH(6)" ;
7101 variant (bit2) "FIELDLENGTH(2)" ;
7102 variant (enum1) "FIELDLENGTH(8)" ;
7103 variant (length1) "LENGTHTO(octN)" ;
7122 const octetstring o := '1412343F0A03123456'O
7128 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
7129 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
7131 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
7132 else {setverdict(fail);}
7136 Overall verdict: pass
7142 .*---------------------------------------------------------------------*
7143 :h3. Test of record called from record
7144 .*---------------------------------------------------------------------*
7147 <TC- Test of record called from record>
7151 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
7152 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
7156 type enumerated enum
7157 { zero, first, second, third, fourth, fifth, sixth, seventh, eighth, nineth,
7159 with { variant ""} ;
7169 with { variant (bit1) "FIELDLENGTH(1)" ;
7170 variant (bit3) "FIELDLENGTH(3)" ;
7171 variant (bit4) "FIELDLENGTH(4)" ;
7172 variant (int) "FIELDLENGTH(16)" ;
7173 variant (length1) "LENGTHTO(octN)" ;
7182 octetstring octstr ,
7191 with { variant (int) "" ;
7192 variant (octstr) "FIELDLENGTH(2)" ;
7193 variant (bit6) "FIELDLENGTH(6)" ;
7194 variant (bit2) "FIELDLENGTH(2)" ;
7195 variant (enum1) "FIELDLENGTH(8)" ;
7196 variant (length1) "LENGTHTO(octN)" ;
7198 variant (length2) "LENGTHTO(rec1)" ;
7214 rec1 := { bit1 := '1'B ,
7225 const octetstring o := '1412343F0A0312345607F1341203FFFFFF'O
7231 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
7232 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
7234 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
7235 else {setverdict(fail);}
7239 Overall verdict: pass
7245 .*---------------------------------------------------------------------*
7246 :h3. Test of union called from record with CROSSTAG
7247 .*---------------------------------------------------------------------*
7250 <TC- Test of union called from record with CROSSTAG>
7254 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
7255 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
7260 type enumerated enum
7261 { zero, first, second, third, fourth, fifth, sixth, seventh, eighth, nineth,
7263 with { variant ""} ;
7273 with { variant (bit1) "FIELDLENGTH(1)" ;
7274 variant (bit3) "FIELDLENGTH(3)" ;
7275 variant (bit4) "FIELDLENGTH(4)" ;
7276 variant (int) "FIELDLENGTH(16)" ;
7277 variant (length1) "LENGTHTO(octN)" ;
7283 type union optionalpart
7289 with { variant (one) "" ;
7291 variant (three) "" ;
7302 octetstring octstr ,
7311 integer opt_part_ptr ,
7312 optionalpart opt_part ,
7315 with { variant (int) "" ;
7316 variant (octstr) "FIELDLENGTH(2)" ;
7317 variant (bit6) "FIELDLENGTH(6)" ;
7318 variant (bit2) "FIELDLENGTH(2)" ;
7319 variant (enum1) "FIELDLENGTH(8)" ;
7320 variant (length1) "LENGTHTO(octN)" ;
7322 variant (length2) "LENGTHTO(rec1)" ;
7325 variant (opt_part_ptr) "POINTERTO ( opt_part)";
7326 variant (opt_part) "CROSSTAG (
7333 variant (eop) "FIELDLENGTH(1)" ;
7348 rec1 := { bit1 := '1'B ,
7353 octN := 'FFFFFF'O } ,
7356 opt_part := { five := 5 } ,
7362 const octetstring o := '1412343F0A0312345607F1341203FFFFFF05010500'O
7368 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
7369 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
7371 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
7372 else {setverdict(fail);}
7376 Overall verdict: pass
7382 .*---------------------------------------------------------------------*
7383 :h3. Test of union called from record with CROSSTAG, OTHERWISE
7384 .*---------------------------------------------------------------------*
7387 <TC- Test of union called from record with CROSSTAG, OTHERWISE>
7391 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
7392 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
7397 type enumerated enum
7398 { zero, first, second, third, fourth, fifth, sixth, seventh, eighth, nineth,
7400 with { variant ""} ;
7410 with { variant (bit1) "FIELDLENGTH(1)" ;
7411 variant (bit3) "FIELDLENGTH(3)" ;
7412 variant (bit4) "FIELDLENGTH(4)" ;
7413 variant (int) "FIELDLENGTH(16)" ;
7414 variant (length1) "LENGTHTO(octN)" ;
7420 type union optionalpart
7426 with { variant (one) "" ;
7428 variant (three) "" ;
7439 octetstring octstr ,
7448 integer opt_part_ptr ,
7449 optionalpart opt_part ,
7452 with { variant (int) "" ;
7453 variant (octstr) "FIELDLENGTH(2)" ;
7454 variant (bit6) "FIELDLENGTH(6)" ;
7455 variant (bit2) "FIELDLENGTH(2)" ;
7456 variant (enum1) "FIELDLENGTH(8)" ;
7457 variant (length1) "LENGTHTO(octN)" ;
7459 variant (length2) "LENGTHTO(rec1)" ;
7462 variant (opt_part_ptr) "POINTERTO ( opt_part)";
7463 variant (opt_part) "CROSSTAG (
7468 five , OTHERWISE ) ";
7470 variant (eop) "FIELDLENGTH(1)" ;
7485 rec1 := { bit1 := '1'B ,
7490 octN := 'FFFFFF'O } ,
7493 opt_part := { five := 5 } ,
7499 const octetstring o := '1412343F0A0312345607F1341203FFFFFF05010500'O
7505 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
7506 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
7508 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
7509 else {setverdict(fail);}
7513 Overall verdict: pass
7521 .*---------------------------------------------------------------------*
7522 :h3. Test of record without specifying the default attributes for fields
7523 .*---------------------------------------------------------------------*
7526 <TC- Test of record without specifying the default attributes for fields>
7530 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
7531 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
7536 type enumerated enum
7537 { zero, first, second, third, fourth, fifth, sixth, seventh, eighth, nineth,
7539 with { variant ""} ;
7549 with { variant (bit1) "FIELDLENGTH(1)" ;
7550 variant (bit3) "FIELDLENGTH(3)" ;
7551 variant (bit4) "FIELDLENGTH(4)" ;
7552 variant (int) "FIELDLENGTH(16)" ;
7553 variant (length1) "LENGTHTO(octN)"
7558 type union optionalpart
7572 octetstring octstr ,
7581 integer opt_part_ptr ,
7582 optionalpart opt_part ,
7585 with { variant (octstr) "FIELDLENGTH(2)" ;
7586 variant (bit6) "FIELDLENGTH(6)" ;
7587 variant (bit2) "FIELDLENGTH(2)" ;
7588 variant (enum1) "FIELDLENGTH(8)" ;
7589 variant (length1) "LENGTHTO(octN)" ;
7590 variant (length2) "LENGTHTO(rec1)" ;
7591 variant (opt_part_ptr) "POINTERTO ( opt_part)";
7592 variant (opt_part) "CROSSTAG (
7599 variant (eop) "FIELDLENGTH(1)" ;
7614 rec1 := { bit1 := '1'B ,
7619 octN := 'FFFFFF'O } ,
7622 opt_part := { five := 5 } ,
7628 const octetstring o := '1412343F0A0312345607F1341203FFFFFF05010500'O
7634 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
7635 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
7637 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
7638 else {setverdict(fail);}
7642 Overall verdict: pass
7648 .*---------------------------------------------------------------------*
7649 :h3. Test of record of called from record
7650 .*---------------------------------------------------------------------*
7653 <TC- Test of record of called from record>
7657 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
7658 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
7665 { octetstring oct1 ,
7668 with { variant (oct1) "FIELDLENGTH(1)";
7669 variant (length2) "LENGTHTO(octN)"
7675 type record of record2 Rec2list
7676 with { variant "" };
7685 with { variant (length1) "LENGTHTO(rec2list)" } ;
7691 i := { length1:= 8 ,
7692 rec2list := { { oct1 := '12'O ,
7702 const octetstring o := '081202345612027890'O
7708 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
7709 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
7711 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
7712 else {setverdict(fail);}
7716 Overall verdict: pass
7722 .*---------------------------------------------------------------------*
7723 :h3. Test of set with TAG
7724 .*---------------------------------------------------------------------*
7727 <TC- Test of set with TAG >
7731 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
7732 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
7739 with { variant ""} ;
7744 octetstring octfield }
7745 with { variant (octfield) "FIELDLENGTH(2)"} ;
7750 bitstring bit8field }
7751 with { variant (bit8field) "FIELDLENGTH(8)"} ;
7760 with { variant "TAG (
7770 i := { octstr := { tag := 2 ,
7771 octfield := '1234'O } ,
7774 bit8 := { tag := 3 ,
7775 bit8field := '11111111'B }
7780 const octetstring o := '010F02123403FF'O
7786 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
7787 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
7789 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
7790 else {setverdict(fail);}
7794 Overall verdict: pass
7800 .*---------------------------------------------------------------------*
7801 :h3. Test of union with TAG , first element called
7802 .*---------------------------------------------------------------------*
7805 <TC- Test of union with TAG , first element called>
7809 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
7810 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
7817 with { variant ""} ;
7822 octetstring octfield }
7823 with { variant (octfield) "FIELDLENGTH(2)"} ;
7828 bitstring bit8field }
7829 with { variant (bit8field) "FIELDLENGTH(8)"} ;
7838 with { variant "TAG (
7848 i := { int := { tag := 1 ,
7854 const octetstring o := '010F'O
7860 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
7861 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
7863 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
7864 else {setverdict(fail);}
7868 Overall verdict: pass
7874 .*---------------------------------------------------------------------*
7875 :h3. Test of union with TAG , second element called
7876 .*---------------------------------------------------------------------*
7879 <TC- Test of union with TAG , second element called>
7883 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
7884 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
7891 with { variant ""} ;
7896 octetstring octfield }
7897 with { variant (octfield) "FIELDLENGTH(2)"} ;
7902 bitstring bit8field }
7903 with { variant (bit8field) "FIELDLENGTH(8)"} ;
7912 with { variant "TAG (
7922 i := { octstr := { tag := 2 ,
7923 octfield := '1234'O }
7928 const octetstring o := '021234'O
7935 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
7936 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
7938 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
7939 else {setverdict(fail);}
7943 Overall verdict: pass
7949 .*---------------------------------------------------------------------*
7950 :h3. Test of union with TAG , third element called
7951 .*---------------------------------------------------------------------*
7954 <TC- Test of union with TAG , third element called>
7958 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
7959 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
7966 with { variant ""} ;
7971 octetstring octfield }
7972 with { variant (octfield) "FIELDLENGTH(2)"} ;
7977 bitstring bit8field }
7978 with { variant (bit8field) "FIELDLENGTH(8)"} ;
7987 with { variant "TAG (
7997 i := { bit8 := { tag := 3 ,
7998 bit8field := '11111111'B }
8003 const octetstring o := '03FF'O
8009 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
8010 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
8012 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
8013 else {setverdict(fail);}
8017 Overall verdict: pass
8023 .*---------------------------------------------------------------------*
8024 :h3. Test of union with TAG , third element called with OTHERWISE
8025 .*---------------------------------------------------------------------*
8028 <TC- Test of union with TAG , third element called with OTHERWISE>
8032 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
8033 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
8040 with { variant ""} ;
8045 octetstring octfield }
8046 with { variant (octfield) "FIELDLENGTH(2)"} ;
8051 bitstring bit8field }
8052 with { variant (bit8field) "FIELDLENGTH(8)"} ;
8061 with { variant "TAG (
8064 field3, OTHERWISE)"};
8070 i := { field3 := { tag := 3,
8071 bit8field := '11111111'B }
8076 const octetstring o := '03FF'O
8082 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
8083 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
8085 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
8086 else {setverdict(fail);}
8090 Overall verdict: pass
8097 .*---------------------------------------------------------------------*
8098 :h3. Test of set of called from record
8099 .*---------------------------------------------------------------------*
8102 <TC- Test of set of called from record>
8106 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
8107 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
8114 { octetstring oct1 ,
8117 with { variant (oct1) "FIELDLENGTH(1)";
8118 variant (length2) "LENGTHTO(octN)"
8122 type set of record2 Rec2list
8123 with { variant "" };
8129 with { variant (length1) "LENGTHTO(rec2list)" } ;
8135 i := { length1:= 8 ,
8136 rec2list := { { oct1 := '12'O ,
8146 const octetstring o := '081202345612027890'O
8152 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
8153 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
8155 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
8156 else {setverdict(fail);}
8160 Overall verdict: pass
8166 .*---------------------------------------------------------------------*
8167 :h3. Test of record with optional field with PRESENCE
8168 .*---------------------------------------------------------------------*
8171 <TC- Test of record with optional field with PRESENCE>
8175 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
8176 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
8181 type enumerated enum
8182 { zero, first, second, third, fourth, fifth, sixth, seventh, eighth, nineth,
8184 with { variant ""} ;
8194 with { variant (bit1) "FIELDLENGTH(1)" ;
8195 variant (bit3) "FIELDLENGTH(3)" ;
8196 variant (bit4) "FIELDLENGTH(4)" ;
8197 variant (int) "FIELDLENGTH(16)" ;
8198 variant (length1) "LENGTHTO(octN)"
8202 type union optionalpart
8212 { octetstring oct1 ,
8215 with { variant (oct1) "FIELDLENGTH(1)";
8216 variant (length2) "LENGTHTO(octN)"
8221 type record of record2 Rec2list
8222 with { variant "" };
8226 octetstring octstr ,
8237 integer opt_part_ptr ,
8238 integer presenceid ,
8239 optionalpart opt_part optional ,
8240 octetstring eop optional }
8242 with { variant (octstr) "FIELDLENGTH(2)" ;
8243 variant (bit6) "FIELDLENGTH(6)" ;
8244 variant (bit2) "FIELDLENGTH(2)" ;
8245 variant (enum1) "FIELDLENGTH(8)" ;
8246 variant (length1) "LENGTHTO(octN)" ;
8247 variant (length2) "LENGTHTO(rec1)" ;
8248 variant (length3) "LENGTHTO(rec2list)"
8249 variant (opt_part_ptr) "POINTERTO ( opt_part)";
8250 variant (opt_part) "PRESENCE (presenceid= 1)" ;
8251 variant (opt_part) "CROSSTAG (
8258 variant (eop) "FIELDLENGTH(1)" ;
8273 rec1 := { bit1 := '1'B ,
8278 octN := 'FFFFFF'O } ,
8280 rec2list := { { oct1 := '12'O ,
8285 octN := '7890'O } } ,
8289 opt_part := { five := 5 } ,
8295 const octetstring o := '1412343F0A0312345607F1341203FFFFFF0812023456120278900502010500'O
8301 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
8302 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
8304 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
8305 else {setverdict(fail);}
8309 Overall verdict: pass
8315 .*---------------------------------------------------------------------*
8316 :h3. Test of record with UNIT
8317 .*---------------------------------------------------------------------*
8320 <TC- Test of record with UNIT>
8324 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
8325 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
8330 with { variant "" } ;
8336 octetstring octstr }
8337 with { variant (length1) "LENGTHTO(octstr)" ;
8338 variant (length1) "UNIT(8)" } ;
8343 i := { length1 := 4 ,
8344 octstr := '12345678'O }
8348 const octetstring o := '0412345678'O
8354 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
8355 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
8357 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
8358 else {setverdict(fail);}
8362 Overall verdict: pass
8368 .*---------------------------------------------------------------------*
8369 :h3. Test of record with PTRUNIT
8370 .*---------------------------------------------------------------------*
8373 <TC- Test of record with PTRUNIT>
8377 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
8378 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
8383 { integer pointer1 ,
8386 octetstring octstr1 ,
8387 octetstring octstr2 ,
8388 octetstring octstr3 }
8389 with { variant (pointer1) "POINTERTO(octstr1)" ;
8390 variant (pointer1) "PTRUNIT(1)" ;
8391 variant (pointer2) "POINTERTO(octstr2)" ;
8392 variant (pointer3) "POINTERTO(octstr3)" ;
8393 variant (octstr1) "FIELDLENGTH(3)" ;
8394 variant (octstr2) "FIELDLENGTH(3)" ;
8395 variant (octstr3) "FIELDLENGTH(3)" ;
8401 i := { pointer1 := 24 ,
8404 octstr1 := '010203'O ,
8405 octstr2 := '040506'O ,
8406 octstr3 := '070809'O }
8410 const octetstring o := '180507010203040506070809'O
8416 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
8417 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
8419 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
8420 else {setverdict(fail);}
8424 Overall verdict: pass
8430 .*---------------------------------------------------------------------*
8431 :h3. Test of record with PTROFFSET
8432 .*---------------------------------------------------------------------*
8435 <TC- Test of record with PTROFFSET>
8439 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
8440 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
8445 { integer pointer1 ,
8448 octetstring octstr1 ,
8449 octetstring octstr2 ,
8450 octetstring octstr3 }
8451 with { variant (pointer1) "POINTERTO(octstr1)" ;
8452 variant (pointer1) "PTROFFSET(0)" ;
8453 variant (pointer2) "POINTERTO(octstr2)" ;
8454 variant (pointer3) "POINTERTO(octstr3)" ;
8455 variant (octstr1) "FIELDLENGTH(3)" ;
8456 variant (octstr2) "FIELDLENGTH(3)" ;
8457 variant (octstr3) "FIELDLENGTH(3)" ;
8463 i := { pointer1 := 3 ,
8466 octstr1 := '010203'O ,
8467 octstr2 := '040506'O ,
8468 octstr3 := '070809'O }
8472 const octetstring o := '030507010203040506070809'O
8478 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
8479 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
8481 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
8482 else {setverdict(fail);}
8486 Overall verdict: pass
8492 .*---------------------------------------------------------------------*
8493 :h2. Complicated structured types
8494 .*---------------------------------------------------------------------*
8496 .*---------------------------------------------------------------------*
8497 :h3. Test of structured types - 1
8498 .*---------------------------------------------------------------------*
8501 <TC- Test of structured types - 1 >
8505 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
8506 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
8510 type record Rec1field
8514 with { variant (bit7) "FIELDLENGTH (7)" ;
8515 variant (bit1) "FIELDLENGTH (1)" ;
8516 variant (oct1) "FIELDLENGTH (1)" ;
8519 type enumerated Enum1
8520 {zero, first, second, third, fourth, fifth }
8521 with { variant "FIELDLENGTH (8)" };
8526 octetstring octstr ,
8528 with { variant (octstr) "FIELDLENGTH (1)" ;
8529 variant (bitstr) "FIELDLENGTH (8)" ;
8533 type record of Rec3 Recof
8534 with { variant "" };
8539 with { variant (length1) "LENGTHTO (octN)" };
8543 type union Rec2content
8547 with { variant "" };
8551 type record Rec2data
8556 Rec2content content }
8557 with { variant (id) "FIELDLENGTH (1)" ;
8558 variant (length1) "LENGTHTO (octN)" ;
8559 variant (length2) "LENGTHTO (content)" ;
8560 variant (content) "CROSSTAG (
8572 type set of Rec2data Rec2datas
8573 with { variant "" };
8579 Rec1field rec1field1 ,
8581 Rec1field rec1field2 ,
8583 with { variant (length1) "LENGTHTO(rec1field1)" ;
8584 variant (length2) "LENGTHTO(rec1field2)"
8590 i := { length1 := 2 ,
8591 rec1field1 := { bit7 := '0000001'B ,
8595 rec1field2 := { bit7 := '0000010'B ,
8598 datas :={ { id := '01'O ,
8602 content := { enum1 := fifth } },
8607 content := { recof := { { int := 1 ,
8609 bitstr := '00000000'B } ,
8612 bitstr := '00000000'B } } } } ,
8617 content := { rec5 := { length1 := 5 ,
8618 octN := '1234567890'O } } } } }
8622 const octetstring o := '0281FF0282FF010212340105020256780601FF0002FF000302901206051234567890'O
8628 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
8629 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
8631 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
8632 else {setverdict(fail);}
8636 Overall verdict: pass
8642 .*---------------------------------------------------------------------*
8643 :h3. Test of structured types - 2
8644 .*---------------------------------------------------------------------*
8647 <TC- Test of structured types - 2 >
8651 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
8652 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
8656 type octetstring end_of_optional_parameters_indicator
8657 with { variant "FIELDLENGTH(1)"};
8659 type integer pointer
8660 with { variant "" };
8663 with { variant "" };
8670 octetstring octN optional }
8671 with { variant (bit4) "FIELDLENGTH(4)" ;
8672 variant (bit1) "FIELDLENGTH(1)" ;
8673 variant (bit3) "FIELDLENGTH(3)" ;
8674 variant (length1) "LENGTHTO(octN)" ;
8682 octetstring octN optional }
8683 with { variant (bit8) "FIELDLENGTH(8)" ;
8684 variant (length1) "LENGTHTO(octN)" ;
8693 octetstring oct2 optional }
8694 with { variant (bit4) "FIELDLENGTH(4)" ;
8695 variant (bit1) "FIELDLENGTH(1)" ;
8696 variant (bit3) "FIELDLENGTH(3)" ;
8697 variant (oct2) "FIELDLENGTH(2)" ;
8704 octetstring oct5 optional }
8705 with { variant (oct5) "FIELDLENGTH(5)"};
8710 type union opt_par_union
8711 { octetstring octstr ,
8715 with { variant (octstr) "FIELDLENGTH(2)" };
8722 with { variant (length1) "LENGTHTO(par)" ;
8723 variant (par) "CROSSTAG(
8731 type set of opt_par optional_part
8732 with { variant "" };
8736 { pointer var_part_ptr,
8737 pointer opt_part_ptr,
8740 optional_part opt_part optional,
8741 end_of_optional_parameters_indicator EndOP optional
8742 } with { variant (var_part_ptr) "POINTERTO (length1)";
8743 variant (opt_part_ptr) "POINTERTO (opt_part)";
8744 variant (length1) "LENGTHTO (rec1)" };
8750 i := { var_part_ptr := 2 ,
8754 opt_part := { { id := 1 , // opt_part := omit
8756 par := { octstr := 'FFFF'O } } } ,
8757 EndOP := '00'O } // EndOP = omit
8761 const octetstring o := '0202000102FFFF00'O
8765 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
8766 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
8768 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
8769 else {setverdict(fail);}
8773 Overall verdict: pass
8779 .*---------------------------------------------------------------------*
8780 :h3. Test of structured types - 3
8781 .*---------------------------------------------------------------------*
8784 <TC- Test of structured types - 3>
8788 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
8789 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
8793 type octetstring end_of_optional_parameters_indicator
8794 with { variant "FIELDLENGTH(1)"};
8796 type integer pointer
8797 with { variant "" };
8800 with { variant "" };
8807 octetstring octN optional }
8808 with { variant (bit4) "FIELDLENGTH(4)" ;
8809 variant (bit1) "FIELDLENGTH(1)" ;
8810 variant (bit3) "FIELDLENGTH(3)" ;
8811 variant (length1) "LENGTHTO(octN)" ;
8819 octetstring octN optional }
8820 with { variant (bit8) "FIELDLENGTH(8)" ;
8821 variant (length1) "LENGTHTO(octN)" ;
8830 octetstring oct2 optional }
8831 with { variant (bit4) "FIELDLENGTH(4)" ;
8832 variant (bit1) "FIELDLENGTH(1)" ;
8833 variant (bit3) "FIELDLENGTH(3)" ;
8834 variant (oct2) "FIELDLENGTH(2)" ;
8841 octetstring oct5 optional }
8842 with { variant (oct5) "FIELDLENGTH(5)"};
8847 type union opt_par_union
8848 { octetstring octstr ,
8852 with { variant (octstr) "FIELDLENGTH(2)" };
8859 with { variant (length1) "LENGTHTO(par)" ;
8860 variant (par) "CROSSTAG(
8868 type set of opt_par optional_part
8869 with { variant "" };
8873 { pointer var_part_ptr,
8874 pointer opt_part_ptr,
8877 optional_part opt_part optional,
8878 end_of_optional_parameters_indicator EndOP optional
8879 } with { variant (var_part_ptr) "POINTERTO (length1)";
8880 variant (opt_part_ptr) "POINTERTO (opt_part)";
8881 variant (length1) "LENGTHTO (rec1)" };
8887 i := { var_part_ptr := 2 ,
8890 rec1 := { bit4 := '1111'B , // rec1 := omit
8894 octN := '123456'O } , // octN := omit
8895 opt_part := { { id := 1 , // opt_part := omit
8897 par := { octstr := 'FFFF'O } } } ,
8898 EndOP := '00'O } // EndOP = omit
8902 const octetstring o := '0207051F031234560102FFFF00'O
8906 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
8907 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
8909 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
8910 else {setverdict(fail);}
8914 Overall verdict: pass
8920 .*---------------------------------------------------------------------*
8921 :h3. Test of structured types - 4
8922 .*---------------------------------------------------------------------*
8925 <TC- Test of structured types - 4>
8929 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
8930 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
8934 type octetstring end_of_optional_parameters_indicator
8935 with { variant "FIELDLENGTH(1)"};
8937 type integer pointer
8938 with { variant "" };
8941 with { variant "" };
8948 octetstring octN optional }
8949 with { variant (bit4) "FIELDLENGTH(4)" ;
8950 variant (bit1) "FIELDLENGTH(1)" ;
8951 variant (bit3) "FIELDLENGTH(3)" ;
8952 variant (length1) "LENGTHTO(octN)" ;
8960 octetstring octN optional }
8961 with { variant (bit8) "FIELDLENGTH(8)" ;
8962 variant (length1) "LENGTHTO(octN)" ;
8971 octetstring oct2 optional }
8972 with { variant (bit4) "FIELDLENGTH(4)" ;
8973 variant (bit1) "FIELDLENGTH(1)" ;
8974 variant (bit3) "FIELDLENGTH(3)" ;
8975 variant (oct2) "FIELDLENGTH(2)" ;
8982 octetstring oct5 optional }
8983 with { variant (oct5) "FIELDLENGTH(5)"};
8988 type union opt_par_union
8989 { octetstring octstr ,
8993 with { variant (octstr) "FIELDLENGTH(2)" };
9000 with { variant (length1) "LENGTHTO(par)" ;
9001 variant (par) "CROSSTAG(
9009 type set of opt_par optional_part
9010 with { variant "" };
9014 { pointer var_part_ptr,
9015 pointer opt_part_ptr,
9018 optional_part opt_part optional,
9019 end_of_optional_parameters_indicator EndOP optional
9020 } with { variant (var_part_ptr) "POINTERTO (length1)";
9021 variant (opt_part_ptr) "POINTERTO (opt_part)";
9022 variant (length1) "LENGTHTO (rec1)" };
9028 i := { var_part_ptr := 2 ,
9031 rec1 := { bit4 := '1111'B , // rec1 := omit
9035 octN := '123456'O } , // octN := omit
9036 opt_part := { { id := 1 , // opt_part := omit
9038 par := { octstr := 'FFFF'O } } ,
9041 par := { rec2:= { bit8 := '00000000'B ,
9043 octN := '1234567890'O } } } , // octN := omit
9046 par := { rec3 := { bit4 := '1111'B ,
9050 oct2 := '1234'O } } } , // oct2 := omit
9053 par := { rec4:= { int := 15 ,
9054 oct5 := '1234567890'O } } } } , // oct5 := omit
9055 EndOP := '00'O } // EndOP = omit
9059 const octetstring o := '0207051F031234560102FFFF02070005123456789003048F0F123404060F123456789000'O
9063 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
9064 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
9066 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
9067 else {setverdict(fail);}
9071 Overall verdict: pass
9077 .*---------------------------------------------------------------------*
9078 :h3. Test of structured types - 5
9079 .*---------------------------------------------------------------------*
9082 <TC- Test of structured types - 5>
9086 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
9087 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
9091 type octetstring end_of_optional_parameters_indicator
9092 with { variant "FIELDLENGTH(1)"};
9094 type integer pointer
9095 with { variant "" };
9098 with { variant "" };
9105 octetstring octN optional }
9106 with { variant (bit4) "FIELDLENGTH(4)" ;
9107 variant (bit1) "FIELDLENGTH(1)" ;
9108 variant (bit3) "FIELDLENGTH(3)" ;
9109 variant (length1) "LENGTHTO(octN)" ;
9116 octetstring octN optional }
9117 with { variant (bit8) "FIELDLENGTH(8)" ;
9118 variant (length1) "LENGTHTO(octN)" ;
9127 octetstring oct2 optional }
9128 with { variant (bit4) "FIELDLENGTH(4)" ;
9129 variant (bit1) "FIELDLENGTH(1)" ;
9130 variant (bit3) "FIELDLENGTH(3)" ;
9131 variant (oct2) "FIELDLENGTH(2)" ;
9138 octetstring oct5 optional }
9139 with { variant (oct5) "FIELDLENGTH(5)" };
9142 type union opt_par_union
9143 { octetstring octstr ,
9147 with { variant (octstr) "FIELDLENGTH(2)" };
9154 with { variant (length1) "LENGTHTO(par)" ;
9155 variant (par) "CROSSTAG(
9165 type set of opt_par optional_part
9166 with { variant "" };
9170 { pointer var_part_ptr,
9171 pointer opt_part_ptr,
9174 optional_part opt_part optional,
9175 end_of_optional_parameters_indicator EndOP optional
9176 } with { variant (var_part_ptr) "POINTERTO (length1)";
9177 variant (opt_part_ptr) "POINTERTO (opt_part)";
9178 variant (length1) "LENGTHTO (rec1)" };
9183 i := { var_part_ptr := 2 ,
9186 rec1 := { bit4 := '1111'B , // rec1 := omit
9191 opt_part := { { id := 1 , // opt_part := omit
9193 par := { octstr := 'FFFF'O } } ,
9196 par := { rec2:= { bit8 := '00000000'B ,
9198 octN := '1234567890'O } } } , // octN := omit
9201 par := { rec3 := { bit4 := '1111'B ,
9205 oct2 := '1234'O } } } , // oct2 := omit
9208 par := { rec4:= { int := 15 ,
9209 oct5 := '1234567890'O } } } } , // oct5 := omit
9210 EndOP := '00'O } // EndOP = omit
9214 const octetstring o := '0204021F000102FFFF02070005123456789003048F0F123404060F123456789000'O
9218 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
9219 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
9221 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
9222 else {setverdict(fail);}
9226 Overall verdict: pass
9232 .*---------------------------------------------------------------------*
9233 :h3. Test of structured types - 6
9234 .*---------------------------------------------------------------------*
9237 <TC- Test of structured types - 6>
9241 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
9242 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
9246 type octetstring end_of_optional_parameters_indicator
9247 with { variant "FIELDLENGTH(1)"};
9249 type integer pointer
9250 with { variant "" };
9253 with { variant "" };
9260 octetstring octN optional }
9261 with { variant (bit4) "FIELDLENGTH(4)" ;
9262 variant (bit1) "FIELDLENGTH(1)" ;
9263 variant (bit3) "FIELDLENGTH(3)" ;
9264 variant (length1) "LENGTHTO(octN)" ;
9270 octetstring octN optional }
9271 with { variant (bit8) "FIELDLENGTH(8)" ;
9272 variant (length1) "LENGTHTO(octN)" ;
9281 octetstring oct2 optional }
9282 with { variant (bit4) "FIELDLENGTH(4)" ;
9283 variant (bit1) "FIELDLENGTH(1)" ;
9284 variant (bit3) "FIELDLENGTH(3)" ;
9285 variant (oct2) "FIELDLENGTH(2)" ;
9292 octetstring oct5 optional }
9293 with { variant (oct5) "FIELDLENGTH(5)"};
9295 type union opt_par_union
9296 { octetstring octstr ,
9300 with { variant (octstr) "FIELDLENGTH(2)" };
9307 with { variant (length1) "LENGTHTO(par)" ;
9308 variant (par) "CROSSTAG(
9316 type set of opt_par optional_part
9317 with { variant "" };
9321 { pointer var_part_ptr,
9322 pointer opt_part_ptr,
9325 optional_part opt_part optional,
9326 end_of_optional_parameters_indicator EndOP optional
9327 } with { variant (var_part_ptr) "POINTERTO (length1)";
9328 variant (opt_part_ptr) "POINTERTO (opt_part)";
9329 variant (length1) "LENGTHTO (rec1)" };
9335 i := { var_part_ptr := 2 ,
9339 opt_part := { { id := 1 , // opt_part := omit
9341 par := { octstr := 'FFFF'O } } ,
9344 par := { rec2:= { bit8 := '00000000'B ,
9346 octN := '1234567890'O } } } , // octN := omit
9349 par := { rec3 := { bit4 := '1111'B ,
9353 oct2 := '1234'O } } } , // oct2 := omit
9356 par := { rec4:= { int := 15 ,
9357 oct5 := '1234567890'O } } } } , // oct5 := omit
9358 EndOP := '00'O } // EndOP = omit
9362 const octetstring o := '0202000102FFFF02070005123456789003048F0F123404060F123456789000'O
9366 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
9367 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
9369 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
9370 else {setverdict(fail);}
9374 Overall verdict: pass
9380 .*---------------------------------------------------------------------*
9381 :h3. Test of structured types - 7
9382 .*---------------------------------------------------------------------*
9385 <TC- Test of structured types - 7 >
9389 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
9390 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
9394 type octetstring end_of_optional_parameters_indicator
9395 with { variant "FIELDLENGTH(1)"};
9397 type integer pointer
9398 with { variant "" };
9401 with { variant "" };
9408 octetstring octN optional }
9409 with { variant (bit4) "FIELDLENGTH(4)" ;
9410 variant (bit1) "FIELDLENGTH(1)" ;
9411 variant (bit3) "FIELDLENGTH(3)" ;
9412 variant (length1) "LENGTHTO(octN)" ;
9419 octetstring octN optional }
9420 with { variant (bit8) "FIELDLENGTH(8)" ;
9421 variant (length1) "LENGTHTO(octN)" ;
9430 octetstring oct2 optional }
9431 with { variant (bit4) "FIELDLENGTH(4)" ;
9432 variant (bit1) "FIELDLENGTH(1)" ;
9433 variant (bit3) "FIELDLENGTH(3)" ;
9434 variant (oct2) "FIELDLENGTH(2)" ;
9441 octetstring oct5 optional }
9442 with { variant (oct5) "FIELDLENGTH(5)"};
9445 type union opt_par_union
9446 { octetstring octstr ,
9450 with { variant (octstr) "FIELDLENGTH(2)" };
9457 with { variant (length1) "LENGTHTO(par)" ;
9458 variant (par) "CROSSTAG(
9466 type set of opt_par optional_part
9467 with { variant "" };
9471 { pointer var_part_ptr,
9472 pointer opt_part_ptr,
9475 optional_part opt_part optional,
9476 end_of_optional_parameters_indicator EndOP optional
9477 } with { variant (var_part_ptr) "POINTERTO (length1)";
9478 variant (opt_part_ptr) "POINTERTO (opt_part)";
9479 variant (length1) "LENGTHTO (rec1)" };
9485 i := { var_part_ptr := 2 ,
9489 opt_part := { { id := 1 , // opt_part := omit
9491 par := { octstr := 'FFFF'O } } ,
9494 par := { rec2:= { bit8 := '00000000'B ,
9496 octN := omit } } } ,
9499 par := { rec3 := { bit4 := '1111'B ,
9503 oct2 := omit } } } ,
9506 par := { rec4:= { int := 15 ,
9507 oct5 := omit } } } } ,
9508 EndOP := '00'O } // EndOP = omit
9512 const octetstring o := '0202000102FFFF0202000003028F0F04010F00'O
9516 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
9517 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
9519 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
9520 else {setverdict(fail);}
9524 Overall verdict: pass
9530 .*---------------------------------------------------------------------*
9531 :h3. Test of structured types - 8
9532 .*---------------------------------------------------------------------*
9535 <TC- Test of structured types - 8>
9539 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
9540 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
9544 type octetstring end_of_optional_parameters_indicator
9545 with { variant "FIELDLENGTH(1)"};
9547 type integer pointer
9548 with { variant "" };
9551 with { variant "" };
9558 octetstring octN optional }
9559 with { variant (bit4) "FIELDLENGTH(4)" ;
9560 variant (bit1) "FIELDLENGTH(1)" ;
9561 variant (bit3) "FIELDLENGTH(3)" ;
9562 variant (length1) "LENGTHTO(octN)" ;
9569 octetstring octN optional }
9570 with { variant (bit8) "FIELDLENGTH(8)" ;
9571 variant (length1) "LENGTHTO(octN)" ;
9580 octetstring oct2 optional }
9581 with { variant (bit4) "FIELDLENGTH(4)" ;
9582 variant (bit1) "FIELDLENGTH(1)" ;
9583 variant (bit3) "FIELDLENGTH(3)" ;
9584 variant (oct2) "FIELDLENGTH(2)" ;
9590 octetstring oct5 optional }
9591 with { variant (oct5) "FIELDLENGTH(5)"};
9594 type union opt_par_union
9595 { octetstring octstr ,
9599 with { variant (octstr) "FIELDLENGTH(2)" };
9606 with { variant (length1) "LENGTHTO(par)" ;
9607 variant (par) "CROSSTAG(
9615 type set of opt_par optional_part
9616 with { variant "" };
9620 { pointer var_part_ptr,
9621 pointer opt_part_ptr,
9624 optional_part opt_part optional,
9625 end_of_optional_parameters_indicator EndOP optional
9626 } with { variant (var_part_ptr) "POINTERTO (length1)";
9627 variant (opt_part_ptr) "POINTERTO (opt_part)";
9628 variant (length1) "LENGTHTO (rec1)" };
9634 i := { var_part_ptr := 2 ,
9639 EndOP := '00'O } // EndOP = omit
9643 const octetstring o := '02000000'O
9647 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
9648 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
9650 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
9651 else {setverdict(fail);}
9655 Overall verdict: pass
9661 .*---------------------------------------------------------------------*
9662 :h3. Test of structured types - 9
9663 .*---------------------------------------------------------------------*
9666 <TC- Test of structured types - 9>
9670 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
9671 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
9675 type octetstring end_of_optional_parameters_indicator
9676 with { variant "FIELDLENGTH(1)"};
9678 type integer pointer
9679 with { variant "" };
9682 with { variant "" };
9689 octetstring octN optional }
9690 with { variant (bit4) "FIELDLENGTH(4)" ;
9691 variant (bit1) "FIELDLENGTH(1)" ;
9692 variant (bit3) "FIELDLENGTH(3)" ;
9693 variant (length1) "LENGTHTO(octN)" ;
9700 octetstring octN optional }
9701 with { variant (bit8) "FIELDLENGTH(8)" ;
9702 variant (length1) "LENGTHTO(octN)" ;
9711 octetstring oct2 optional }
9712 with { variant (bit4) "FIELDLENGTH(4)" ;
9713 variant (bit1) "FIELDLENGTH(1)" ;
9714 variant (bit3) "FIELDLENGTH(3)" ;
9715 variant (oct2) "FIELDLENGTH(2)" ;
9722 octetstring oct5 optional }
9723 with { variant (oct5) "FIELDLENGTH(5)"};
9726 type union opt_par_union
9727 { octetstring octstr ,
9731 with { variant (octstr) "FIELDLENGTH(2)" };
9738 with { variant (length1) "LENGTHTO(par)" ;
9739 variant (par) "CROSSTAG(
9747 type set of opt_par optional_part
9748 with { variant "" };
9752 { pointer var_part_ptr,
9753 pointer opt_part_ptr,
9756 optional_part opt_part optional,
9757 end_of_optional_parameters_indicator EndOP optional
9758 } with { variant (var_part_ptr) "POINTERTO (length1)";
9759 variant (opt_part_ptr) "POINTERTO (opt_part)";
9760 variant (length1) "LENGTHTO (rec1)" };
9766 i := { var_part_ptr := 2 ,
9775 const octetstring o := '020000'O
9779 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
9780 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
9782 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
9783 else {setverdict(fail);}
9787 Overall verdict: pass
9793 .*---------------------------------------------------------------------*
9794 :h3. Test of structured types - 10
9795 .*---------------------------------------------------------------------*
9798 <TC- Test of structured types - 10>
9802 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
9803 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
9807 type integer Pointer
9808 with { variant "" } ;
9810 type octetstring EndOfOptionalPart
9811 with { variant "FIELDLENGTH(1)" } ;
9814 with { variant "" } ;
9817 with { variant "FIELDLENGTH(1)" } ;
9820 with { variant "FIELDLENGTH(7)" } ;
9822 type octetstring OCT3
9823 with { variant "FIELDLENGTH(3)" } ;
9826 with { variant "FIELDLENGTH(2)" } ;
9828 type enumerated MessageType
9829 { e1(1), e2(2), e3(3), e4(4), e5(5) }
9830 with { variant "FIELDLENGTH(8)" }
9833 type enumerated ParamName
9834 { name1(1), name2(2), name3(3), name4(4) }
9835 with { variant "FIELDLENGTH(8)" }
9838 { ParamName paramName ,
9839 integer paramLength ,
9845 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
9848 { ParamName paramName ,
9849 integer paramLength ,
9855 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
9858 { ParamName paramName ,
9859 integer paramLength ,
9865 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
9868 { ParamName paramName ,
9869 integer paramLength ,
9875 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
9877 type set Optional_part
9878 { Param1 param1 optional ,
9879 Param2 param2 optional ,
9880 Param3 param3 optional ,
9881 Param4 param4 optional }
9882 with { variant "TAG (
9883 param1 , paramName= name1;
9884 param2 , paramName= name2;
9885 param3 , paramName= name3;
9886 param4 , paramName= name4 )" }
9891 { MessageType messageType ,
9901 Optional_part opt_part ,
9902 EndOfOptionalPart eop optional }
9903 with { variant (pointer1) "POINTERTO(length1)";
9904 variant (pointer2) "POINTERTO(opt_part)" ;
9905 variant (length1) "LENGTHTO(octN)"
9907 //Note, that optional part itself is mandatory but it may be empty!
9912 { MessageType messageType ,
9922 Optional_part opt_part ,
9923 EndOfOptionalPart eop optional }
9924 with { variant (pointer1) "POINTERTO(length1)";
9925 variant (pointer2) "POINTERTO(opt_part)" ;
9926 variant (length1) "LENGTHTO(octN)"
9928 //Note, that optional part itself is mandatory but it may be empty!
9933 { MessageType messageType ,
9943 Optional_part opt_part ,
9944 EndOfOptionalPart eop optional }
9945 with { variant (pointer1) "POINTERTO(length1)";
9946 variant (pointer2) "POINTERTO(opt_part)" ;
9947 variant (length1) "LENGTHTO(octN)"
9949 //Note, that optional part itself is mandatory but it may be empty!
9954 { MessageType messageType ,
9964 Optional_part opt_part ,
9965 EndOfOptionalPart eop optional }
9966 with { variant (pointer1) "POINTERTO(length1)";
9967 variant (pointer2) "POINTERTO(opt_part)" ;
9968 variant (length1) "LENGTHTO(octN)"
9970 //Note, that optional part itself is mandatory but it may be empty!
9975 { MessageType messageType ,
9985 Optional_part opt_part ,
9986 EndOfOptionalPart eop optional }
9987 with { variant (pointer1) "POINTERTO(length1)";
9988 variant (pointer2) "POINTERTO(opt_part)" ;
9989 variant (length1) "LENGTHTO(octN)"
9991 //Note, that optional part itself is mandatory but it may be empty!
10001 with { variant "TAG (
10002 elem1 , messageType = e1 ;
10003 elem2 , messageType = e2 ;
10004 elem3 , messageType = e3 ;
10005 elem4 , messageType = e4 ;
10006 elem5 , messageType = e5 ) "
10009 }with{encode "RAW"}
10013 { messageType := e1 ,
10014 octstr := '123456'O ,
10015 bit7 := '0000000'B ,
10022 octN := '1234567890'O ,
10025 { paramName := name1 ,
10027 octstr := '123456'O ,
10028 bit7 := '0000000'B ,
10033 { paramName := name4 ,
10035 octstr := '123456'O ,
10036 bit7 := '0000000'B ,
10041 { paramName := name3 ,
10043 octstr := '123456'O ,
10044 bit7 := '0000000'B ,
10049 { paramName := name2 ,
10051 octstr := '123456'O ,
10052 bit7 := '0000000'B ,
10060 const octetstring o := '0112345680FF010207051234567890010612345680FF01020612345680FF01030612345680FF01040612345680FF0100'O
10066 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
10067 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
10069 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
10070 else {setverdict(fail);}
10074 Overall verdict: pass
10080 .*---------------------------------------------------------------------*
10081 :h3. Test of structured types - 11
10082 .*---------------------------------------------------------------------*
10085 <TC- Test of structured types - 11>
10089 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
10090 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
10094 type integer Pointer
10095 with { variant "" } ;
10097 type octetstring EndOfOptionalPart
10098 with { variant "FIELDLENGTH(1)" } ;
10101 with { variant "" } ;
10103 type bitstring BIT1
10104 with { variant "FIELDLENGTH(1)" } ;
10106 type bitstring BIT7
10107 with { variant "FIELDLENGTH(7)" } ;
10109 type octetstring OCT3
10110 with { variant "FIELDLENGTH(3)" } ;
10112 type hexstring HEX2
10113 with { variant "FIELDLENGTH(2)" } ;
10115 type enumerated MessageType
10116 { e1(1), e2(2), e3(3), e4(4), e5(5) }
10117 with { variant "FIELDLENGTH(8)" }
10120 type enumerated ParamName
10121 { name1(1), name2(2), name3(3), name4(4) }
10122 with { variant "FIELDLENGTH(8)" }
10125 { ParamName paramName ,
10126 integer paramLength ,
10132 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10135 { ParamName paramName ,
10136 integer paramLength ,
10142 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10145 { ParamName paramName ,
10146 integer paramLength ,
10152 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10155 { ParamName paramName ,
10156 integer paramLength ,
10162 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10164 type set Optional_part
10165 { Param1 param1 optional ,
10166 Param2 param2 optional ,
10167 Param3 param3 optional ,
10168 Param4 param4 optional }
10169 with { variant "TAG (
10170 param1 , paramName= name1;
10171 param2 , paramName= name2;
10172 param3 , paramName= name3;
10173 param4 , paramName= name4 )" }
10177 { MessageType messageType ,
10187 Optional_part opt_part ,
10188 EndOfOptionalPart eop optional }
10189 with { variant (pointer1) "POINTERTO(length1)";
10190 variant (pointer2) "POINTERTO(opt_part)" ;
10191 variant (length1) "LENGTHTO(octN)"
10193 //Note, that optional part itself is mandatory but it may be empty!
10198 { MessageType messageType ,
10208 Optional_part opt_part ,
10209 EndOfOptionalPart eop optional }
10210 with { variant (pointer1) "POINTERTO(length1)";
10211 variant (pointer2) "POINTERTO(opt_part)" ;
10212 variant (length1) "LENGTHTO(octN)"
10214 //Note, that optional part itself is mandatory but it may be empty!
10219 { MessageType messageType ,
10229 Optional_part opt_part ,
10230 EndOfOptionalPart eop optional }
10231 with { variant (pointer1) "POINTERTO(length1)";
10232 variant (pointer2) "POINTERTO(opt_part)" ;
10233 variant (length1) "LENGTHTO(octN)"
10235 //Note, that optional part itself is mandatory but it may be empty!
10240 { MessageType messageType ,
10250 Optional_part opt_part ,
10251 EndOfOptionalPart eop optional }
10252 with { variant (pointer1) "POINTERTO(length1)";
10253 variant (pointer2) "POINTERTO(opt_part)" ;
10254 variant (length1) "LENGTHTO(octN)"
10256 //Note, that optional part itself is mandatory but it may be empty!
10261 { MessageType messageType ,
10271 Optional_part opt_part ,
10272 EndOfOptionalPart eop optional }
10273 with { variant (pointer1) "POINTERTO(length1)";
10274 variant (pointer2) "POINTERTO(opt_part)" ;
10275 variant (length1) "LENGTHTO(octN)"
10277 //Note, that optional part itself is mandatory but it may be empty!
10287 with { variant "TAG (
10288 elem1 , messageType = e1 ;
10289 elem2 , messageType = e2 ;
10290 elem3 , messageType = e3 ;
10291 elem4 , messageType = e4 ;
10292 elem5 , messageType = e5 ) "
10295 }with{encode "RAW"}
10299 { messageType := e1 ,
10300 octstr := '123456'O ,
10301 bit7 := '0000000'B ,
10308 octN := '1234567890'O ,
10318 const octetstring o := '0112345680FF010207051234567890'O
10324 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
10325 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
10327 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
10328 else {setverdict(fail);}
10332 Overall verdict: pass
10338 .*---------------------------------------------------------------------*
10339 :h3. Test of structured types - 12
10340 .*---------------------------------------------------------------------*
10343 <TC- Test of structured types - 12 >
10347 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
10348 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
10352 type integer Pointer
10353 with { variant "" } ;
10355 type octetstring EndOfOptionalPart
10356 with { variant "FIELDLENGTH(1)" } ;
10359 with { variant "" } ;
10361 type bitstring BIT1
10362 with { variant "FIELDLENGTH(1)" } ;
10364 type bitstring BIT7
10365 with { variant "FIELDLENGTH(7)" } ;
10367 type octetstring OCT3
10368 with { variant "FIELDLENGTH(3)" } ;
10370 type hexstring HEX2
10371 with { variant "FIELDLENGTH(2)" } ;
10373 type enumerated MessageType
10374 { e1(1), e2(2), e3(3), e4(4), e5(5) }
10375 with { variant "FIELDLENGTH(8)" }
10378 type enumerated ParamName
10379 { name1(1), name2(2), name3(3), name4(4) }
10380 with { variant "FIELDLENGTH(8)" }
10383 { ParamName paramName ,
10384 integer paramLength ,
10390 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10393 { ParamName paramName ,
10394 integer paramLength ,
10400 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10403 { ParamName paramName ,
10404 integer paramLength ,
10410 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10413 { ParamName paramName ,
10414 integer paramLength ,
10420 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10422 type set Optional_part
10423 { Param1 param1 optional ,
10424 Param2 param2 optional ,
10425 Param3 param3 optional ,
10426 Param4 param4 optional }
10427 with { variant "TAG (
10428 param1 , paramName= name1;
10429 param2 , paramName= name2;
10430 param3 , paramName= name3;
10431 param4 , paramName= name4 )" }
10435 { MessageType messageType ,
10445 Optional_part opt_part ,
10446 EndOfOptionalPart eop optional }
10447 with { variant (pointer1) "POINTERTO(length1)";
10448 variant (pointer2) "POINTERTO(opt_part)" ;
10449 variant (length1) "LENGTHTO(octN)"
10451 //Note, that optional part itself is mandatory but it may be empty!
10456 { MessageType messageType ,
10466 Optional_part opt_part ,
10467 EndOfOptionalPart eop optional }
10468 with { variant (pointer1) "POINTERTO(length1)";
10469 variant (pointer2) "POINTERTO(opt_part)" ;
10470 variant (length1) "LENGTHTO(octN)"
10472 //Note, that optional part itself is mandatory but it may be empty!
10477 { MessageType messageType ,
10487 Optional_part opt_part ,
10488 EndOfOptionalPart eop optional }
10489 with { variant (pointer1) "POINTERTO(length1)";
10490 variant (pointer2) "POINTERTO(opt_part)" ;
10491 variant (length1) "LENGTHTO(octN)"
10493 //Note, that optional part itself is mandatory but it may be empty!
10498 { MessageType messageType ,
10508 Optional_part opt_part ,
10509 EndOfOptionalPart eop optional }
10510 with { variant (pointer1) "POINTERTO(length1)";
10511 variant (pointer2) "POINTERTO(opt_part)" ;
10512 variant (length1) "LENGTHTO(octN)"
10514 //Note, that optional part itself is mandatory but it may be empty!
10519 { MessageType messageType ,
10529 Optional_part opt_part ,
10530 EndOfOptionalPart eop optional }
10531 with { variant (pointer1) "POINTERTO(length1)";
10532 variant (pointer2) "POINTERTO(opt_part)" ;
10533 variant (length1) "LENGTHTO(octN)"
10535 //Note, that optional part itself is mandatory but it may be empty!
10545 with { variant "TAG (
10546 elem1 , messageType = e1 ;
10547 elem2 , messageType = e2 ;
10548 elem3 , messageType = e3 ;
10549 elem4 , messageType = e4 ;
10550 elem5 , messageType = e5 ) "
10553 }with{encode "RAW"}
10557 { messageType := e1 ,
10558 octstr := '123456'O ,
10559 bit7 := '0000000'B ,
10566 octN := '1234567890'O ,
10569 { paramName := name1 ,
10571 octstr := '123456'O ,
10572 bit7 := '0000000'B ,
10577 { paramName := name4 ,
10579 octstr := '123456'O ,
10580 bit7 := '0000000'B ,
10585 { paramName := name3 ,
10587 octstr := '123456'O ,
10588 bit7 := '0000000'B ,
10597 const octetstring o := '0112345680FF010207051234567890010612345680FF01030612345680FF01040612345680FF0100'O
10603 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
10604 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
10606 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
10607 else {setverdict(fail);}
10611 Overall verdict: pass
10617 .*---------------------------------------------------------------------*
10618 :h3. Test of structured types - 13
10619 .*---------------------------------------------------------------------*
10622 <TC- Test of structured types - 13 >
10626 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
10627 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
10631 type integer Pointer
10632 with { variant "" } ;
10634 type octetstring EndOfOptionalPart
10635 with { variant "FIELDLENGTH(1)" } ;
10638 with { variant "" } ;
10640 type bitstring BIT1
10641 with { variant "FIELDLENGTH(1)" } ;
10643 type bitstring BIT7
10644 with { variant "FIELDLENGTH(7)" } ;
10646 type octetstring OCT3
10647 with { variant "FIELDLENGTH(3)" } ;
10649 type hexstring HEX2
10650 with { variant "FIELDLENGTH(2)" } ;
10652 type enumerated MessageType
10653 { e1(1), e2(2), e3(3), e4(4), e5(5) }
10654 with { variant "FIELDLENGTH(8)" }
10657 type enumerated ParamName
10658 { name1(1), name2(2), name3(3), name4(4) }
10659 with { variant "FIELDLENGTH(8)" }
10662 { ParamName paramName ,
10663 integer paramLength ,
10669 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10672 { ParamName paramName ,
10673 integer paramLength ,
10679 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10682 { ParamName paramName ,
10683 integer paramLength ,
10689 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10692 { ParamName paramName ,
10693 integer paramLength ,
10699 with {variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10701 type set Optional_part
10702 { Param1 param1 optional ,
10703 Param2 param2 optional ,
10704 Param3 param3 optional ,
10705 Param4 param4 optional }
10706 with { variant "TAG (
10707 param1 , paramName= name1;
10708 param2 , paramName= name2;
10709 param3 , paramName= name3;
10710 param4 , paramName= name4 )" }
10714 { MessageType messageType ,
10724 Optional_part opt_part ,
10725 EndOfOptionalPart eop optional }
10726 with { variant (pointer1) "POINTERTO(length1)";
10727 variant (pointer2) "POINTERTO(opt_part)" ;
10728 variant (length1) "LENGTHTO(octN)"
10730 //Note, that optional part itself is mandatory but it may be empty!
10735 { MessageType messageType ,
10745 Optional_part opt_part ,
10746 EndOfOptionalPart eop optional }
10747 with { variant (pointer1) "POINTERTO(length1)";
10748 variant (pointer2) "POINTERTO(opt_part)" ;
10749 variant (length1) "LENGTHTO(octN)"
10751 //Note, that optional part itself is mandatory but it may be empty!
10756 { MessageType messageType ,
10766 Optional_part opt_part ,
10767 EndOfOptionalPart eop optional }
10768 with { variant (pointer1) "POINTERTO(length1)";
10769 variant (pointer2) "POINTERTO(opt_part)" ;
10770 variant (length1) "LENGTHTO(octN)"
10772 //Note, that optional part itself is mandatory but it may be empty!
10777 { MessageType messageType ,
10787 Optional_part opt_part ,
10788 EndOfOptionalPart eop optional }
10789 with { variant (pointer1) "POINTERTO(length1)";
10790 variant (pointer2) "POINTERTO(opt_part)" ;
10791 variant (length1) "LENGTHTO(octN)"
10793 //Note, that optional part itself is mandatory but it may be empty!
10798 { MessageType messageType ,
10808 Optional_part opt_part ,
10809 EndOfOptionalPart eop optional }
10810 with { variant (pointer1) "POINTERTO(length1)";
10811 variant (pointer2) "POINTERTO(opt_part)" ;
10812 variant (length1) "LENGTHTO(octN)"
10814 //Note, that optional part itself is mandatory but it may be empty!
10824 with { variant "TAG (
10825 elem1 , messageType = e1 ;
10826 elem2 , messageType = e2 ;
10827 elem3 , messageType = e3 ;
10828 elem4 , messageType = e4 ;
10829 elem5 , messageType = e5 ) "
10832 }with{encode "RAW"}
10836 { messageType := e2 ,
10837 octstr := '123456'O ,
10838 bit7 := '0000000'B ,
10845 octN := '1234567890'O ,
10848 { paramName := name1 ,
10850 octstr := '123456'O ,
10851 bit7 := '0000000'B ,
10857 { paramName := name3 ,
10859 octstr := '123456'O ,
10860 bit7 := '0000000'B ,
10869 const octetstring o := '0212345680FF010207051234567890010612345680FF01030612345680FF01'O
10875 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
10876 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
10878 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
10879 else {setverdict(fail);}
10883 Overall verdict: pass
10889 .*---------------------------------------------------------------------*
10890 :h3. Test of structured types - 14
10891 .*---------------------------------------------------------------------*
10894 <TC- Test of structured types - 14>
10898 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
10899 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
10903 type integer Pointer
10904 with { variant "" } ;
10906 type octetstring EndOfOptionalPart
10907 with { variant "FIELDLENGTH(1)" } ;
10910 with { variant "" } ;
10912 type bitstring BIT1
10913 with { variant "FIELDLENGTH(1)" } ;
10915 type bitstring BIT7
10916 with { variant "FIELDLENGTH(7)" } ;
10918 type octetstring OCT3
10919 with { variant "FIELDLENGTH(3)" } ;
10921 type hexstring HEX2
10922 with { variant "FIELDLENGTH(2)" } ;
10924 type enumerated MessageType
10925 { e1(1), e2(2), e3(3), e4(4), e5(5) }
10926 with { variant "FIELDLENGTH(8)" }
10929 type enumerated ParamName
10930 { name1(1), name2(2), name3(3), name4(4) }
10931 with { variant "FIELDLENGTH(8)" }
10934 { ParamName paramName ,
10935 integer paramLength ,
10941 with { variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10944 { ParamName paramName ,
10945 integer paramLength ,
10951 with { variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10954 { ParamName paramName ,
10955 integer paramLength ,
10961 with { variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
10965 { BIT1 field2indic ,
10967 with { variant "" }
10974 with { variant "" }
10979 { ParamName paramName ,
10980 integer paramLength ,
10985 with { variant (field2) "CROSSTAG(
10986 present_ , field1.field2indic = '1'B ;
10987 absent , field1.field2indic = '0'B ; )" ;
10988 variant (paramLength) "LENGTHTO(field1 , field2 , hexstr , int )" }
10990 type set Optional_part
10991 { Param1 param1 optional ,
10992 Param2 param2 optional ,
10993 Param3 param3 optional ,
10994 Param4 param4 optional }
10995 with { variant "TAG (
10996 param1 , paramName= name1;
10997 param2 , paramName= name2;
10998 param3 , paramName= name3;
10999 param4 , paramName= name4 )" }
11003 { MessageType messageType ,
11013 Optional_part opt_part ,
11014 EndOfOptionalPart eop optional }
11015 with { variant (pointer1) "POINTERTO(length1)";
11016 variant (pointer2) "POINTERTO(opt_part)" ;
11017 variant (length1) "LENGTHTO(octN)"
11019 //Note, that optional part itself is mandatory but it may be empty!
11024 { MessageType messageType ,
11034 Optional_part opt_part ,
11035 EndOfOptionalPart eop optional }
11036 with { variant (pointer1) "POINTERTO(length1)";
11037 variant (pointer2) "POINTERTO(opt_part)" ;
11038 variant (length1) "LENGTHTO(octN)"
11040 //Note, that optional part itself is mandatory but it may be empty!
11045 { MessageType messageType ,
11055 Optional_part opt_part ,
11056 EndOfOptionalPart eop optional }
11057 with { variant (pointer1) "POINTERTO(length1)";
11058 variant (pointer2) "POINTERTO(opt_part)" ;
11059 variant (length1) "LENGTHTO(octN)"
11061 //Note, that optional part itself is mandatory but it may be empty!
11066 { MessageType messageType ,
11076 Optional_part opt_part ,
11077 EndOfOptionalPart eop optional }
11078 with { variant (pointer1) "POINTERTO(length1)";
11079 variant (pointer2) "POINTERTO(opt_part)" ;
11080 variant (length1) "LENGTHTO(octN)"
11082 //Note, that optional part itself is mandatory but it may be empty!
11087 { MessageType messageType ,
11097 Optional_part opt_part ,
11098 EndOfOptionalPart eop optional }
11099 with { variant (pointer1) "POINTERTO(length1)";
11100 variant (pointer2) "POINTERTO(opt_part)" ;
11101 variant (length1) "LENGTHTO(octN)"
11103 //Note, that optional part itself is mandatory but it may be empty!
11113 with { variant "TAG (
11114 elem1 , messageType = e1 ;
11115 elem2 , messageType = e2 ;
11116 elem3 , messageType = e3 ;
11117 elem4 , messageType = e4 ;
11118 elem5 , messageType = e5 ) "
11121 } with{encode "RAW"}
11125 { messageType := e2 ,
11126 octstr := '123456'O ,
11127 bit7 := '0000000'B ,
11134 octN := '1234567890'O ,
11137 { paramName := name1 ,
11139 octstr := '123456'O ,
11140 bit7 := '0000000'B ,
11145 { paramName := name4 ,
11148 { field2indic := '1'B ,
11149 field2par := '0000000'B } ,
11151 { present_ := 'FFFFFF'O } ,
11155 { paramName := name3 ,
11157 octstr := '123456'O ,
11158 bit7 := '0000000'B ,
11167 const octetstring o :='0212345680FF010207051234567890010612345680FF01030612345680FF01040601FFFFFF210100'O
11172 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
11173 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
11175 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
11176 else {setverdict(fail);}
11180 Overall verdict: pass
11186 .*---------------------------------------------------------------------*
11187 :h3. Test of structured types - 15
11188 .*---------------------------------------------------------------------*
11191 <TC- Test of structured types - 15>
11195 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
11196 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
11200 type integer Pointer
11201 with { variant "" } ;
11203 type octetstring EndOfOptionalPart
11204 with { variant "FIELDLENGTH(1)" } ;
11207 with { variant "" } ;
11209 type bitstring BIT1
11210 with { variant "FIELDLENGTH(1)" } ;
11212 type bitstring BIT7
11213 with { variant "FIELDLENGTH(7)" } ;
11215 type octetstring OCT3
11216 with { variant "FIELDLENGTH(3)" } ;
11218 type hexstring HEX2
11219 with { variant "FIELDLENGTH(2)" } ;
11221 type enumerated MessageType
11222 { e1(1), e2(2), e3(3), e4(4), e5(5) }
11223 with { variant "FIELDLENGTH(8)" }
11226 type enumerated ParamName
11227 { name1(1), name2(2), name3(3), name4(4) }
11228 with { variant "FIELDLENGTH(8)" }
11231 { ParamName paramName ,
11232 integer paramLength ,
11238 with { variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
11241 { ParamName paramName ,
11242 integer paramLength ,
11248 with { variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
11251 { ParamName paramName ,
11252 integer paramLength ,
11258 with { variant (paramLength) "LENGTHTO(octstr , bit7 , bit1 , hexstr , int )" }
11262 { BIT1 field2indic ,
11264 with { variant "" }
11270 with { variant "" }
11274 { ParamName paramName ,
11275 integer paramLength ,
11280 with { variant (field2) "CROSSTAG(
11281 present_ , field1.field2indic = '1'B ;
11282 absent , field1.field2indic = '0'B ; )" ;
11283 variant (paramLength) "LENGTHTO(field1 , field2 , hexstr , int )" }
11285 type set Optional_part
11286 { Param1 param1 optional ,
11287 Param2 param2 optional ,
11288 Param3 param3 optional ,
11289 Param4 param4 optional }
11290 with { variant "TAG (
11291 param1 , paramName= name1;
11292 param2 , paramName= name2;
11293 param3 , paramName= name3;
11294 param4 , paramName= name4 )" }
11298 { MessageType messageType ,
11308 Optional_part opt_part ,
11309 EndOfOptionalPart eop optional }
11310 with { variant (pointer1) "POINTERTO(length1)";
11311 variant (pointer2) "POINTERTO(opt_part)" ;
11312 variant (length1) "LENGTHTO(octN)"
11314 //Note, that optional part itself is mandatory but it may be empty!
11319 { MessageType messageType ,
11329 Optional_part opt_part ,
11330 EndOfOptionalPart eop optional }
11331 with { variant (pointer1) "POINTERTO(length1)";
11332 variant (pointer2) "POINTERTO(opt_part)" ;
11333 variant (length1) "LENGTHTO(octN)"
11335 //Note, that optional part itself is mandatory but it may be empty!
11340 { MessageType messageType ,
11350 Optional_part opt_part ,
11351 EndOfOptionalPart eop optional }
11352 with { variant (pointer1) "POINTERTO(length1)";
11353 variant (pointer2) "POINTERTO(opt_part)" ;
11354 variant (length1) "LENGTHTO(octN)"
11356 //Note, that optional part itself is mandatory but it may be empty!
11361 { MessageType messageType ,
11371 Optional_part opt_part ,
11372 EndOfOptionalPart eop optional }
11373 with { variant (pointer1) "POINTERTO(length1)";
11374 variant (pointer2) "POINTERTO(opt_part)" ;
11375 variant (length1) "LENGTHTO(octN)"
11377 //Note, that optional part itself is mandatory but it may be empty!
11382 { MessageType messageType ,
11392 Optional_part opt_part ,
11393 EndOfOptionalPart eop optional }
11394 with { variant (pointer1) "POINTERTO(length1)";
11395 variant (pointer2) "POINTERTO(opt_part)" ;
11396 variant (length1) "LENGTHTO(octN)"
11398 //Note, that optional part itself is mandatory but it may be empty!
11408 with { variant "TAG (
11409 elem1 , messageType = e1 ;
11410 elem2 , messageType = e2 ;
11411 elem3 , messageType = e3 ;
11412 elem4 , messageType = e4 ;
11413 elem5 , messageType = e5 ) "
11416 }with{encode "RAW"}
11420 { messageType := e2 ,
11421 octstr := '123456'O ,
11422 bit7 := '0000000'B ,
11429 octN := '1234567890'O ,
11432 { paramName := name1 ,
11434 octstr := '123456'O ,
11435 bit7 := '0000000'B ,
11440 { paramName := name4 ,
11443 { field2indic := '0'B ,
11444 field2par := '0000000'B } ,
11446 { absent := '000000'O } ,
11450 { paramName := name3 ,
11452 octstr := '123456'O ,
11453 bit7 := '0000000'B ,
11462 const octetstring o :='0212345680FF010207051234567890010612345680FF01030612345680FF01040600000000210100'O
11468 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
11469 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
11471 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
11472 else {setverdict(fail);}
11476 Overall verdict: pass
11482 .*---------------------------------------------------------------------*
11483 :h3. Test of structured types - 16
11484 .*---------------------------------------------------------------------*
11487 <TC- Test of structured types - 16>
11491 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
11492 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
11496 type bitstring BIT4
11497 with { variant "FIELDLENGTH(4)" } ;
11499 type octetstring OCT2
11500 with { variant "FIELDLENGTH(2)" } ;
11502 type octetstring OCT3
11503 with { variant "FIELDLENGTH(3)" } ;
11510 with { variant ""};
11516 with { variant ""};
11519 type record RAW_PDU
11523 with { variant (union2) "CROSSTAG(
11524 field1 , id = '0001'B ;
11525 field2 , id = '0010'B ;
11526 field3 , id = '0011'B ;
11527 field4 , { id = '0100'B ,
11529 id = '0111'B } )" ;
11530 variant (union1) "CROSSTAG(
11531 field1 , { id = '0001'B ,
11534 field2 , { id = '0100'B ,
11536 id = '0111'B } )" } ;
11538 }with{encode "RAW"}
11544 i := { id := '0001'B ,
11545 union1 := { field1 := '0000'B } ,
11546 union2 := { field1 := '123456'O } }
11550 const octetstring o :='01123456'O
11556 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
11557 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
11559 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
11560 else {setverdict(fail);}
11564 Overall verdict: pass
11570 .*---------------------------------------------------------------------*
11571 :h3. Test of structured types - 17
11572 .*---------------------------------------------------------------------*
11575 <TC- Test of structured types - 17>
11579 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
11580 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
11584 type bitstring BIT4
11585 with { variant "FIELDLENGTH(4)" } ;
11587 type octetstring OCT2
11588 with { variant "FIELDLENGTH(2)" } ;
11590 type octetstring OCT3
11591 with { variant "FIELDLENGTH(3)" } ;
11599 with { variant ""};
11605 with { variant ""};
11608 type record RAW_PDU
11612 with { variant (union2) "CROSSTAG(
11613 field1 , id = '0001'B ;
11614 field2 , id = '0010'B ;
11615 field3 , id = '0011'B ;
11616 field4 , { id = '0100'B ,
11618 id = '0111'B } )" ;
11619 variant (union1) "CROSSTAG(
11620 field1 , { id = '0001'B ,
11623 field2 , { id = '0100'B ,
11625 id = '0111'B } )" } ;
11627 }with{encode "RAW"}
11630 i := { id := '0111'B ,
11631 union1 := { field2 := '1111'B } ,
11632 union2 := { field4 := '1234'O } }
11636 const octetstring o :='F71234'O
11642 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
11643 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
11645 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
11646 else {setverdict(fail);}
11650 Overall verdict: pass
11656 .*---------------------------------------------------------------------*
11657 :h2. Testing RAW update
11658 .*---------------------------------------------------------------------*
11659 .*---------------------------------------------------------------------*
11660 :h3. Raw update test 1
11661 .*---------------------------------------------------------------------*
11664 <TC- Raw update test 1>
11668 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
11669 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
11673 type bitstring BIT4
11674 with { variant "FIELDLENGTH(4)" } ;
11676 type octetstring OCT2
11677 with { variant "FIELDLENGTH(2)" } ;
11684 with { variant ""};
11690 with { variant ""};
11693 type record RAW_PDU
11697 with { variant (union2) "CROSSTAG(
11698 field1 , id = '0001'B ;
11699 field2 , id = '0010'B ;
11700 field3 , id = '0011'B ;
11701 field4 , { id = '0100'B ,
11703 id = '0111'B } )" ;
11704 variant (union1) "CROSSTAG(
11705 field1 , { id = '0001'B ,
11708 field2 , { id = '0100'B ,
11710 id = '0111'B } )" } ;
11712 }with{encode "RAW"}
11715 i := { union2 := { field4 := '1234'O } ,
11716 union1 := { field2 := '1111'B },
11721 const octetstring o :='12347F'O
11727 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
11728 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
11730 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
11731 else {setverdict(fail);}
11735 Overall verdict: pass
11741 .*---------------------------------------------------------------------*
11742 :h3. Raw update test 2
11743 .*---------------------------------------------------------------------*
11746 <TC- Raw update test 2>
11750 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
11751 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
11755 type bitstring BIT4
11756 with { variant "FIELDLENGTH(4)" } ;
11758 type octetstring OCT2
11759 with { variant "FIELDLENGTH(2)" } ;
11767 with { variant ""};
11773 with { variant ""};
11776 type record RAW_PDU
11780 with { variant (union2) "CROSSTAG(
11781 field1 , id = '0001'B ;
11782 field2 , id = '0010'B ;
11783 field3 , id = '0011'B ;
11784 field4 , { id = '0100'B ,
11786 id = '0111'B } )" ;
11787 variant (union1) "CROSSTAG(
11788 field1 , { id = '0001'B ,
11791 field2 , { id = '0100'B ,
11793 id = '0111'B } )" } ;
11795 }with{encode "RAW"}
11798 i := { union2 := { field1 := '1234'O } ,
11799 union1 := { field1 := '1111'B },
11804 const octetstring o :='12341F'O
11810 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
11811 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
11813 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
11814 else {setverdict(fail);}
11818 Overall verdict: pass
11824 .*---------------------------------------------------------------------*
11825 :h3. Raw update test 3
11826 .*---------------------------------------------------------------------*
11829 <TC- Raw update test 3>
11833 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
11834 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
11838 type bitstring BIT4
11839 with { variant "FIELDLENGTH(4)" } ;
11841 type bitstring BIT8
11842 with { variant "FIELDLENGTH(8)"};
11844 type octetstring OCT2
11845 with { variant "FIELDLENGTH(2)" } ;
11853 with { variant ""};
11859 with { variant ""};
11862 type record RAW_PDU
11867 with { variant (union2) "CROSSTAG(
11868 field1 , id = '0001'B ;
11869 field2 , id = '0010'B ;
11870 field3 , id = '0011'B ;
11871 field4 , { id = '0100'B ,
11873 id = '0111'B } )" ;
11874 variant (union1) "CROSSTAG(
11875 field1 , { id = '0001'B ,
11878 field2 , { id = '0100'B ,
11880 id = '0111'B } )" } ;
11882 }with{encode "RAW"}
11885 i := { union2 := { field1 := '1234'O } ,
11886 union1 := { field1 := '1111'B },
11887 outfiller := '00001000'B,
11892 const octetstring o :='12348F10'O
11898 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
11899 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
11901 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
11902 else {setverdict(fail);}
11906 Overall verdict: pass
11912 .*---------------------------------------------------------------------*
11913 :h3. Raw update test 4
11914 .*---------------------------------------------------------------------*
11917 <TC- Raw update test 4>
11921 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
11922 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
11926 type bitstring BIT4
11927 with { variant "FIELDLENGTH(4)" } ;
11929 type bitstring BIT8
11930 with { variant "FIELDLENGTH(8)"};
11932 type octetstring OCT2
11933 with { variant "FIELDLENGTH(2)" } ;
11941 with { variant ""};
11947 with { variant ""};
11950 type record RAW_PDU
11955 with { variant (union2) "CROSSTAG(
11956 field1 , id = '0001'B ;
11957 field2 , id = '0010'B ;
11958 field3 , id = '0011'B ;
11959 field4 , { id = '0100'B ,
11961 id = '0111'B } )" ;
11962 variant (union1) "CROSSTAG(
11963 field1 , { id = '0001'B ,
11966 field2 , { id = '0100'B ,
11968 id = '0111'B } )" } ;
11970 }with{encode "RAW"}
11973 i := { union2 := { field1 := '1234'O } ,
11974 outfiller := '00001000'B,
11975 union1 := { field1 := '1111'B },
11979 const octetstring o :='1234081F'O
11983 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
11984 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
11986 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
11987 else {setverdict(fail);}
11991 Overall verdict: pass
11997 .*---------------------------------------------------------------------*
11998 :h3. Raw update test 5
11999 .*---------------------------------------------------------------------*
12002 <TC- Raw update test 5>
12006 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12007 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12011 type bitstring BIT4
12012 with { variant "FIELDLENGTH(4)" } ;
12014 type bitstring BIT8
12015 with { variant "FIELDLENGTH(8)"};
12017 type octetstring OCT2
12018 with { variant "FIELDLENGTH(2)" } ;
12026 with { variant ""};
12032 with { variant ""};
12035 type record RAW_PDU
12040 with { variant (union2) "CROSSTAG(
12041 field1 , id = '0001'B ;
12042 field2 , id = '0010'B ;
12043 field3 , id = '0011'B ;
12044 field4 , { id = '0100'B ,
12046 id = '0111'B } )" ;
12047 variant (union1) "CROSSTAG(
12048 field1 , { id = '0001'B ,
12051 field2 , { id = '0100'B ,
12053 id = '0111'B } )" } ;
12055 }with{encode "RAW"}
12058 i := { outfiller := '00001000'B,
12059 union2 := { field1 := '1234'O } ,
12060 union1 := { field1 := '1111'B },
12064 const octetstring o :='0812341F'O
12068 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12069 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12071 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12072 else {setverdict(fail);}
12076 Overall verdict: pass
12082 .*---------------------------------------------------------------------*
12083 :h3. Raw update test 6
12084 .*---------------------------------------------------------------------*
12087 <TC- Raw update test 6>
12091 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12092 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12096 type bitstring BIT4
12097 with { variant "FIELDLENGTH(4)" } ;
12099 type octetstring OCT2
12100 with { variant "FIELDLENGTH(2)" } ;
12108 with { variant ""};
12114 with { variant ""};
12117 type record RAW_PDU
12121 with { variant (union2) "CROSSTAG(
12122 field1 , id = '0001'B ;
12123 field2 , id = '0010'B ;
12124 field3 , id = '0011'B ;
12125 field4 , { id = '0100'B ,
12127 id = '0111'B } )" ;
12128 variant (union1) "CROSSTAG(
12129 field1 , { id = '0001'B ,
12132 field2 , { id = '0100'B ,
12134 id = '0111'B } )" } ;
12136 }with{encode "RAW"}
12139 i := { union2 := { field1 := '1234'O },
12141 union1 := { field1 := '1111'B }
12145 const octetstring o :='1234F1'O
12149 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12150 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12152 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12153 else {setverdict(fail);}
12157 Overall verdict: pass
12163 .*---------------------------------------------------------------------*
12164 :h3. Raw update test 7
12165 .*---------------------------------------------------------------------*
12168 <TC- Raw update test 7>
12172 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12173 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12177 type bitstring BIT4
12178 with { variant "FIELDLENGTH(4)" } ;
12180 type octetstring OCT2
12181 with { variant "FIELDLENGTH(2)" } ;
12189 with { variant ""};
12195 with { variant ""};
12198 type record RAW_PDU
12202 with { variant (union2) "CROSSTAG(
12203 field1 , id = '0001'B ;
12204 field2 , id = '0010'B ;
12205 field3 , id = '0011'B ;
12206 field4 , { id = '0100'B ,
12208 id = '0111'B } )" ;
12209 variant (union1) "CROSSTAG(
12210 field1 , { id = '0001'B ,
12213 field2 , { id = '0100'B ,
12215 id = '0111'B } )" } ;
12217 }with{encode "RAW"}
12220 i := { union2 := { field4 := '1234'O },
12222 union1 := { field2 := '1111'B }
12226 const octetstring o :='1234F5'O
12230 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12231 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12233 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12234 else {setverdict(fail);}
12238 Overall verdict: pass
12244 .*---------------------------------------------------------------------*
12245 :h3. Raw update test 8
12246 .*---------------------------------------------------------------------*
12249 <TC- Raw update test 8>
12253 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12254 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12258 type bitstring BIT4
12259 with { variant "FIELDLENGTH(4)" } ;
12261 type octetstring OCT2
12262 with { variant "FIELDLENGTH(2)" } ;
12270 with { variant ""};
12276 with { variant ""};
12279 type record RAW_PDU
12286 with { variant (union2_1) "CROSSTAG(
12287 field1 , id = '0001'B ;
12288 field2 , id = '0010'B ;
12289 field3 , id = '0011'B ;
12290 field4 , { id = '0100'B ,
12292 id = '0111'B } )" ;
12293 variant (union1_1) "CROSSTAG(
12294 field1 , { id = '0001'B ,
12297 field2 , { id = '0100'B ,
12300 variant (union2_2) "CROSSTAG(field1 , id2 = '0001'B ;
12301 field2 , OTHERWISE)";
12302 variant (union1_2) "CROSSTAG(field1 , id2 = '0001'B ;
12303 field2 , OTHERWISE)" ;
12306 }with{encode "RAW"}
12309 i := { union2_1 := {field1 := '1234'O },
12310 union2_2 := { field1 := '1234'O},
12311 union1_1 := { field1 := '1111'B },
12313 union1_2 := { field1 := '1111'B},
12318 const octetstring o :='123412341F1F'O
12322 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12323 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12325 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12326 else {setverdict(fail);}
12330 Overall verdict: pass
12336 .*---------------------------------------------------------------------*
12337 :h3. Raw update test 9
12338 .*---------------------------------------------------------------------*
12341 <TC- Raw update test 9>
12345 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12346 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12350 type bitstring BIT4
12351 with { variant "FIELDLENGTH(4)" } ;
12353 type octetstring OCT2
12354 with { variant "FIELDLENGTH(2)" } ;
12360 with { variant ""};
12365 } with { variant ""};
12368 type record RAW_PDU
12373 with { variant (union1) "CROSSTAG(field1 , id2 = '0001'B ;
12374 field2 , OTHERWISE)" ;
12375 variant (union3) "CROSSTAG( field1, id = '0001'B;
12376 field2, OTHERWISE)"
12379 }with{encode "RAW"}
12382 i := { id := '0001'B,
12383 union3 := {field1 := '1110'B},
12384 union1 := { field1 := '1111'B},
12389 const octetstring o :='E11F'O
12393 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12394 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12396 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12397 else {setverdict(fail);}
12401 Overall verdict: pass
12407 .*---------------------------------------------------------------------*
12408 :h3. Raw update test 10
12409 .*---------------------------------------------------------------------*
12412 <TC- Raw update test 10>
12416 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12417 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12421 type bitstring BIT4
12422 with { variant "FIELDLENGTH(4)" } ;
12424 type octetstring OCT2
12425 with { variant "FIELDLENGTH(2)" } ;
12441 } with {variant ""}
12443 type record RAW_PDU
12449 with { variant (union1) "CROSSTAG(field1 , id2 = '0001'B ;
12450 field2 , OTHERWISE)" ;
12451 variant (union3) "CROSSTAG( field1, id = '0001'B;
12452 field2, OTHERWISE)";
12453 variant (union2) "CROSSTAG(field1 , id2 = '0001'B ;
12454 field2 , OTHERWISE)"} ;
12456 }with{encode "RAW"}
12459 i := { union2 := {field1 := '1234'O},
12461 union3 := {field1 := '1110'B},
12462 union1 := { field1 := '1111'B},
12467 const octetstring o :='1234E11F'O
12471 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12472 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12474 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12475 else {setverdict(fail);}
12479 Overall verdict: pass
12485 .*---------------------------------------------------------------------*
12486 :h3. Raw update test 11
12487 .*---------------------------------------------------------------------*
12490 <TC- Raw update test 11>
12494 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12495 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12499 type bitstring BIT4
12500 with { variant "FIELDLENGTH(4)" } ;
12502 type octetstring OCT2
12503 with { variant "FIELDLENGTH(2)" } ;
12515 } with {variant ""}
12517 type record RAW_PDU
12519 octetstring field1,
12526 with { variant (union1) "CROSSTAG(field1 , id2 = '0001'B ;
12527 field2 , OTHERWISE)" ;
12528 variant (union3) "CROSSTAG( field1, id = '0001'B;
12529 field2, OTHERWISE)";
12530 variant (union2) "CROSSTAG(field1 , id2 = '0001'B ;
12531 field2 , OTHERWISE)";
12532 variant (union2.field1, union2.field2) "FIELDLENGTH(2)"
12535 }with{encode "RAW"}
12538 i := { union2 := {field1 := '1234'O},
12540 union3 := {field1 := '1110'B},
12541 union1 := { field1 := '1111'B},
12546 const octetstring o :='1234E11F'O
12550 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12551 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12553 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12554 else {setverdict(fail);}
12558 Overall verdict: pass
12564 .*---------------------------------------------------------------------*
12565 :h3. Raw update test 12
12566 .*---------------------------------------------------------------------*
12569 <TC- Raw update test 12>
12573 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12574 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12582 } with { variant "FIELDLENGTH(8)"};
12584 type record RAW_PDU{
12586 bitstring ABCxxxxx,
12587 integer PDU_length,
12588 octetstring id optional
12589 } with { variant (PDU_length) "FIELDLENGTH(16)";
12590 variant (ABCxxxxx) "FIELDLENGTH(8)";
12591 variant (id) "PRESENCE( {
12592 ABCxxxxx = '10000000'B,
12593 ABCxxxxx = '10100000'B} )";
12594 variant (code) "CROSSTAG(
12596 field2, id = '02'O;
12597 field3, id = '03'O; )"};
12599 }with{encode "RAW"}
12602 i := { code := { field1 := 16},
12603 ABCxxxxx := '00000000'B,
12608 const octetstring o :='10001000'O
12612 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12613 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12615 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12616 else {setverdict(fail);}
12620 Overall verdict: pass
12626 .*---------------------------------------------------------------------*
12627 :h3. Raw update test 13
12628 .*---------------------------------------------------------------------*
12631 <TC- Raw update test 13>
12635 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12636 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12644 } with { variant "FIELDLENGTH(8)"};
12646 type record RAW_PDU{
12648 bitstring ABCxxxxx,
12649 integer PDU_length,
12650 octetstring id optional
12651 } with { variant (PDU_length) "FIELDLENGTH(16)";
12652 variant (ABCxxxxx) "FIELDLENGTH(8)";
12653 variant (id) "PRESENCE( {
12654 ABCxxxxx = '10000000'B,
12655 ABCxxxxx = '10100000'B} )";
12656 variant (code) "CROSSTAG(
12658 field2, id = '02'O;
12659 field3, id = '03'O; )"};
12661 }with{encode "RAW"}
12664 i := { code := { field2 := 16},
12665 ABCxxxxx := '10000000'B,
12670 const octetstring o :='1080100002'O
12674 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12675 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12677 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12678 else {setverdict(fail);}
12682 Overall verdict: pass
12688 .*---------------------------------------------------------------------*
12689 :h3. Raw update test 14
12690 .*---------------------------------------------------------------------*
12693 <TC- Raw update test 14>
12697 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12698 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12703 enumerated {e1a (0), e1b (1), e1c (2)} E1,
12704 enumerated {e2a (1), e2b (2), e2c (3)} E2,
12705 enumerated {e3a (2), e3b (3), e3c (4), e3d (5)} E3
12706 } with { variant (E1,E2,E3) "FIELDLENGTH(32)";
12707 variant (E1,E2,E3) "BYTEORDER(last)";
12708 variant (E1,E2,E3) "COMP(2scompl)"};
12710 type integer UINT24 (0..16777215)
12711 with {variant "FIELDLENGTH(24)";
12712 variant "BYTEORDER(last)"};
12714 type enumerated Identifier {
12718 } with {variant "FIELDLENGTH(32)";
12719 variant "BYTEORDER(last)";
12720 variant "COMP(2scompl)"};
12722 type record RAW_PDU{
12724 bitstring ABCxxxxx,
12726 Identifier id optional,
12727 octetstring payload optional
12728 } with { variant (ABCxxxxx) "FIELDLENGTH(8)";
12729 variant (id) "PRESENCE( {
12730 ABCxxxxx = '10000000'B,
12731 ABCxxxxx = '10100000'B} )";
12732 variant (code) "CROSSTAG(
12735 E3, id = id_E3; )";
12736 variant (PDU_length) "LENGTHTO(code,ABCxxxxx,PDU_length,id,payload)"};
12738 }with{encode "RAW"}
12741 i := { code := {E1 := e1c},
12742 ABCxxxxx := '00000000'B,
12748 const octetstring o :='0000000200000008'O ;
12752 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12753 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12755 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12756 else {setverdict(fail);}
12760 Overall verdict: pass
12766 .*---------------------------------------------------------------------*
12767 :h3. Raw update test 15
12768 .*---------------------------------------------------------------------*
12771 <TC- Raw update test 15>
12775 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12776 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12781 enumerated {e1a (0), e1b (1), e1c (2)} E1,
12782 enumerated {e2a (1), e2b (2), e2c (3)} E2,
12783 enumerated {e3a (2), e3b (3), e3c (4), e3d (5)} E3
12784 } with { variant (E1,E2,E3) "FIELDLENGTH(32)";
12785 variant (E1,E2,E3) "BYTEORDER(last)";
12786 variant (E1,E2,E3) "COMP(2scompl)"};
12788 type integer UINT24 (0..16777215)
12789 with {variant "FIELDLENGTH(24)";
12790 variant "BYTEORDER(last)"};
12792 type enumerated Identifier {
12796 } with {variant "FIELDLENGTH(32)";
12797 variant "BYTEORDER(last)";
12798 variant "COMP(2scompl)"};
12800 type record RAW_PDU{
12802 bitstring ABCxxxxx,
12804 Identifier id optional,
12805 octetstring payload optional
12806 } with { variant (ABCxxxxx) "FIELDLENGTH(8)";
12807 variant (id) "PRESENCE( {
12808 ABCxxxxx = '10000000'B,
12809 ABCxxxxx = '10100000'B} )";
12810 variant (code) "CROSSTAG(
12813 E3, id = id_E3; )";
12814 variant (PDU_length) "LENGTHTO(code,ABCxxxxx,PDU_length,id,payload)"};
12816 }with{encode "RAW"}
12819 i := { code := {E2 := e2b},
12820 ABCxxxxx := '10000000'B,
12823 payload := 'ABCD'O}
12826 const octetstring o :='000000028000000E00000001ABCD'O ;
12830 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12831 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12833 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12834 else {setverdict(fail);}
12838 Overall verdict: pass
12844 .*---------------------------------------------------------------------*
12845 :h3. Raw update test 16
12846 .*---------------------------------------------------------------------*
12849 <TC- Raw update test 16>
12853 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12854 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12859 enumerated {e1a (0), e1b (1), e1c (2)} E1,
12860 enumerated {e2a (1), e2b (2), e2c (3)} E2,
12861 enumerated {e3a (2), e3b (3), e3c (4), e3d (5)} E3
12862 } with { variant (E1,E2,E3) "FIELDLENGTH(32)";
12863 variant (E1,E2,E3) "BYTEORDER(last)";
12864 variant (E1,E2,E3) "COMP(2scompl)"};
12866 type integer UINT24 (0..16777215)
12867 with {variant "FIELDLENGTH(24)";
12868 variant "BYTEORDER(last)"};
12870 type enumerated Identifier {
12874 } with {variant "FIELDLENGTH(32)";
12875 variant "BYTEORDER(last)";
12876 variant "COMP(2scompl)"};
12878 type record RAW_PDU{
12880 bitstring ABCxxxxx,
12882 Identifier id optional,
12883 octetstring payload optional
12884 } with { variant (ABCxxxxx) "FIELDLENGTH(8)";
12885 variant (id) "PRESENCE( {
12886 ABCxxxxx = '10000000'B,
12887 ABCxxxxx = '10100000'B} )";
12888 variant (code) "CROSSTAG(
12891 E3, id = id_E3; )";
12892 variant (PDU_length) "LENGTHTO(code,ABCxxxxx,PDU_length,id,payload)"};
12894 }with{encode "RAW"}
12897 i := { code := {E3 := e3b},
12898 ABCxxxxx := '10100000'B,
12901 payload := 'ABCD'O}
12904 const octetstring o :='00000003A000000E00000002ABCD'O ;
12908 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12909 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12911 if ((enc_RAW_PDU(i) == o )and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12912 else {setverdict(fail);}
12916 Overall verdict: pass
12923 .*---------------------------------------------------------------------*
12924 :h3. group raw attribute test 1
12925 .*---------------------------------------------------------------------*
12928 <TC- group raw attribute test 1>
12932 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12933 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12936 type integer RAW_PDU
12937 } with { encode "RAW";
12938 variant "FIELDLENGTH(8)" ;
12939 variant "COMP( 2scompl ) "
12942 const RAW_PDU i := -2
12943 const octetstring o := 'FE'O
12947 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12948 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12950 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12951 else {setverdict(fail);}
12955 Overall verdict: pass
12961 .*---------------------------------------------------------------------*
12962 :h3. group raw attribute test 2
12963 .*---------------------------------------------------------------------*
12966 <TC- group raw attribute test 2>
12970 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
12971 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
12973 type integer RAW_PDU
12974 with { encode "RAW";
12975 variant "BITORDERINOCTET(msb)";
12976 variant "BYTEORDER(last)";
12977 variant "ALIGN(left)";
12978 variant "BITORDERINFIELD(msb)";
12979 variant "COMP(signbit)";
12980 variant "FIELDLENGTH(20)" };
12982 const RAW_PDU i := -234
12983 const octetstring o := 'EA0008'O
12987 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
12988 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
12990 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
12991 else {setverdict(fail);}
12995 Overall verdict: pass
13003 .*---------------------------------------------------------------------*
13004 :h3. group raw attribute test 3
13005 .*---------------------------------------------------------------------*
13008 <TC- group raw attribute test 3>
13012 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
13013 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
13022 type integer RAW_PDU
13023 } with { variant "BITORDERINOCTET(msb)" }
13024 } with { variant "BYTEORDER(last)" }
13025 } with { variant "ALIGN(left)" }
13026 } with { variant "BITORDERINFIELD(msb)" }
13027 } with { variant "COMP(signbit)" }
13028 } with { variant "FIELDLENGTH(20)" }
13029 } with { encode "RAW" }
13031 const RAW_PDU i := -234
13032 const octetstring o := 'EA0008'O
13036 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
13037 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
13039 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
13040 else {setverdict(fail);}
13044 Overall verdict: pass
13050 .*---------------------------------------------------------------------*
13051 :h3. group raw attribute test 4
13052 .*---------------------------------------------------------------------*
13055 <TC- group raw attribute test 4>
13059 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
13060 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
13069 type integer RAW_PDU
13070 with { variant "" }
13071 } with { variant "FIELDLENGTH(20)"; variant "COMP(signbit)" }
13072 } with { variant "BITORDERINFIELD(msb)"; variant "ALIGN(left)" }
13073 } with { variant "BITORDERINOCTET(msb)"; variant "BYTEORDER(last)" }
13074 } with { variant "BITORDERINOCTET(lsb)"; variant "BYTEORDER(first)" }
13075 } with { variant "FIELDLENGTH(10)"; variant "COMP(2scompl)" }
13076 } with { variant "BITORDERINFIELD(lsb)"; variant "ALIGN(right)" }
13078 } with { encode "RAW" }
13080 const RAW_PDU i := -234
13081 const octetstring o := 'EA0008'O
13085 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
13086 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
13088 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
13089 else {setverdict(fail);}
13093 Overall verdict: pass
13098 .*---------------------------------------------------------------------*
13099 :h3. group raw attribute test 5
13100 .*---------------------------------------------------------------------*
13103 <TC- group raw attribute test 5>
13107 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
13108 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
13114 type integer RAW_PDU
13115 with { encode "RAW"; variant "" }
13116 } with { encode "RAW"; variant "FIELDLENGTH(20)"; variant "COMP(signbit)" }
13117 } with { encode "RAW"; variant "BITORDERINFIELD(msb)"; variant "ALIGN(left)" }
13118 } with { encode "RAW"; variant "BITORDERINOCTET(msb)"; variant "BYTEORDER(last)" }
13119 } with { encode "RAW" }
13121 const RAW_PDU i := -234
13122 const octetstring o := 'EA0008'O
13126 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
13127 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
13129 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
13130 else {setverdict(fail);}
13134 Overall verdict: pass
13140 .*---------------------------------------------------------------------*
13141 :h3. group raw attribute test 6
13142 .*---------------------------------------------------------------------*
13145 <TC- group raw attribute test 6>
13149 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
13150 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
13156 type integer RAW_PDU
13157 with { variant "" }
13158 } with { variant override "FIELDLENGTH(32)" }
13159 } with { variant "FIELDLENGTH(10)" }
13160 } with { variant override "FIELDLENGTH(8)"; variant "FIELDLENGTH(2)" }
13161 } with { encode "RAW" }
13163 const RAW_PDU i := 255
13164 const octetstring o := 'FF'O
13168 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
13169 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
13171 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
13172 else {setverdict(fail);}
13176 Overall verdict: pass
13182 .*---------------------------------------------------------------------*
13183 :h3. group raw attribute test 7
13184 .*---------------------------------------------------------------------*
13187 <TC- group raw attribute test 7>
13191 external function enc_RAW_PDU(in RAW_PDU pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
13192 external function dec_RAW_PDU(in octetstring stream) return RAW_PDU with { extension "prototype(convert) decode(RAW)" }
13196 type record RAW_PDU
13201 with { variant (int1,int2,int3,int4) "FIELDLENGTH(4)";
13202 variant (int1,int2) "PADDING(yes)";
13203 variant (int3,int4) "PADDING(no)"; }
13204 } with { variant "FIELDLENGTH(3)" }
13205 } with {encode "RAW" };
13214 const octetstring o := '010243'O
13218 log ("enc_RAW_PDU(i)= " , enc_RAW_PDU(i)) ;
13219 log ("dec_RAW_PDU(o)= " , dec_RAW_PDU(o)) ;
13221 if ((enc_RAW_PDU(i) == o)and(dec_RAW_PDU(o) == i)) {setverdict(pass);}
13222 else {setverdict(fail);}
13226 Overall verdict: pass
13232 .*---------------------------------------------------------------------*
13233 :h2.Testing Enc/Dec functions of implicit message encoding
13234 .*---------------------------------------------------------------------*
13235 .*---------------------------------------------------------------------*
13236 :h3. Fast enc/dec function
13237 .*---------------------------------------------------------------------*
13240 <TC- Implicit message encoding: prototype fast>
13244 external function enc_RAW_PDU(in RAW_PDU pdu, out octetstring stream) with { extension "prototype(fast) encode(RAW)" }
13245 external function dec_RAW_PDU(in octetstring stream, out RAW_PDU pdu) with { extension "prototype(fast) decode(RAW)" }
13246 type integer RAW_PDU with { encode "RAW"; variant "FIELDLENGTH(16)" };
13248 const RAW_PDU i := 255
13249 const octetstring o := 'FF00'O
13253 var octetstring encoded_pdu;
13254 var RAW_PDU decoded_pdu;
13256 enc_RAW_PDU(i, encoded_pdu);
13257 dec_RAW_PDU(o, decoded_pdu);
13259 if ( encoded_pdu == o and decoded_pdu == i ) {setverdict(pass);}
13260 else {setverdict(fail);}
13264 Overall verdict: pass
13270 .*---------------------------------------------------------------------*
13271 :h3. Backtrack decode function
13272 .*---------------------------------------------------------------------*
13275 <TC- Implicit message encoding: prototype backtrack>
13279 external function dec_RAW_PDU(in octetstring stream, out RAW_PDU pdu) return integer
13280 with { extension "prototype(backtrack) decode(RAW) errorbehavior(ALL:WARNING)" }
13282 type integer RAW_PDU with { encode "RAW"; variant "FIELDLENGTH(16)" };
13284 const RAW_PDU i := 255
13285 const octetstring o1 := 'FF00'O
13286 const octetstring o2 := '12'O
13290 var RAW_PDU decoded_pdu;
13291 var integer ret_val;
13293 ret_val := dec_RAW_PDU(o1, decoded_pdu);
13294 if (ret_val==0 and decoded_pdu==i) {setverdict(pass);}
13295 else {setverdict(fail);}
13297 ret_val := dec_RAW_PDU(o2, decoded_pdu);
13298 if (ret_val==1) {setverdict(pass);} else {setverdict(fail);}
13302 Overall verdict: pass
13308 .*---------------------------------------------------------------------*
13309 :h3. Sliding decode function
13310 .*---------------------------------------------------------------------*
13313 <TC- Implicit message encoding: prototype sliding>
13317 external function dec_RAW_PDU(inout octetstring stream, out RAW_PDU pdu) return integer
13318 with { extension "prototype(sliding) decode(RAW) errorbehavior(ALL:WARNING)" }
13320 type integer RAW_PDU with { encode "RAW"; variant "FIELDLENGTH(16)" };
13322 const RAW_PDU i := 255
13326 var octetstring o1 := 'FF00'O;
13327 var octetstring o2 := '12'O;
13328 var RAW_PDU decoded_pdu;
13329 var integer ret_val;
13331 ret_val := dec_RAW_PDU(o1, decoded_pdu);
13332 if (ret_val==0 and decoded_pdu==i) {setverdict(pass);}
13333 else {setverdict(fail);}
13335 ret_val := dec_RAW_PDU(o2, decoded_pdu);
13336 if (ret_val>0) {setverdict(pass);} else {setverdict(fail);}
13340 Overall verdict: pass
13347 .*---------------------------------------------------------------------*
13348 :h2. Testing limits of codec
13349 .*---------------------------------------------------------------------*
13350 .*---------------------------------------------------------------------*
13351 :h3. Decoding empty octetstring to PDU
13352 .*---------------------------------------------------------------------*
13355 <TC- Decoding empty octetstring to PDU>
13363 } with { encode "RAW" variant "" }
13365 external function decodePDU(inout octetstring os, out PDU pdu) return integer
13366 with { extension "prototype(sliding) decode(RAW) errorbehavior(ALL:WARNING)" }
13370 var octetstring os := ''O;
13372 var integer ret_val := decodePDU(os, pdu);
13373 if (ret_val>0) {setverdict(pass);} else {setverdict(fail);}
13377 Overall verdict: pass
13383 .*---------------------------------------------------------------------*
13384 :h2. Testing encoding/decoding of big integers
13385 .*---------------------------------------------------------------------*
13386 .*---------------------------------------------------------------------*
13387 :h3. Encoding/decoding big integer variables
13388 .*---------------------------------------------------------------------*
13391 <TC- Big integers: Encoding/decoding big integer variables>
13395 external function enc_raw3(in myint3 r) return octetstring
13396 with { extension "encode(RAW) prototype(convert) errorbehavior(ALL:WARNING)" }
13397 external function dec_raw3(in octetstring r) return myint3
13398 with { extension "decode(RAW) prototype(convert) errorbehavior(ALL:WARNING)" }
13399 external function enc_raw2(in myint2 r) return octetstring
13400 with { extension "encode(RAW) prototype(convert) errorbehavior(ALL:WARNING)" }
13401 external function dec_raw2(in octetstring r) return myint2
13402 with { extension "decode(RAW) prototype(convert) errorbehavior(ALL:WARNING)" }
13404 type integer myint2
13406 variant "FIELDLENGTH(128)"
13407 variant "COMP(nosign)"
13408 variant "BITORDERINFIELD(lsb)"
13409 variant "PADDING(dword32)"
13412 type integer myint3
13414 variant "FIELDLENGTH(96)"
13415 variant "COMP(signbit)"
13416 variant "BITORDERINFIELD(lsb)"
13417 variant "PADDING(dword32)"
13422 var myint3 v1 := -4294967296
13423 var myint3 v2 := -2147483647
13424 var myint3 v3 := 34359738368
13425 var myint3 v4 := 4398046511104
13426 var myint3 v5 := -140737488355328
13427 var myint3 v6 := 4294967296
13428 var myint3 v7 := 4294967295
13429 var myint3 v8 := -4294967295
13430 var myint3 v9 := 4294967297
13431 var myint3 v10 := -4294967297
13432 var myint3 v11 := 2147483647
13433 var myint3 v12 := -2147483648
13434 var myint3 v13 := 2147483648
13435 var myint3 v14 := -2147483649
13436 var myint3 v15 := 2147483649
13437 var myint2 v16 := -4294967296
13438 var myint2 v17 := 2147483647
13439 var myint2 v18 := 34359738368
13440 var myint2 v19 := 4398046511104
13442 o := enc_raw3(v1);if (v1 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13443 o := enc_raw3(v2);if (v2 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13444 o := enc_raw3(v3);if (v3 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13445 o := enc_raw3(v4);if (v4 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13446 o := enc_raw3(-140737488355328);if (v5 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13447 o := enc_raw3(v6);if (v6 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13448 o := enc_raw3(v7);if (v7 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13449 o := enc_raw3(v8);if (v8 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13450 o := enc_raw3(v9);if (v9 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13451 o := enc_raw3(v10);if (v10 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13452 o := enc_raw3(v11);if (v11 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13453 o := enc_raw3(v12);if (v12 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13454 o := enc_raw3(v13);if (v13 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13455 o := enc_raw3(v14);if (v14 == dec_raw3(o)) {setverdict(pass)} else {setverdict(fail)}
13459 Overall verdict: pass
13465 .*---------------------------------------------------------------------*
13466 :h3. Encoding/decoding records with big integer fields
13467 .*---------------------------------------------------------------------*
13470 <TC- Big integers: Encoding/decoding records with big integer fields>
13474 external function enc_raw(in rec_raw1 r) return octetstring
13475 with { extension "encode(RAW) prototype(convert) errorbehavior(ALL:WARNING)" }
13476 external function dec_raw(in octetstring r) return rec_raw1
13477 with { extension "decode(RAW) prototype(convert) errorbehavior(ALL:WARNING)" }
13479 type integer myint1
13481 variant "FIELDLENGTH(256)"
13482 variant "COMP(2scompl)"
13483 variant "BITORDERINFIELD(lsb)"
13484 variant "PADDING(dword32)"
13485 encode "RAW" } // The script eats the trailing '}' in a new line.
13487 type record rec_raw1 {
13490 } with { variant "" encode "RAW" }
13494 var rec_raw1 myrec1 := {int1 := -12345678910111213141516, int2 := -3}
13495 var rec_raw1 myrec2 := {int1 := -11111111111111111111111, int2 := -11111111111111111111111}
13496 var rec_raw1 myrec3 := {int1 := -2147483648, int2 := -4294967296}
13497 var rec_raw1 myrec4 := {int1 := 2147483648, int2 := -4294967296}
13498 var rec_raw1 myrec5 := {int1 := -2147483649, int2 := 2147483649}
13499 var rec_raw1 myrec6 := {int1 := -1234, int2 := -4321}
13501 o := enc_raw(myrec1);if (myrec1 == dec_raw(o)) {setverdict(pass)} else {setverdict(fail)}
13502 o := enc_raw(myrec2);if (myrec2 == dec_raw(o)) {setverdict(pass)} else {setverdict(fail)}
13503 o := enc_raw(myrec3);if (myrec3 == dec_raw(o)) {setverdict(pass)} else {setverdict(fail)}
13504 o := enc_raw(myrec4);if (myrec4 == dec_raw(o)) {setverdict(pass)} else {setverdict(fail)}
13505 o := enc_raw(myrec5);if (myrec5 == dec_raw(o)) {setverdict(pass)} else {setverdict(fail)}
13506 o := enc_raw(myrec6);if (myrec6 == dec_raw(o)) {setverdict(pass)} else {setverdict(fail)}
13510 Overall verdict: pass
13516 .*---------------------------------------------------------------------*
13517 :h3. Multiple optional fields (R8G FOA bug)
13518 .*---------------------------------------------------------------------*
13521 <TC- Multiple optional fields (R8G FOA bug)>
13525 external function enc_PDU_GTPCv2(in PDU_GTPCv2 pdu) return octetstring
13526 with { extension "prototype(convert)" extension "encode(RAW)" }
13528 external function dec_PDU_GTPCv2(in octetstring stream) return PDU_GTPCv2
13529 with { extension "prototype(convert)" extension "decode(RAW)" }
13531 type bitstring BIT3 length(3) with { encode "RAW" variant "FIELDLENGTH(3)" };
13532 type bitstring BIT4 length(4) with { encode "RAW" variant "FIELDLENGTH(4)" };
13533 type bitstring BIT5 length(5) with { encode "RAW" variant "FIELDLENGTH(5)" };
13534 type bitstring BIT1 length(1) with { encode "RAW" variant "FIELDLENGTH(1)" };
13535 type octetstring OCT1 length(1) with { encode "RAW" variant "FIELDLENGTH(1)" };
13536 type octetstring OCT2 length(2) with { encode "RAW" variant "FIELDLENGTH(2)" };
13537 type octetstring OCT3 length(3) with { encode "RAW" variant "FIELDLENGTH(3)" };
13538 type octetstring OCT4 length(4) with { encode "RAW" variant "FIELDLENGTH(4)" };
13539 type integer LIN1 (0..255) with { encode "RAW" variant "FIELDLENGTH(8)" };
13541 type integer LIN2_BO_LAST (0..65535) with { encode "RAW" variant "FIELDLENGTH(16), COMP(nosign), BYTEORDER(last)" };
13543 type record Cause {
13544 OCT1 elementIdentifier, //dec 2, '02'O
13545 LIN2_BO_LAST lengthIndicator,
13553 OCT1 typeOfOffendingIE optional,
13554 LIN2_BO_LAST lengthIndicator2 optional,
13555 BIT4 instanceOfOffendingIE optional,
13556 BIT4 spare3 optional
13557 } with { encode "RAW"
13558 variant "PRESENCE (elementIdentifier = '02'O; )"
13559 variant (lengthIndicator) "LENGTHTO(causeValue,cS,bCE,pCE,spare2,typeOfOffendingIE,
13560 lengthIndicator2,instanceOfOffendingIE,spare3 )" };
13562 type record Recovery {
13563 OCT1 elementIdentifier, // dec 3, '03'O
13564 LIN2_BO_LAST lengthIndicator,
13567 integer recoveryValue
13568 } with { encode "RAW"
13569 variant (lengthIndicator) "LENGTHTO(recoveryValue)"
13570 variant "PRESENCE (elementIdentifier = '03'O; )" };
13572 type set of ProtocolID_or_ContainerID ProtocolIDs_and_ContainerIDs;
13574 type record ProtocolID_or_ContainerID {
13575 OCT2 protocolID_or_ContainerID,
13576 LIN1 lengthIndicator,
13577 octetstring protID_orContID_Contents
13578 } with { encode "RAW"
13579 variant (lengthIndicator) "LENGTHTO (protID_orContID_Contents)"};
13581 type record ProtocolConfigOptions {
13582 OCT1 elementIdentifier, // dec 78 '4E'O;
13583 LIN2_BO_LAST lengthIndicator,
13586 BIT3 configProtocol,
13587 BIT4 spare2, //'0000'B
13588 BIT1 extensionField, //'1'B
13589 ProtocolIDs_and_ContainerIDs protocolIDs_and_ContainerIDs optional
13590 } with { encode "RAW"
13591 variant (lengthIndicator) "LENGTHTO(configProtocol,spare2,extensionField,protocolIDs_and_ContainerIDs)"
13592 variant "PRESENCE (elementIdentifier = '4E'O; )" };
13594 type record PrivateExtension {
13595 OCT1 elementIdentifier, // dec 255, 'FF'O
13596 LIN2_BO_LAST lengthIndicator,
13599 integer enterpriseID,
13600 octetstring proprietartyValue
13601 } with { encode "RAW"
13602 variant (lengthIndicator) "LENGTHTO(enterpriseID,proprietartyValue)";
13603 variant "PRESENCE (elementIdentifier = 'FF'O;)"; };
13605 type set DeleteSessionResponse {
13607 Recovery recovery optional,
13608 ProtocolConfigOptions protocolConfigOptions optional,
13609 PrivateExtension privateExtension optional };
13611 type union GTPCv2_PDUs {
13612 DeleteSessionResponse deleteSessionResponse };
13614 type record PDU_GTPCv2 {
13618 BIT3 version, //'010'B
13620 LIN2_BO_LAST lengthf,
13621 OCT4 tEID optional,
13622 OCT3 sequenceNumber,
13624 GTPCv2_PDUs gtpcv2_pdu,
13625 PDU_GTPCv2 piggybackPDU_GTPCv2 optional
13626 } with { encode "RAW"
13627 variant (tEID) "PRESENCE(t_Bit = '1'B)";
13628 variant (piggybackPDU_GTPCv2) "PRESENCE(p_Bit = '1'B)";
13629 variant (lengthf) "LENGTHTO(tEID,sequenceNumber,spare3,gtpcv2_pdu)";
13630 variant (gtpcv2_pdu) "CROSSTAG(
13631 deleteSessionResponse, messageType = '25'O; //37
13636 var PDU_GTPCv2 vl_temp := dec_PDU_GTPCv2( '48250013800000000249BF000200020010000300010011'O );
13641 Overall verdict: pass
13647 .*---------------------------------------------------------------------*
13648 :h3. HO79315: Segfault on unbound octetstring
13649 .*---------------------------------------------------------------------*
13652 <TC- HO79315: Segfault on unbound octetstring>
13656 type octetstring raw_pdu_octetstring with { encode "RAW"; variant "FIELDLENGTH(1)"};
13657 external function enc_raw_pdu_octetstring(in raw_pdu_octetstring pdu) return octetstring with { extension "prototype(convert) encode(RAW)" }
13658 external function dec_raw_pdu_octetstring(in octetstring stream) return raw_pdu_octetstring with { extension "prototype(convert) decode(RAW)" }
13662 var raw_pdu_octetstring i
13663 const octetstring o := '0F'O
13664 if ((enc_raw_pdu_octetstring(i) == o)and(dec_raw_pdu_octetstring(o) == i)) {setverdict(pass);}
13665 else {setverdict(fail,"enc_raw_pdu_octetstring(i)= ", enc_raw_pdu_octetstring(i), "; dec_raw_pdu_octetstring(o)= ", dec_raw_pdu_octetstring(o));}
13669 Overall verdict: error
13675 .*---------------------------------------------------------------------*
13677 .*---------------------------------------------------------------------*
13678 :nl. Requirement specification(s):
13679 :nl.-------------------------------
13681 :li. 8/ETH/RUS-2003:0087 Uen - Requirement Specification for TITAN's encoder/decoder functions