Sync with 5.4.0
[deliverable/titan.core.git] / regression_test / nonMandatoryPar / TnonMandatory.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 TnonMandatory {
9type port PCOType message
10{
11 inout charstring;
12}
13
14type component MTCType
15{
16 port PCOType comp_port1,comp_port2;
17 const integer comp_const_i:= 0;
18 var integer comp_var_i := 0;
19 timer comp_t := 100.0;
20}
21
22template integer templ_int := 0;
23template integer templ_int2 := 1;
24
25type record rec_type
26{
27 integer a,
28 integer b
29}
30
31template rec_type t1(in integer x:=1, in integer y := 1):=
32{
33 a := x,
34 b := y
35}
36
37type set set_type
38{
39 integer a,
40 integer b
41}
42
43type function func_type(in boolean is_set := false, in boolean b := false) return verdicttype;
44const func_type func_const := refers(boolean_function);
45
46function simple_integers(in integer i1, in integer i2 := 0, in integer i3 := 0) return integer
47{
48 return i1 + i2 + i3;
49}
50
51function simple_integer_template(in integer i1, template integer i2:=templ_int) return integer
52{
53 return i1 + valueof(i2);
54}
55
56function missing_integers(in integer i1:=0, in integer i2, inout integer i3) return integer
57{
58 return i1 + i2 + i3;
59}
60
61function mixed_integers(in integer i1:=0, in integer i2, in integer i3:=0) return integer
62{
63 return i1 + i2 + i3;
64}
65
66function lotsof_mixed_integers(in integer i1:=0, in integer i2:=0, in integer i3, in integer i4 := 0, in integer i5:=0, in integer i6:=comp_const_i, inout integer i7:= comp_var_i) runs on MTCType return integer
67{
68 return i1+i2+i3+i4+i5+i6+i7;
69}
70
71function boolean_function(in boolean is_set := false, in boolean b := false) return verdicttype
72{
73 if(is_set and b == true) {return pass;}
74 else if(not(is_set) and b == false) {return pass;}
75 else {return fail;}
76}
77
78function float_function(in boolean is_set := false, in float f:=0.0) return verdicttype
79{
80 if(is_set and f == 1.0) {return pass;}
81 else if(not(is_set) and f == 0.0) {return pass;}
82 else {return fail;}
83}
84
85function charstring_function(in boolean is_set := false, in charstring c:="") return verdicttype
86{
87 if(is_set and c == "Hello") {return pass;}
88 else if(not(is_set) and c == "") {return pass;}
89 else {return fail;}
90}
91
92function octetstring_function( in boolean is_set := false, in octetstring o:=''O) return verdicttype
93{
94 if(is_set and o == '11'O) {return pass;}
95 else if(not(is_set) and o == ''O) {return pass;}
96 else {return fail;}
97}
98
99function bitstring_function( in boolean is_set := false, in bitstring b:=''B) return verdicttype
100{
101 if(is_set and b == '11'B) {return pass;}
102 else if(not(is_set) and b == ''B) {return pass;}
103 else {return fail;}
104}
105
106function record_function(in boolean is_set := false, in rec_type r:={0,0}) return verdicttype
107{
108 if(is_set and r == {1,1}) {return pass;}
109 else if(not(is_set) and r == {0,0}) {return pass;}
110 else {return fail;}
111}
112
113function set_function(in boolean is_set := false, in set_type r:={a:=0,b:=0}) return verdicttype
114{
115 if(is_set and r == {a:=1,b:=1}) {return pass;}
116 else if(not(is_set) and r == {a:=0,b:=0}) {return pass;}
117 else {return fail;}
118}
119
120function timer_function(in boolean is_set := false, inout timer t := comp_t) runs on MTCType return verdicttype
121{
122 if(is_set and t.running) {return pass;}
123 else if(not(is_set) and not(t.running)) { return pass;}
124 else {return fail;}
125}
126
127function port_function(in boolean is_set := false, inout PCOType p := comp_port1) runs on MTCType return verdicttype
128{
129 timer t := 1.0;
130 t.start;
131 alt{
132 []p.receive(charstring:"default"){
133 if(is_set){return fail;}
134 else {return pass;}
135 }
136 []p.receive(charstring:"actual"){
137 if(is_set){return pass;}
138 else{return fail;}
139 }
140 []t.timeout{return fail;}
141 }
142 t.stop;
143return inconc;
144}
145
146altstep simple_altstep(in boolean is_set := false) runs on MTCType
147{
148 []comp_port1.receive("Hello")
149 {
150 if(is_set){setverdict(pass);}
151 else{setverdict(fail);}
152 }
153 []comp_port1.receive
154 {
155 if(is_set){setverdict(fail);}
156 else{setverdict(pass);}
157 }
158}
159
160testcase simple_integer_test() runs on MTCType
161{
162 var integer temporal;
163 if(simple_integers(1,2,3) == 6) {setverdict(pass);}
164 else {setverdict(fail);}
165 if(simple_integers(1,2,-) == 3) {setverdict(pass);}
166 else {setverdict(fail);}
167 if(simple_integers(1,2) == 3) {setverdict(pass);}
168 else {setverdict(fail);}
169 if(simple_integer_template(1,templ_int) == 1) {setverdict(pass);}
170 else {setverdict(fail);}
171 if(simple_integer_template(1,templ_int2) == 2) {setverdict(pass);}
172 else {setverdict(fail);}
173 if(simple_integer_template(1,-) == 1) {setverdict(pass);}
174 else {setverdict(fail);}
175 if(simple_integer_template(1) == 1) {setverdict(pass);}
176 else {setverdict(fail);}
177 temporal := 2;
178 if(missing_integers(-,1,temporal) == 3) {setverdict(pass);}
179 else {setverdict(fail);}
180 if(mixed_integers(1,2,3) == 6) {setverdict(pass);}
181 else {setverdict(fail);}
182 if(mixed_integers(1,2,-) == 3) {setverdict(pass);}
183 else {setverdict(fail);}
184 if(mixed_integers(1,2) == 3) {setverdict(pass);}
185 else {setverdict(fail);}
186 if(mixed_integers(-,2,3) == 5) {setverdict(pass);}
187 else {setverdict(fail);}
188 if(mixed_integers(-,2,-) == 2) {setverdict(pass);}
189 else {setverdict(fail);}
190 if(mixed_integers(-,2) == 2) {setverdict(pass);}
191 else {setverdict(fail);}
192 if(lotsof_mixed_integers(1,2,3,4,5,6) == 21) {setverdict(pass);}
193 else {setverdict(fail);}
194 if(lotsof_mixed_integers(-,-,3,4,5,6) == 18) {setverdict(pass);}
195 else {setverdict(fail);}
196 temporal := 7;
197 if(lotsof_mixed_integers(-,-,3,4,5,6,temporal) == 25) {setverdict(pass);}
198 else {setverdict(fail);}
199 if(lotsof_mixed_integers(1,2,3) == 6) {setverdict(pass);}
200 else {setverdict(fail);}
201 if(lotsof_mixed_integers(-,-,3) == 3) {setverdict(pass);}
202 else {setverdict(fail);}
203}
204
205testcase simple_boolean_test() runs on MTCType
206{
207 setverdict(boolean_function(true,true));
208 setverdict(boolean_function(false,-));
209 setverdict(boolean_function(false));
210 setverdict(boolean_function(-,-));
211 setverdict(boolean_function());
212}
213
214testcase simple_float_test() runs on MTCType
215{
216 setverdict(float_function(true,1.0));
217 setverdict(float_function(false,-));
218 setverdict(float_function(false));
219 setverdict(float_function(-,-));
220 setverdict(float_function());
221}
222
223testcase simple_charstring_test() runs on MTCType
224{
225 setverdict(charstring_function(true,"Hello"));
226 setverdict(charstring_function(false,-));
227 setverdict(charstring_function(false));
228 setverdict(charstring_function(-,-));
229 setverdict(charstring_function());
230}
231
232testcase simple_octetstring_test() runs on MTCType
233{
234 setverdict(octetstring_function(true,'11'O));
235 setverdict(octetstring_function(false,-));
236 setverdict(octetstring_function(false));
237 setverdict(octetstring_function(-,-));
238 setverdict(octetstring_function());
239}
240
241testcase simple_bitstring_test() runs on MTCType
242{
243 setverdict(bitstring_function(true,'11'B));
244 setverdict(bitstring_function(false,-));
245 setverdict(bitstring_function(false));
246 setverdict(bitstring_function(-,-));
247 setverdict(bitstring_function());
248}
249
250testcase simple_record_test() runs on MTCType
251{
252 setverdict(record_function(true,{1,1}));
253 setverdict(record_function(false,-));
254 setverdict(record_function(false));
255 setverdict(record_function(-,-));
256 setverdict(record_function());
257}
258
259testcase simple_set_test() runs on MTCType
260{
261 setverdict(set_function(true,{a:=1,b:=1}));
262 setverdict(set_function(false,-));
263 setverdict(set_function(false));
264 setverdict(set_function(-,-));
265 setverdict(set_function());
266}
267
268testcase simple_timer_test() runs on MTCType
269{
270 timer temp := 100.0;
271 temp.start;
272 setverdict(timer_function(true,temp));
273 temp.stop;
274 comp_t.start;
275 setverdict(timer_function(true,comp_t));
276 comp_t.stop;
277 setverdict(timer_function(false,-));
278 setverdict(timer_function(false));
279 setverdict(timer_function(-,-));
280 setverdict(timer_function());
281}
282
283testcase simple_port_test() runs on MTCType
284{
285 connect(self:comp_port1,self:comp_port1);
286 connect(self:comp_port2,self:comp_port2);
287 comp_port2.send("actual");
288 setverdict(port_function(true,comp_port2));
289 comp_port1.send("default");
290 setverdict(port_function(false,-));
291 comp_port1.send("default");
292 setverdict(port_function(false));
293 comp_port1.send("default");
294 setverdict(port_function(-,-));
295 comp_port1.send("default");
296 setverdict(port_function());
297 disconnect(self:comp_port1,self:comp_port1);
298 disconnect(self:comp_port2,self:comp_port2);
299}
300
301testcase altstep_test() runs on MTCType
302{
303 connect(self:comp_port1,self:comp_port1);
304 timer T := 1.0;
305 comp_port1.send("Hello");
306 T.start;
307 alt{
308 []simple_altstep(true){T.stop;}
309 []T.timeout {setverdict(inconc);}
310 }
311 comp_port1.send("rossz uzenet");
312 T.start;
313 alt{
314 []simple_altstep(){T.stop;}
315 []T.timeout {setverdict(inconc);}
316 }
317 activate(simple_altstep(true));
318 comp_port1.send("Hello");
319 T.start;
320 alt{
321 []T.timeout {setverdict(inconc);}
322 }
323 T.stop;
324 deactivate;
325 activate(simple_altstep());
326 comp_port1.send("rossz uzenet");
327 T.start;
328 alt{
329 []simple_altstep(false){T.stop;}
330 []T.timeout {setverdict(inconc);}
331 }
332 deactivate;
333 disconnect(self:comp_port1,self:comp_port1);
334}
335
336testcase testcase_test(in boolean is_set := false, in integer x := 1,
337 in integer y := 1) runs on MTCType
338{
339 if(not(is_set) and x == 1 and y == 1){setverdict(pass);}
340 else if(is_set and x == 2 and y == 2){setverdict(pass);}
341 else {setverdict(fail);}
342}
343
344testcase template_test() runs on MTCType
345{
346 var rec_type given := {2,2};
347 var rec_type base := {1,1};
348 if(match(base,t1())){setverdict(pass);}
349 else{setverdict(fail);}
350 if(match(base,t1(-,-))){setverdict(pass);}
351 else{setverdict(fail);}
352 if(match(base,t1(1))){setverdict(pass);}
353 else{setverdict(fail);}
354 if(match(base,t1(-,1))){setverdict(pass);}
355 else{setverdict(fail);}
356 if(match(given,t1(2,2))){setverdict(pass);}
357 else{setverdict(fail);}
358}
359
360testcase functionreference_test() runs on MTCType
361{
362 var func_type func_var := refers(boolean_function);
363 setverdict(func_var.apply(true,true));
364 setverdict(func_var.apply(false,-));
365 setverdict(func_var.apply(false));
366 setverdict(func_var.apply(-,-));
367 setverdict(func_var.apply());
368 setverdict(func_const.apply(true,true));
369 setverdict(func_const.apply(false,-));
370 setverdict(func_const.apply(false));
371 setverdict(func_const.apply(-,-));
372 setverdict(func_const.apply());
373}
374
375control{
376 execute(simple_integer_test());
377 execute(simple_boolean_test());
378 execute(simple_float_test());
379 execute(simple_charstring_test());
380 execute(simple_octetstring_test());
381 execute(simple_bitstring_test());
382 execute(simple_record_test());
383 execute(simple_set_test());
384 execute(simple_timer_test());
385 execute(simple_port_test());
386 execute(altstep_test());
387 execute(testcase_test(false,-,-));
388 execute(testcase_test(false,-,1));
389 execute(testcase_test(false));
390 execute(testcase_test());
391 execute(testcase_test(true,2,2));
392 execute(template_test());
393 execute(functionreference_test());
394}
395}
This page took 0.037151 seconds and 5 git commands to generate.