conformance_test/positive_tests added
[deliverable/titan.core.git] / conformance_test / positive_tests / 20_statement_and_operations_for_alt / 2004_the_interleave_statement / Syn_2004_InterleaveStatement_001.ttcn
1 /*****************************************************************
2 * @author STF 433
3 * @version 0.0.1
4 * @purpose 1:20.4, Validate that interleave statements are properly handled.
5 * @verdict pass accept, noexecution
6 *****************************************************************/
7 module Syn_2004_InterleaveStatement_001 {
8 type port MyMessagePortType message {
9 inout MyMessageType;
10 } with {extension "internal"}
11
12 type component GeneralComp {
13 port MyMessagePortType pt_myPort1, pt_myPort2;
14 }
15
16 type record MyMessageType {
17 integer field1,
18 charstring field2,
19 boolean field3
20 }
21
22 testcase TC_Syn_2004_InterleaveStatement_001() runs on GeneralComp {
23
24 template MyMessageType MySig1 := {2, "abcxyz", true}
25 template MyMessageType MySig2 := MySig1;
26 template MyMessageType MySig3 := MySig1;
27 template MyMessageType MySig4 := MySig1;
28 template MyMessageType MySig5 := MySig1;
29 template MyMessageType MySig6 := MySig1;
30
31 connect(self:pt_myPort1, self:pt_myPort2);
32
33 pt_myPort1
34 .send(MyMessageType:
35 {
36 2,
37 "abcxyz",
38 true
39 });
40
41 interleave { // order of messages
42 [] pt_myPort1.receive(MySig1) { //3.
43 pt_myPort1.send(MySig2); //4.
44 pt_myPort1.receive(MySig3); //6.
45 setverdict(pass);
46 }
47 [] pt_myPort2.receive(MySig4) { // 1.
48 pt_myPort2.send(MySig5); //2.
49 pt_myPort2.receive(MySig6); //5.
50 pt_myPort2.send(MySig1); //7.
51 }
52 }
53 }
54 control {
55 execute(TC_Syn_2004_InterleaveStatement_001());
56 }
57 }
This page took 0.03496 seconds and 5 git commands to generate.