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