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