Sync with 5.4.0
[deliverable/titan.core.git] / regression_test / ASN1 / Test332 / Test332T.ttcn
1 /******************************************************************************
2 * Copyright (c) 2000-2015 Ericsson Telecom AB
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 ******************************************************************************/
8 module Test332T
9 {
10
11 import from Test332A all;
12
13 /*
14 // start of simulated import from ASN***************************
15 // note : the following commented out section should be equivalent to
16 // the sequences imported from ASN1
17
18 type record MyBigMessageType1
19 {
20 boolean field1,
21 integer field2 //Type
22 }
23
24 type record MyBigMessageType2
25 {
26 bitstring field1,
27 integer field2 //Type
28 }
29
30 type record MyBigMessageType3
31 {
32 octetstring field1,
33 integer field2 //Type
34 }
35
36 const MyBigMessageType1 myBigMessage1 :=
37 {
38 field1 := true,
39 field2 := 5
40 }
41
42 const MyBigMessageType2 myBigMessage2 :=
43 {
44 field1 := '010101'B,
45 field2 := 2
46 }
47
48 const MyBigMessageType3 myBigMessage3 :=
49 {
50 field1 := 'FFFF'O,
51 field2 := 3
52 }
53
54 //end of simulated import from ASN***************************
55 */
56
57 //AS A CONSTANT***************************
58
59 const integer MyInt1 := myBigMessage1.field2 //5
60
61 const integer MyInt2 := myBigMessage2.field2 //2
62
63 const integer MyInt3 := myBigMessage3.field2 //3
64 // we only check the type here
65 // ideally the values should be checked too (dynamically?)
66
67 const boolean MyBoolean := myBigMessage1.field1
68
69 const bitstring MyBitstring := myBigMessage2.field1
70
71 const octetstring MyOctetstring := myBigMessage3.field1
72 //AS A CONSTANT***************************
73
74 type port MyPort message
75 {
76 inout MyType
77 } with { extension "internal" }
78
79 type record MyType
80 {
81 MyBigMessageType1 firstfield,
82 MyBigMessageType2 secondfield,
83 MyBigMessageType3 thirdfield
84 }
85
86 template MyType myMessage(template MyBigMessageType1 par_MyBigMessageType1,
87 template MyBigMessageType2 par_MyBigMessageType2,
88 template MyBigMessageType2 par_MyBigMessageType2
89 )
90 :=
91 {
92 firstfield := par_MyBigMessageType1,
93 secondfield := par_MyBigMessageType2,
94 thirdfield := par_MyBigMessageType3
95 }
96
97 type component MyMainComponent
98 {
99 port MyPort M_PCO;
100 }
101
102 type component MyParallelComponent
103 {
104 port MyPort P_PCO;
105 }
106
107 function handle_msg_on_ptc() runs on MyParallelComponent
108 {
109
110 // AS PARAMETER *********************************************
111 P_PCO.receive (myMessage(myBigMessage1, myBigMessage2, myBigMessage3))
112 setverdict ( pass );
113 // AS PARAMETER *********************************************
114
115 } // end of function
116
117 testcase Test() runs on MyMainComponent
118 {
119
120 // AS A VARIABLE *********************************************
121 var MyBigMessageType1 myExampleMessage1 := myBigMessage1
122
123 var MyBigMessageType2 myExampleMessage2 := myBigMessage2
124
125 var MyBigMessageType3 myExampleMessage3 := myBigMessage3
126 // AS A VARIABLE *********************************************
127
128 var MyParallelComponent myparallelcomponent := MyParallelComponent.create;
129 connect ( mtc:M_PCO, myparallelcomponent: P_PCO );
130 myparallelcomponent.start(handle_msg_on_ptc());
131
132 // AS A PARAMETER *********************************************
133 M_PCO.send(myMessage(myBigMessage1, myBigMessage2, myBigMessage3))
134 // AS A PARAMETER *********************************************
135
136 myparallelcomponent.done;
137 }
138
139 control
140 {
141 execute (Test())
142 }
143
144 }
This page took 0.069736 seconds and 6 git commands to generate.