Sync with 5.1.0
[deliverable/titan.core.git] / regression_test / BER / Regr.ttcn
CommitLineData
970ed795
EL
1/******************************************************************************
2 * Copyright (c) 2000-2014 Ericsson Telecom AB
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 ******************************************************************************/
8module Regr
9{
10 import from Regr1 language "ASN.1:1997" all
11 with {encode "DER:1997"};
12 import from Regr2 language "ASN.1:1997" all
13 with {encode "DER:1997"};
14
15 external function enc_ber_int(in integer r) return octetstring
16 with { extension "encode(BER:BER_ENCODE_DER) prototype(convert) errorbehavior(ALL:WARNING)" }
17 external function dec_ber_int(in octetstring r) return integer
18 with { extension "decode(BER:BER_ENCODE_DER) prototype(convert) errorbehavior(ALL:WARNING)" }
19
20 type component comp_ber { }
21
22 type port MyPort1 message
23 {
24 out T0, T2, T3, T4, T5, T6, T7, T8,
25 T10, T11;
26 in octetstring;
27 }
28
29 type port MyPort2 message
30 {
31 in T0, T2, T3, T4, T5, T6, T7, T8,
32 T10, T11;
33 out octetstring;
34 }
35
36 type component MyComponent
37 {
38 timer T := 1.0;
39 port MyPort1 P1;
40 port MyPort2 P2;
41 }
42
43 type component MySystemType
44 {
45 port MyPort2 S1;
46 port MyPort1 S2;
47 }
48
49 altstep MyAltstep() runs on MyComponent
50 {
51 [] P1.receive { setverdict(fail); }
52 [] P2.receive { setverdict(fail); }
53 [] T.timeout { setverdict(inconc); T.start; }
54 }
55
56 testcase TC0a() runs on MyComponent system MySystemType
57 {
58 var default d := activate(MyAltstep());
59 map(mtc:P1, system:S2);
60 map(mtc:P2, system:S1);
61
62 P1.send(c0a);
63 T.start;
64 P1.receive(d0a);
65 setverdict(pass);
66 T.stop;
67
68 P2.send(d0a);
69 T.start;
70 P2.receive(c0a);
71 setverdict(pass);
72 T.stop;
73
74 deactivate(d);
75 unmap(mtc:P1, system:S2);
76 unmap(mtc:P2, system:S1);
77 }
78
79 testcase TC2a() runs on MyComponent system MySystemType
80 {
81 var default d := activate(MyAltstep());
82 map(mtc:P1, system:S2);
83 map(mtc:P2, system:S1);
84
85 P1.send(c2a);
86 T.start;
87 P1.receive(d2a);
88 setverdict(pass);
89 T.stop;
90
91 P2.send(d2a);
92 T.start;
93 P2.receive(c2a);
94 setverdict(pass);
95 T.stop;
96
97 deactivate(d);
98 unmap(mtc:P1, system:S2);
99 unmap(mtc:P2, system:S1);
100 }
101
102 testcase TC2b() runs on MyComponent system MySystemType
103 {
104 var default d := activate(MyAltstep());
105 map(mtc:P1, system:S2);
106 map(mtc:P2, system:S1);
107
108 P1.send(c2b);
109 T.start;
110 P1.receive(d2b);
111 setverdict(pass);
112 T.stop;
113
114 P2.send(d2b);
115 T.start;
116 P2.receive(c2b);
117 setverdict(pass);
118 T.stop;
119
120 deactivate(d);
121 unmap(mtc:P1, system:S2);
122 unmap(mtc:P2, system:S1);
123 }
124
125 testcase TC3a() runs on MyComponent system MySystemType
126 {
127 var default d := activate(MyAltstep());
128 map(mtc:P1, system:S2);
129 map(mtc:P2, system:S1);
130
131 P1.send(c3a);
132 T.start;
133 P1.receive(d3a);
134 setverdict(pass);
135 T.stop;
136
137 P2.send(d3a);
138 T.start;
139 P2.receive(c3a);
140 setverdict(pass);
141 T.stop;
142
143 deactivate(d);
144 unmap(mtc:P1, system:S2);
145 unmap(mtc:P2, system:S1);
146 }
147
148 testcase TC3b() runs on MyComponent system MySystemType
149 {
150 var default d := activate(MyAltstep());
151 map(mtc:P1, system:S2);
152 map(mtc:P2, system:S1);
153
154 P1.send(c3b);
155 T.start;
156 P1.receive(d3b);
157 setverdict(pass);
158 T.stop;
159
160 P2.send(d3b);
161 T.start;
162 P2.receive(c3b);
163 setverdict(pass);
164 T.stop;
165
166 deactivate(d);
167 unmap(mtc:P1, system:S2);
168 unmap(mtc:P2, system:S1);
169 }
170
171 testcase TC3c() runs on MyComponent system MySystemType
172 {
173 var default d := activate(MyAltstep());
174 map(mtc:P1, system:S2);
175 map(mtc:P2, system:S1);
176
177 P1.send(c3c);
178 T.start;
179 P1.receive(d3c);
180 setverdict(pass);
181 T.stop;
182
183 P2.send(d3c);
184 T.start;
185 P2.receive(c3c);
186 setverdict(pass);
187 T.stop;
188
189 P1.send(c3d);
190 T.start;
191 P1.receive(d3d);
192 setverdict(pass);
193 T.stop;
194
195 P2.send(d3d);
196 T.start;
197 P2.receive(c3d);
198 setverdict(pass);
199 T.stop;
200
201 P1.send(c3e);
202 T.start;
203 P1.receive(d3e);
204 setverdict(pass);
205 T.stop;
206
207 P2.send(d3e);
208 T.start;
209 P2.receive(c3e);
210 setverdict(pass);
211 T.stop;
212
213 P1.send(c3f);
214 T.start;
215 P1.receive(d3f);
216 setverdict(pass);
217 T.stop;
218
219 P2.send(d3f);
220 T.start;
221 P2.receive(c3f);
222 setverdict(pass);
223 T.stop;
224
225 P1.send(c3g);
226 T.start;
227 P1.receive(d3g);
228 setverdict(pass);
229 T.stop;
230
231 P2.send(d3g);
232 T.start;
233 P2.receive(c3g);
234 setverdict(pass);
235 T.stop;
236
237 P1.send(c3h);
238 T.start;
239 P1.receive(d3h);
240 setverdict(pass);
241 T.stop;
242
243 P2.send(d3h);
244 T.start;
245 P2.receive(c3h);
246 setverdict(pass);
247 T.stop;
248
249 P1.send(c3i);
250 T.start;
251 P1.receive(d3i);
252 setverdict(pass);
253 T.stop;
254
255 P2.send(d3i);
256 T.start;
257 P2.receive(c3i);
258 setverdict(pass);
259 T.stop;
260
261 P1.send(c3j);
262 T.start;
263 P1.receive(d3j);
264 setverdict(pass);
265 T.stop;
266
267 P2.send(d3j);
268 T.start;
269 P2.receive(c3j);
270 setverdict(pass);
271 T.stop;
272
273 P1.send(c3k);
274 T.start;
275 P1.receive(d3k);
276 setverdict(pass);
277 T.stop;
278
279 P2.send(d3k);
280 T.start;
281 P2.receive(c3k);
282 setverdict(pass);
283 T.stop;
284
285 P1.send(c3l);
286 T.start;
287 P1.receive(d3l);
288 setverdict(pass);
289 T.stop;
290
291 P2.send(d3l);
292 T.start;
293 P2.receive(c3l);
294 setverdict(pass);
295 T.stop;
296
297 P1.send(c3m);
298 T.start;
299 P1.receive(d3m);
300 setverdict(pass);
301 T.stop;
302
303 P2.send(d3m);
304 T.start;
305 P2.receive(c3m);
306 setverdict(pass);
307 T.stop;
308
309 P1.send(c3n);
310 T.start;
311 P1.receive(d3n);
312 setverdict(pass);
313 T.stop;
314
315 P2.send(d3n);
316 T.start;
317 P2.receive(c3n);
318 setverdict(pass);
319 T.stop;
320
321 P1.send(c3o);
322 T.start;
323 P1.receive(d3o);
324 setverdict(pass);
325 T.stop;
326
327 P2.send(d3o);
328 T.start;
329 P2.receive(c3o);
330 setverdict(pass);
331 T.stop;
332
333 P1.send(c3p);
334 T.start;
335 P1.receive(d3p);
336 setverdict(pass);
337 T.stop;
338
339 P2.send(d3p);
340 T.start;
341 P2.receive(c3p);
342 setverdict(pass);
343 T.stop;
344
345 P1.send(c3q);
346 T.start;
347 P1.receive(d3q);
348 setverdict(pass);
349 T.stop;
350
351 P2.send(d3q);
352 T.start;
353 P2.receive(c3q);
354 setverdict(pass);
355 T.stop;
356
357 deactivate(d);
358 unmap(mtc:P1, system:S2);
359 unmap(mtc:P2, system:S1);
360 }
361
362 testcase TC4() runs on MyComponent system MySystemType
363 {
364 var default d := activate(MyAltstep());
365 map(mtc:P1, system:S2);
366 map(mtc:P2, system:S1);
367
368 P1.send(c4a);
369 T.start;
370 P1.receive(d4a);
371 setverdict(pass);
372 T.stop;
373
374 P2.send(d4a);
375 T.start;
376 P2.receive(c4a);
377 setverdict(pass);
378 T.stop;
379
380 P1.send(c4b);
381 T.start;
382 P1.receive(d4b);
383 setverdict(pass);
384 T.stop;
385
386 P2.send(d4b);
387 T.start;
388 P2.receive(c4b);
389 setverdict(pass);
390 T.stop;
391
392 P1.send(c4c);
393 T.start;
394 P1.receive(d4c);
395 setverdict(pass);
396 T.stop;
397
398 P2.send(d4c);
399 T.start;
400 P2.receive(c4c);
401 setverdict(pass);
402 T.stop;
403
404 P1.send(c4d);
405 T.start;
406 P1.receive(d4d);
407 setverdict(pass);
408 T.stop;
409
410 P2.send(d4d);
411 T.start;
412 P2.receive(c4d);
413 setverdict(pass);
414 T.stop;
415
416 P1.send(c4e);
417 T.start;
418 P1.receive(d4e);
419 setverdict(pass);
420 T.stop;
421
422 P2.send(d4d);
423 T.start;
424 P2.receive(c4d);
425 setverdict(pass);
426 T.stop;
427
428 deactivate(d);
429 unmap(mtc:P1, system:S2);
430 unmap(mtc:P2, system:S1);
431 }
432
433 testcase TC5() runs on MyComponent system MySystemType
434 {
435 var default d := activate(MyAltstep());
436 map(mtc:P1, system:S2);
437 map(mtc:P2, system:S1);
438
439 P1.send(c5a);
440 T.start;
441 P1.receive(d5a);
442 setverdict(pass);
443 T.stop;
444
445 P2.send(d5a);
446 T.start;
447 P2.receive(c5a);
448 setverdict(pass);
449 T.stop;
450
451 P1.send(c5b);
452 T.start;
453 P1.receive(d5b);
454 setverdict(pass);
455 T.stop;
456
457 P2.send(d5b);
458 T.start;
459 P2.receive(c5b);
460 setverdict(pass);
461 T.stop;
462
463 P1.send(c5c);
464 T.start;
465 P1.receive(d5c);
466 setverdict(pass);
467 T.stop;
468
469 P2.send(d5c);
470 T.start;
471 P2.receive(c5c);
472 setverdict(pass);
473 T.stop;
474
475 P1.send(c5d);
476 T.start;
477 P1.receive(d5d);
478 setverdict(pass);
479 T.stop;
480
481 P2.send(d5d);
482 T.start;
483 P2.receive(c5d);
484 setverdict(pass);
485 T.stop;
486
487 P1.send(c5e);
488 T.start;
489 P1.receive(d5e);
490 setverdict(pass);
491 T.stop;
492
493 P2.send(d5e);
494 T.start;
495 P2.receive(c5e);
496 setverdict(pass);
497 T.stop;
498
499 P1.send(c5f);
500 T.start;
501 P1.receive(d5f);
502 setverdict(pass);
503 T.stop;
504
505 P2.send(d5f);
506 T.start;
507 P2.receive(c5f);
508 setverdict(pass);
509 T.stop;
510
511 deactivate(d);
512 unmap(mtc:P1, system:S2);
513 unmap(mtc:P2, system:S1);
514 }
515
516 testcase TC6() runs on MyComponent system MySystemType
517 {
518 var default d := activate(MyAltstep());
519 map(mtc:P1, system:S2);
520 map(mtc:P2, system:S1);
521
522 P1.send(c6a);
523 T.start;
524 P1.receive(d6a);
525 setverdict(pass);
526 T.stop;
527
528 P2.send(d6a);
529 T.start;
530 P2.receive(c6a);
531 setverdict(pass);
532 T.stop;
533
534 P1.send(c6b);
535 T.start;
536 P1.receive(d6b);
537 setverdict(pass);
538 T.stop;
539
540 P2.send(d6b);
541 T.start;
542 P2.receive(c6b);
543 setverdict(pass);
544 T.stop;
545
546 P1.send(c6c);
547 T.start;
548 P1.receive(d6c);
549 setverdict(pass);
550 T.stop;
551
552 P2.send(d6c);
553 T.start;
554 P2.receive(c6d); // Yes, c6d==c6c
555 setverdict(pass);
556 T.stop;
557
558 P1.send(c6d);
559 T.start;
560 P1.receive(d6d);
561 setverdict(pass);
562 T.stop;
563
564 P2.send(d6d);
565 T.start;
566 P2.receive(c6d);
567 setverdict(pass);
568 T.stop;
569
570 P1.send(c6e);
571 T.start;
572 P1.receive(d6e);
573 setverdict(pass);
574 T.stop;
575
576 P2.send(d6e);
577 T.start;
578 P2.receive(c6e);
579 setverdict(pass);
580 T.stop;
581
582 deactivate(d);
583 unmap(mtc:P1, system:S2);
584 unmap(mtc:P2, system:S1);
585 }
586
587 testcase TC7() runs on MyComponent system MySystemType
588 {
589 var default d := activate(MyAltstep());
590 map(mtc:P1, system:S2);
591 map(mtc:P2, system:S1);
592
593 P1.send(c7a);
594 T.start;
595 P1.receive(d7a);
596 setverdict(pass);
597 T.stop;
598
599 P2.send(d7a);
600 T.start;
601 P2.receive(c7a);
602 setverdict(pass);
603 T.stop;
604
605 P1.send(c7b);
606 T.start;
607 P1.receive(d7b);
608 setverdict(pass);
609 T.stop;
610
611 P2.send(d7b);
612 T.start;
613 P2.receive(c7b);
614 setverdict(pass);
615 T.stop;
616
617 P1.send(c7c);
618 T.start;
619 P1.receive(d7c);
620 setverdict(pass);
621 T.stop;
622
623 P2.send(d7c);
624 T.start;
625 P2.receive(c7c);
626 setverdict(pass);
627 T.stop;
628
629 P1.send(c7d);
630 T.start;
631 P1.receive(d7d);
632 setverdict(pass);
633 T.stop;
634
635 P2.send(d7d);
636 T.start;
637 P2.receive(c7d);
638 setverdict(pass);
639 T.stop;
640
641 P1.send(c7e);
642 T.start;
643 P1.receive(d7e);
644 setverdict(pass);
645 T.stop;
646
647 P2.send(d7e);
648 T.start;
649 P2.receive(c7e);
650 setverdict(pass);
651 T.stop;
652
653 deactivate(d);
654 unmap(mtc:P1, system:S2);
655 unmap(mtc:P2, system:S1);
656 }
657
658 testcase TC8() runs on MyComponent system MySystemType
659 {
660 var default d := activate(MyAltstep());
661 map(mtc:P1, system:S2);
662 map(mtc:P2, system:S1);
663
664 P1.send(c8a);
665 T.start;
666 P1.receive(d8a);
667 setverdict(pass);
668 T.stop;
669
670 P2.send(d8a);
671 T.start;
672 P2.receive(c8a);
673 setverdict(pass);
674 T.stop;
675
676 P1.send(c8b);
677 T.start;
678 P1.receive(d8b);
679 setverdict(pass);
680 T.stop;
681
682 P2.send(d8b);
683 T.start;
684 P2.receive(c8b);
685 setverdict(pass);
686 T.stop;
687
688 deactivate(d);
689 unmap(mtc:P1, system:S2);
690 unmap(mtc:P2, system:S1);
691 }
692
693 testcase TC10() runs on MyComponent system MySystemType
694 {
695 var default d := activate(MyAltstep());
696 map(mtc:P1, system:S2);
697 map(mtc:P2, system:S1);
698
699 P1.send(c10a);
700 T.start;
701 P1.receive(d10a);
702 setverdict(pass);
703 T.stop;
704
705 P2.send(d10a);
706 T.start;
707 P2.receive(c10a);
708 setverdict(pass);
709 T.stop;
710
711 P1.send(c10b);
712 T.start;
713 P1.receive(d10b);
714 setverdict(pass);
715 T.stop;
716
717 P2.send(d10b);
718 T.start;
719 P2.receive(c10b);
720 setverdict(pass);
721 T.stop;
722
723 deactivate(d);
724 unmap(mtc:P1, system:S2);
725 unmap(mtc:P2, system:S1);
726 }
727
728 testcase TC11_12() runs on MyComponent system MySystemType
729 {
730 var default d := activate(MyAltstep());
731 map(mtc:P1, system:S2);
732 map(mtc:P2, system:S1);
733
734 P1.send(c11_12a);
735 T.start;
736 P1.receive(d11_12a);
737 setverdict(pass);
738 T.stop;
739
740 P2.send(d11_12a);
741 T.start;
742 P2.receive(c11_12a);
743 setverdict(pass);
744 T.stop;
745
746 deactivate(d);
747 unmap(mtc:P1, system:S2);
748 unmap(mtc:P2, system:S1);
749 }
750
751 testcase TC11_13() runs on MyComponent system MySystemType
752 {
753 var default d := activate(MyAltstep());
754 map(mtc:P1, system:S2);
755 map(mtc:P2, system:S1);
756
757 P1.send(c11_13a);
758 T.start;
759 P1.receive(d11_13a);
760 setverdict(pass);
761 T.stop;
762
763 P2.send(d11_13a);
764 T.start;
765 P2.receive(c11_13a);
766 setverdict(pass);
767 T.stop;
768
769 P1.send(c11_13b);
770 T.start;
771 P1.receive(d11_13b);
772 setverdict(pass);
773 T.stop;
774
775 P2.send(d11_13b);
776 T.start;
777 P2.receive(c11_13b);
778 setverdict(pass);
779 T.stop;
780
781 deactivate(d);
782 unmap(mtc:P1, system:S2);
783 unmap(mtc:P2, system:S1);
784 }
785
786 testcase TC11_14() runs on MyComponent system MySystemType
787 {
788 var default d := activate(MyAltstep());
789 map(mtc:P1, system:S2);
790 map(mtc:P2, system:S1);
791
792 P1.send(c11_14a);
793 T.start;
794 P1.receive(d11_14a);
795 setverdict(pass);
796 T.stop;
797
798 P2.send(d11_14a);
799 T.start;
800 P2.receive(c11_14a);
801 setverdict(pass);
802 T.stop;
803
804 P1.send(c11_14b);
805 T.start;
806 P1.receive(d11_14b);
807 setverdict(pass);
808 T.stop;
809
810 P2.send(d11_14b);
811 T.start;
812 P2.receive(c11_14b);
813 setverdict(pass);
814 T.stop;
815
816 deactivate(d);
817 unmap(mtc:P1, system:S2);
818 unmap(mtc:P2, system:S1);
819 }
820
821 testcase TC11_15() runs on MyComponent system MySystemType
822 {
823 var default d := activate(MyAltstep());
824 map(mtc:P1, system:S2);
825 map(mtc:P2, system:S1);
826
827 P1.send(c11_15a);
828 T.start;
829 P1.receive(d11_15a);
830 setverdict(pass);
831 T.stop;
832
833 P2.send(d11_15a);
834 T.start;
835 P2.receive(c11_15a);
836 setverdict(pass);
837 T.stop;
838
839 deactivate(d);
840 unmap(mtc:P1, system:S2);
841 unmap(mtc:P2, system:S1);
842 }
843
844 testcase TC11_16() runs on MyComponent system MySystemType
845 {
846 var default d := activate(MyAltstep());
847 map(mtc:P1, system:S2);
848 map(mtc:P2, system:S1);
849
850 P1.send(c11_16a);
851 T.start;
852 P1.receive(d11_16a);
853 setverdict(pass);
854 T.stop;
855
856 P2.send(d11_16a);
857 T.start;
858 P2.receive(c11_16a);
859 setverdict(pass);
860 T.stop;
861
862 P1.send(c11_16b);
863 T.start;
864 P1.receive(d11_16b);
865 setverdict(pass);
866 T.stop;
867
868 P2.send(d11_16b);
869 T.start;
870 P2.receive(c11_16b);
871 setverdict(pass);
872 T.stop;
873
874 deactivate(d);
875 unmap(mtc:P1, system:S2);
876 unmap(mtc:P2, system:S1);
877 }
878
879 testcase TC11_17() runs on MyComponent system MySystemType
880 {
881 var default d := activate(MyAltstep());
882 map(mtc:P1, system:S2);
883 map(mtc:P2, system:S1);
884
885 P1.send(c11_17a);
886 T.start;
887 P1.receive(d11_17a);
888 setverdict(pass);
889 T.stop;
890
891 P2.send(d11_17a);
892 T.start;
893 P2.receive(c11_17a);
894 setverdict(pass);
895 T.stop;
896
897 deactivate(d);
898 unmap(mtc:P1, system:S2);
899 unmap(mtc:P2, system:S1);
900 }
901
902 testcase TC11_18() runs on MyComponent system MySystemType
903 {
904 var default d := activate(MyAltstep());
905 map(mtc:P1, system:S2);
906 map(mtc:P2, system:S1);
907
908 P1.send(c11_18a);
909 T.start;
910 P1.receive(d11_18a);
911 setverdict(pass);
912 T.stop;
913
914 P2.send(d11_18a);
915 T.start;
916 P2.receive(c11_18a);
917 setverdict(pass);
918 T.stop;
919
920 deactivate(d);
921 unmap(mtc:P1, system:S2);
922 unmap(mtc:P2, system:S1);
923 }
924
925 testcase TC11_19() runs on MyComponent system MySystemType
926 {
927 var default d := activate(MyAltstep());
928 map(mtc:P1, system:S2);
929 map(mtc:P2, system:S1);
930
931 P1.send(c11_19a);
932 T.start;
933 P1.receive(d11_19a);
934 setverdict(pass);
935 T.stop;
936
937 P2.send(d11_19a);
938 T.start;
939 P2.receive(c11_19a);
940 setverdict(pass);
941 T.stop;
942
943 P1.send(c11_19b);
944 T.start;
945 P1.receive(d11_19b);
946 setverdict(pass);
947 T.stop;
948
949 P2.send(d11_19b);
950 T.start;
951 P2.receive(c11_19b);
952 setverdict(pass);
953 T.stop;
954
955 P1.send(c11_19c);
956 T.start;
957 P1.receive(d11_19c);
958 setverdict(pass);
959 T.stop;
960
961 P2.send(d11_19c);
962 T.start;
963 P2.receive(c11_19c);
964 setverdict(pass);
965 T.stop;
966
967 deactivate(d);
968 unmap(mtc:P1, system:S2);
969 unmap(mtc:P2, system:S1);
970 }
971
972 testcase TC11_20() runs on MyComponent system MySystemType
973 {
974 var default d := activate(MyAltstep());
975 map(mtc:P1, system:S2);
976 map(mtc:P2, system:S1);
977
978 P1.send(c11_20a);
979 T.start;
980 P1.receive(d11_20a);
981 setverdict(pass);
982 T.stop;
983
984 P2.send(d11_20a);
985 T.start;
986 P2.receive(c11_20a);
987 setverdict(pass);
988 T.stop;
989
990 deactivate(d);
991 unmap(mtc:P1, system:S2);
992 unmap(mtc:P2, system:S1);
993 }
994
995 testcase TC11_21() runs on MyComponent system MySystemType
996 {
997 var default d := activate(MyAltstep());
998 map(mtc:P1, system:S2);
999 map(mtc:P2, system:S1);
1000
1001 P1.send(c11_21a);
1002 T.start;
1003 P1.receive(d11_21a);
1004 setverdict(pass);
1005 T.stop;
1006
1007 P2.send(d11_21a);
1008 T.start;
1009 P2.receive(c11_21a);
1010 setverdict(pass);
1011 T.stop;
1012
1013 P1.send(c11_21b);
1014 T.start;
1015 P1.receive(d11_21b);
1016 setverdict(pass);
1017 T.stop;
1018
1019 P2.send(d11_21b);
1020 T.start;
1021 P2.receive(c11_21b);
1022 setverdict(pass);
1023 T.stop;
1024
1025 deactivate(d);
1026 unmap(mtc:P1, system:S2);
1027 unmap(mtc:P2, system:S1);
1028 }
1029
1030 testcase TC11_22() runs on MyComponent system MySystemType
1031 {
1032 var default d := activate(MyAltstep());
1033 map(mtc:P1, system:S2);
1034 map(mtc:P2, system:S1);
1035
1036 P1.send(c11_22a);
1037 T.start;
1038 P1.receive(d11_22a);
1039 setverdict(pass);
1040 T.stop;
1041
1042 P2.send(d11_22a);
1043 T.start;
1044 P2.receive(c11_22a);
1045 setverdict(pass);
1046 T.stop;
1047
1048 deactivate(d);
1049 unmap(mtc:P1, system:S2);
1050 unmap(mtc:P2, system:S1);
1051 }
1052
1053 function check_enc_dec(integer int, octetstring expected) {
1054 var octetstring encoded_pdu := enc_ber_int(int);
1055 if (encoded_pdu == expected) {setverdict(pass);}
1056 else {setverdict(fail, "Encoding failed");}
1057 log(encoded_pdu);
1058 var integer decoded := dec_ber_int(encoded_pdu);
1059 log(decoded);
1060 if (int == decoded) { setverdict(pass); }
1061 else {setverdict(fail, "decoding failed");}
1062 } with {
1063 extension "transparent"
1064 }
1065
1066 testcase tc_int_enc_dec() runs on comp_ber {
1067
1068 check_enc_dec( 0, '020100'O);
1069
1070 check_enc_dec(-1, '0201FF'O);
1071 check_enc_dec( 1, '020101'O);
1072
1073 check_enc_dec(-2, '0201FE'O);
1074 check_enc_dec( 2, '020102'O);
1075 check_enc_dec(-5, '0201FB'O);
1076 check_enc_dec( 5, '020105'O);
1077
1078 check_enc_dec(-254, '0202FF02'O);
1079 check_enc_dec( 254, '020200FE'O);
1080 check_enc_dec(-255, '0202FF01'O);
1081 check_enc_dec( 255, '020200FF'O);
1082 check_enc_dec(-256, '0202FF00'O);
1083 check_enc_dec( 256, '02020100'O);
1084
1085 check_enc_dec(-1234, '0202FB2E'O);
1086
1087 // 2^16
1088 check_enc_dec(-65534, '0203FF0002'O);
1089 check_enc_dec( 65534, '020300FFFE'O);
1090 check_enc_dec(-65535, '0203FF0001'O);
1091 check_enc_dec( 65535, '020300FFFF'O);
1092 check_enc_dec(-65536, '0203FF0000'O);
1093 check_enc_dec( 65536, '0203010000'O);
1094
1095 // 2^24
1096 check_enc_dec(-16777215, '0204FF000001'O);
1097 check_enc_dec( 16777215, '020400FFFFFF'O);
1098 check_enc_dec(-16777216, '0204FF000000'O);
1099 check_enc_dec( 16777216, '020401000000'O);
1100 check_enc_dec(-16777217, '0204FEFFFFFF'O);
1101 check_enc_dec( 16777217, '020401000001'O);
1102
1103 // 2^32
1104 check_enc_dec(-4294967295, '0205FF00000001'O);
1105 check_enc_dec( 4294967295, '020500FFFFFFFF'O);
1106 check_enc_dec(-4294967296, '0205FF00000000'O);
1107 check_enc_dec( 4294967296, '02050100000000'O);
1108 check_enc_dec(-4294967297, '0205FEFFFFFFFF'O);
1109 check_enc_dec( 4294967297, '02050100000001'O);
1110
1111 // 8 bit min,max
1112 check_enc_dec(-128, '020180'O);
1113 check_enc_dec( 127, '02017F'O);
1114
1115 // 32 bit min,max
1116 check_enc_dec(-2147483648, '020480000000'O);
1117 check_enc_dec( 2147483647, '02047FFFFFFF'O);
1118
1119 // 40 bit min,max
1120 check_enc_dec(-549755813888, '02058000000000'O);
1121 check_enc_dec( 549755813887, '02057FFFFFFFFF'O);
1122
1123 // 48 bit min,max
1124 check_enc_dec(-140737488355328, '0206800000000000'O);
1125 check_enc_dec( 140737488355327, '02067FFFFFFFFFFF'O);
1126
1127 // 56 bit min,max
1128 check_enc_dec(-36028797018963968, '020780000000000000'O);
1129 check_enc_dec( 36028797018963967, '02077FFFFFFFFFFFFF'O);
1130
1131 // 64 bit min,max
1132 check_enc_dec(-9223372036854775808, '02088000000000000000'O);
1133 check_enc_dec( 9223372036854775807, '02087FFFFFFFFFFFFFFF'O);
1134
1135 check_enc_dec(-12345678910111213141516, '020AFD62BD49A976CD7441F4'O);
1136 check_enc_dec( 12345678910111213141516, '020A029D42B65689328BBE0C'O);
1137
1138 }
1139
1140 control
1141 {
1142 execute(TC0a());
1143 execute(TC2a());
1144 execute(TC2b());
1145 execute(TC3a());
1146 execute(TC3b());
1147 execute(TC3c());
1148 execute(TC4());
1149 execute(TC5());
1150 execute(TC6());
1151 execute(TC7());
1152 execute(TC8());
1153 execute(TC10());
1154 execute(TC11_12());
1155 execute(TC11_13());
1156 execute(TC11_14());
1157 execute(TC11_15());
1158 execute(TC11_16());
1159 execute(TC11_17());
1160 execute(TC11_18());
1161 execute(TC11_19());
1162 execute(TC11_20());
1163 execute(TC11_21());
1164 execute(TC11_22());
1165 execute(tc_int_enc_dec());
1166 }
1167
1168}
This page took 0.065891 seconds and 5 git commands to generate.