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