blob: 1c842503abe111a62e51b32f35243502f21e0f20 [file] [log] [blame]
Harald Welteac359802017-04-12 12:13:44 +02001////////////////////////////////////////////////////////////////////////////////
2//
3// Copyright Test Competence Center (TCC) ETH 2003
4//
5// The copyright to the computer program(s) herein is the property of TCC. //
6// The program(s) may be used and/or copied only with the written permission //
7// of TCC or in accordance with the terms and conditions stipulated in the //
8// agreement/contract under which the program(s) have been supplied
9//
10///////////////////////////////////////////////////////////////////////////////
11//
12// File: mtp3test.cc
13// Description: basic test for MTP3asp_PT
14// Rev: <RnXnn>
15// Prodnr: CNL 113 337
16// Updated: 2004.06.02
17// Contact: http://ttcn.ericsson.se
18
19
20module mtp3test
21{
22
23modulepar
24{
25 //mtp3test specific data:
26 //OCT1n MTP3_UserPart_SIO;
27 MTP3_Field_sio MTP3_UserPart_SIO;
28 integer MTP3_UserPart_OPC,
29 MTP3_UserPart_DPC,
30 MTP3_UserPart_SLS
31};//modulepar
32
33import from MTP3asp_Types all;
34import from MTP3asp_PortType all;
35
36/*************************************
37* Components
38**************************************/
39
40/*
41**************** 1: 2: ************************
42* MTP3UserPart * <---------> * MTP3/M3UA in MSC *
43**************** (MTP3port)************************
441: MTP3asp_PT MTP3_PCO alias: e.g. CMGW6
45
46*/
47
48type record of MTP3UserPart_CT CompArray;
49
50type component MTC_CT
51{
52 port MTP3asp_PT MTC_PCO;
53 var MTP3UserPart_CT vc_MTP3UserPart_BSC1A;
54 var MTP3UserPart_CT vc_MTP3UserPart_BSC1B;
55 var MTP3UserPart_CT vc_MTP3UserPart_BSC1C;
56 var MTP3UserPart_CT vc_MTP3UserPart_CMGW3;
57 var MTP3UserPart_CT vc_MTP3UserPart_CMGW6;
58 var MTP3UserPart_CT vc_MTP3UserPart_CMGW9;
59 var MTP3UserPart_CT vc_compArray[6];
60};
61
62// Model of MSC:
63type component MSC_SCT
64{
65 port MTP3asp_PT BSC1A;
66 port MTP3asp_PT BSC1B;
67 port MTP3asp_PT BSC1C;
68 port MTP3asp_PT CMGW3;
69 port MTP3asp_PT CMGW6;
70 port MTP3asp_PT CMGW9;
71};
72
73//Model of SS7 MTP3 User Part for Self Test. Only logs the messages
74type component MTP3UserPart_CT
75{
76 var ASP_MTP3_TRANSFERind v_MTP3_TRANSFERind;
77 var ASP_MTP3_TRANSFERreq v_MTP3_TRANSFERreq;
78 port MTP3asp_PT MTP3_PCO;
79 // port ... to the upper layers
80} // end component type definition
81
82/*
83function MTC_delay(integer time) runs on MTC_CT {
84 timer t:=time;
85 t.start;
86 setverdict(none);
87 alt{ []t.timeout {} }
88 }
89*/
90
91function mtp3_selftest( ) runs on MTP3UserPart_CT
92{
93 timer t_Guard := 6.0;
94 log( "mtp3_selftest started");
95 t_Guard.start;
96 setverdict(none);
97 alt
98 {
99 [] MTP3_PCO.receive ( ASP_MTP3_TRANSFERind:?) -> value v_MTP3_TRANSFERind
100 {
101 log("ASP_MTP3_TRANSFERind: received");
102 setverdict(pass);
103 repeat;
104 }
105 [] MTP3_PCO.receive
106 {
107 log("Unknown signal received");
108 setverdict(pass);
109 repeat;
110 }
111 [] t_Guard.timeout
112 { log("timeout reached");}
113 } //alt
114 log("mtp3_selftest finished");
115}
116
117function f_init( ) runs on MTC_CT
118{
119 vc_MTP3UserPart_BSC1A := MTP3UserPart_CT.create;
120 vc_MTP3UserPart_BSC1B := MTP3UserPart_CT.create;
121 vc_MTP3UserPart_BSC1C := MTP3UserPart_CT.create;
122 vc_MTP3UserPart_CMGW3 := MTP3UserPart_CT.create;
123 vc_MTP3UserPart_CMGW6 := MTP3UserPart_CT.create;
124 vc_MTP3UserPart_CMGW9 := MTP3UserPart_CT.create;
125
126 map(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A);
127 map(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B);
128 map(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C);
129 map(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3);
130 map(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6);
131 map(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9);
132
133 log("tc_3 map is ready");
134}
135
136function f_start() runs on MTC_CT
137{
138 vc_MTP3UserPart_BSC1A.start( mtp3userpart_test() );
139 vc_MTP3UserPart_BSC1B.start( mtp3userpart_test() );
140 vc_MTP3UserPart_BSC1C.start( mtp3userpart_test() );
141 vc_MTP3UserPart_CMGW3.start( mtp3userpart_test() );
142 vc_MTP3UserPart_CMGW6.start( mtp3userpart_test() );
143 vc_MTP3UserPart_CMGW9.start( mtp3userpart_test() );
144}
145
146function f_terminate() runs on MTC_CT
147{
148 all component.done;
149 unmap(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A);
150 unmap(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B);
151 unmap(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C);
152 unmap(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3);
153 unmap(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6);
154 unmap(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9);
155}
156
157function mtp3userpart_test( ) runs on MTP3UserPart_CT {
158 timer t_Guard := 5.0;
159 log( "mtp3userpart_test started");
160 v_MTP3_TRANSFERreq :=
161 {
162 sio := MTP3_UserPart_SIO,
163 opc := MTP3_UserPart_OPC,
164 dpc := MTP3_UserPart_DPC,
165 sls := 0,
166 data:= '010203040506070809000102030405060708090000010203040506070809000000'O
167 };
168 MTP3_PCO.send( v_MTP3_TRANSFERreq );
169 t_Guard.start;
170 setverdict(none);
171 alt
172 {
173 [] MTP3_PCO.receive ( ASP_MTP3_TRANSFERind:? ) -> value v_MTP3_TRANSFERind
174 {
175 log("ASP_MTP3_TRANSFERind: received");
176 setverdict(pass);
177 repeat;
178 }
179 [] MTP3_PCO.receive
180 {
181 log("Unknown signal received");
182 setverdict(pass);
183 repeat;
184 }
185 [] t_Guard.timeout
186 {
187 //setverdict(inconc);
188 log("timeout reached");
189 }
190 } //alt
191 log("mtp3userpart_test finished");
192}
193
194testcase tc_1() runs on MTC_CT system MSC_SCT
195{
196 log ("tc_1 started");
197 var MTP3UserPart_CT vc_MTP3userpart;
198 vc_MTP3userpart := MTP3UserPart_CT.create;
199 map(vc_MTP3userpart:MTP3_PCO, system:CMGW6);
200 log("map is ready");
201 vc_MTP3userpart.start( mtp3_selftest() );
202 //MTC_delay(6);
203 vc_MTP3userpart.done;
204 unmap(vc_MTP3userpart:MTP3_PCO, system:CMGW6);
205 log ("tc_1 finished");
206}
207
208// TC2: Testcase sending one simple message "MTP-transfer-req" and waiting
209testcase tc_2() runs on MTC_CT system MSC_SCT
210{
211 log ("tc_2 started");
212 var MTP3UserPart_CT vc_MTP3userpart;
213 vc_MTP3userpart := MTP3UserPart_CT.create;
214 map(vc_MTP3userpart:MTP3_PCO, system:CMGW6);
215 log("map is ready");
216 vc_MTP3userpart.start( mtp3userpart_test() );
217 //MTC_delay(6);
218 vc_MTP3userpart.done;
219 unmap(vc_MTP3userpart:MTP3_PCO, system:CMGW6);
220 log ("tc_2 finished");
221}
222
223testcase tc_3() runs on MTC_CT system MSC_SCT
224{
225 log ("tc_3 started");
226 vc_MTP3UserPart_BSC1A := MTP3UserPart_CT.create;
227 vc_MTP3UserPart_BSC1B := MTP3UserPart_CT.create;
228 vc_MTP3UserPart_BSC1C := MTP3UserPart_CT.create;
229 vc_MTP3UserPart_CMGW3 := MTP3UserPart_CT.create;
230 vc_MTP3UserPart_CMGW6 := MTP3UserPart_CT.create;
231 vc_MTP3UserPart_CMGW9 := MTP3UserPart_CT.create;
232
233 map(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A);
234 map(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B);
235 map(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C);
236 map(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3);
237 map(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6);
238 map(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9);
239
240 log("tc_3 map is ready");
241 vc_MTP3UserPart_BSC1A.start( mtp3userpart_test() );
242 vc_MTP3UserPart_BSC1B.start( mtp3userpart_test() );
243 vc_MTP3UserPart_BSC1C.start( mtp3userpart_test() );
244 vc_MTP3UserPart_CMGW3.start( mtp3userpart_test() );
245 vc_MTP3UserPart_CMGW6.start( mtp3userpart_test() );
246 vc_MTP3UserPart_CMGW9.start( mtp3userpart_test() );
247
248 //MTC_delay(6);
249 all component.done;
250 unmap(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A);
251 unmap(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B);
252 unmap(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C);
253 unmap(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3);
254 unmap(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6);
255 unmap(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9);
256 log ("tc_3 finished");
257}
258
259// tc_4 is the same as tc_3 but organized by arrays and cycles
260testcase tc_4() runs on MTC_CT system MSC_SCT
261{
262 f_init();
263 f_start();
264 f_terminate();
265}
266
267testcase tc_5() runs on MTC_CT
268{
269 var ASP_MTP3_TRANSFERreq vl_MTP3_TRANSFERreq :=
270 { sio :=
271 { ni := '00'B,
272 prio := '00'B,
273 si := '0000'B
274 },
275 opc := 0,
276 dpc := 0,
277 sls := 0,
278 data:= '010203040506070809000102030405060708090000010203040506070809000000'O
279 };
280
281 map(self:MTC_PCO,system:MTC_PCO);
282 MTC_PCO.send(vl_MTP3_TRANSFERreq);
283 MTC_PCO.receive;
284 unmap(self:MTC_PCO,system:MTC_PCO);
285}
286
287control
288{
289 execute (tc_1());
290}
291
292}//module