Commit | Line | Data |
---|---|---|
970ed795 | 1 | /****************************************************************************** |
3abe9331 | 2 | * Copyright (c) 2000-2015 Ericsson Telecom AB |
970ed795 EL |
3 | * All rights reserved. This program and the accompanying materials |
4 | * are made available under the terms of the Eclipse Public License v1.0 | |
5 | * which accompanies this distribution, and is available at | |
6 | * http://www.eclipse.org/legal/epl-v10.html | |
7 | ******************************************************************************/ | |
8 | module 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);} | |
3abe9331 | 1056 | else {setverdict(fail, "Encoding failed, encoded_pdu is ", log2str(encoded_pdu));} |
970ed795 | 1057 | var integer decoded := dec_ber_int(encoded_pdu); |
970ed795 | 1058 | if (int == decoded) { setverdict(pass); } |
3abe9331 | 1059 | else {setverdict(fail, "decoding failed, decoded is ", decoded);} |
970ed795 EL |
1060 | } with { |
1061 | extension "transparent" | |
1062 | } | |
1063 | ||
1064 | testcase tc_int_enc_dec() runs on comp_ber { | |
1065 | ||
1066 | check_enc_dec( 0, '020100'O); | |
1067 | ||
1068 | check_enc_dec(-1, '0201FF'O); | |
1069 | check_enc_dec( 1, '020101'O); | |
1070 | ||
1071 | check_enc_dec(-2, '0201FE'O); | |
1072 | check_enc_dec( 2, '020102'O); | |
1073 | check_enc_dec(-5, '0201FB'O); | |
1074 | check_enc_dec( 5, '020105'O); | |
1075 | ||
1076 | check_enc_dec(-254, '0202FF02'O); | |
1077 | check_enc_dec( 254, '020200FE'O); | |
1078 | check_enc_dec(-255, '0202FF01'O); | |
1079 | check_enc_dec( 255, '020200FF'O); | |
1080 | check_enc_dec(-256, '0202FF00'O); | |
1081 | check_enc_dec( 256, '02020100'O); | |
1082 | ||
1083 | check_enc_dec(-1234, '0202FB2E'O); | |
1084 | ||
1085 | // 2^16 | |
1086 | check_enc_dec(-65534, '0203FF0002'O); | |
1087 | check_enc_dec( 65534, '020300FFFE'O); | |
1088 | check_enc_dec(-65535, '0203FF0001'O); | |
1089 | check_enc_dec( 65535, '020300FFFF'O); | |
1090 | check_enc_dec(-65536, '0203FF0000'O); | |
1091 | check_enc_dec( 65536, '0203010000'O); | |
1092 | ||
1093 | // 2^24 | |
1094 | check_enc_dec(-16777215, '0204FF000001'O); | |
1095 | check_enc_dec( 16777215, '020400FFFFFF'O); | |
1096 | check_enc_dec(-16777216, '0204FF000000'O); | |
1097 | check_enc_dec( 16777216, '020401000000'O); | |
1098 | check_enc_dec(-16777217, '0204FEFFFFFF'O); | |
1099 | check_enc_dec( 16777217, '020401000001'O); | |
1100 | ||
1101 | // 2^32 | |
1102 | check_enc_dec(-4294967295, '0205FF00000001'O); | |
1103 | check_enc_dec( 4294967295, '020500FFFFFFFF'O); | |
1104 | check_enc_dec(-4294967296, '0205FF00000000'O); | |
1105 | check_enc_dec( 4294967296, '02050100000000'O); | |
1106 | check_enc_dec(-4294967297, '0205FEFFFFFFFF'O); | |
1107 | check_enc_dec( 4294967297, '02050100000001'O); | |
1108 | ||
1109 | // 8 bit min,max | |
1110 | check_enc_dec(-128, '020180'O); | |
1111 | check_enc_dec( 127, '02017F'O); | |
1112 | ||
1113 | // 32 bit min,max | |
1114 | check_enc_dec(-2147483648, '020480000000'O); | |
1115 | check_enc_dec( 2147483647, '02047FFFFFFF'O); | |
1116 | ||
1117 | // 40 bit min,max | |
1118 | check_enc_dec(-549755813888, '02058000000000'O); | |
1119 | check_enc_dec( 549755813887, '02057FFFFFFFFF'O); | |
1120 | ||
1121 | // 48 bit min,max | |
1122 | check_enc_dec(-140737488355328, '0206800000000000'O); | |
1123 | check_enc_dec( 140737488355327, '02067FFFFFFFFFFF'O); | |
1124 | ||
1125 | // 56 bit min,max | |
1126 | check_enc_dec(-36028797018963968, '020780000000000000'O); | |
1127 | check_enc_dec( 36028797018963967, '02077FFFFFFFFFFFFF'O); | |
1128 | ||
1129 | // 64 bit min,max | |
1130 | check_enc_dec(-9223372036854775808, '02088000000000000000'O); | |
1131 | check_enc_dec( 9223372036854775807, '02087FFFFFFFFFFFFFFF'O); | |
1132 | ||
1133 | check_enc_dec(-12345678910111213141516, '020AFD62BD49A976CD7441F4'O); | |
1134 | check_enc_dec( 12345678910111213141516, '020A029D42B65689328BBE0C'O); | |
1135 | ||
1136 | } | |
1137 | ||
1138 | control | |
1139 | { | |
1140 | execute(TC0a()); | |
1141 | execute(TC2a()); | |
1142 | execute(TC2b()); | |
1143 | execute(TC3a()); | |
1144 | execute(TC3b()); | |
1145 | execute(TC3c()); | |
1146 | execute(TC4()); | |
1147 | execute(TC5()); | |
1148 | execute(TC6()); | |
1149 | execute(TC7()); | |
1150 | execute(TC8()); | |
1151 | execute(TC10()); | |
1152 | execute(TC11_12()); | |
1153 | execute(TC11_13()); | |
1154 | execute(TC11_14()); | |
1155 | execute(TC11_15()); | |
1156 | execute(TC11_16()); | |
1157 | execute(TC11_17()); | |
1158 | execute(TC11_18()); | |
1159 | execute(TC11_19()); | |
1160 | execute(TC11_20()); | |
1161 | execute(TC11_21()); | |
1162 | execute(TC11_22()); | |
1163 | execute(tc_int_enc_dec()); | |
1164 | } | |
1165 | ||
1166 | } |