Last sync 2016.04.01
[deliverable/titan.core.git] / regression_test / all_from / all_from_var.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 * Baranyi, Botond
11 *
12 ******************************************************************************/
13 module all_from_var { // HR17266
14
15 import from types all;
16 import from functions all;
17
18 // Testing 'all from' on variables, constants and template variables
19 testcase tc_checkVar() runs on A {
20 var RoI v_roi1 := { 1, 2, 6, 7, 9 };
21 var template integer v_af := ( 8, all from v_roi1 );
22
23 var RoI vl_goodValues := { 1, 2, 6, 7, 8, 9 };
24 var RoI vl_badValues := { -99, -10, -1, 0, 3, 4, 5, 10, 11, 20, 99, 100, 101, 102, 200, 1000, 100000000000000 };
25 f_checkIntegerTemplate(v_af, vl_goodValues, vl_badValues);
26 }
27
28 testcase tc_checkConst() runs on A {
29 const RoI c_roi1 := { 1, 2, 6, 7, 9 };
30 var template integer v_af := ( 8, all from c_roi1 );
31
32 var RoI vl_goodValues := { 1, 2, 6, 7, 8, 9 };
33 var RoI vl_badValues := { -99, -10, -1, 0, 3, 4, 5, 10, 11, 20, 99, 100, 101, 102, 200, 1000, 100000000000000 };
34 f_checkIntegerTemplate(v_af, vl_goodValues, vl_badValues);
35 }
36
37 testcase tc_checkTempVar() runs on A {
38 var template RoI vt_roi1 := { 1, 2, (6 .. 9) };
39 var template integer v_af := ( 11, all from vt_roi1 );
40
41 var RoI vl_goodValues := { 1, 2, 6, 7, 8, 9 };
42 var RoI vl_badValues := { -99, -10, -1, 0, 3, 4, 5, 10, 20, 99, 100, 101, 102, 200, 1000, 100000000000000 };
43 f_checkIntegerTemplate(v_af, vl_goodValues, vl_badValues);
44 }
45
46 // Testing the complement of an 'all from' (used on variables, constants and template variables)
47 testcase tc_checkVarComplement() runs on A {
48 var RoI v_roi1 := { 1, 2, 6, 7, 9 };
49 var template integer v_af := complement ( 8, all from v_roi1 );
50
51 var RoI vl_badValues := { 1, 2, 6, 7, 8, 9 };
52 var RoI vl_goodValues := { -99, -10, -1, 0, 3, 4, 5, 10, 11, 20, 99, 100, 101, 102, 200, 1000, 100000000000000 };
53 f_checkIntegerTemplate(v_af, vl_goodValues, vl_badValues);
54 }
55
56 testcase tc_checkConstComplement() runs on A {
57 const RoI c_roi1 := { 1, 2, 6, 7, 9 };
58 var template integer v_af := complement ( 8, all from c_roi1 );
59
60 var RoI vl_badValues := { 1, 2, 6, 7, 8, 9 };
61 var RoI vl_goodValues := { -99, -10, -1, 0, 3, 4, 5, 10, 11, 20, 99, 100, 101, 102, 200, 1000, 100000000000000 };
62 f_checkIntegerTemplate(v_af, vl_goodValues, vl_badValues);
63 }
64
65 testcase tc_checkTempVarComplement() runs on A {
66 var template RoI vt_roi1 := { 1, 2, (6 .. 9) };
67 var template integer v_af := complement ( 11, all from vt_roi1 );
68
69 var RoI vl_badValues := { 1, 2, 6, 7, 8, 9 };
70 var RoI vl_goodValues := { -99, -10, -1, 0, 3, 4, 5, 10, 20, 99, 100, 101, 102, 200, 1000, 100000000000000 };
71 f_checkIntegerTemplate(v_af, vl_goodValues, vl_badValues);
72 }
73
74 // Testing the permutation of an 'all from' (used on variables, constants and template variables)
75 testcase tc_checkVarPermutation() runs on A {
76 var RoI v_roi1 := { 1, 2 };
77 var template RoI v_af := { permutation ( 6, all from v_roi1 ), 7 };
78
79 var RoRoI vl_goodValues := { {1, 2, 6, 7}, {1, 6, 2, 7}, {2, 1, 6, 7}, {2, 6, 1, 7}, {6, 1, 2, 7}, {6, 2, 1, 7}};
80 var RoRoI vl_badValues := { {}, {1}, {1, 2, 6}, {1, 2, 7}, {7, 2, 1, 6}, {-5, 1, 2, 6, 7}, {1, 2, 3, 4}, {7, 6}, {19000000000000, 107, 66, 18} }
81 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
82 }
83
84 testcase tc_checkConstPermutation() runs on A {
85 const RoI c_roi1 := { 1, 2 };
86 var template RoI v_af := { permutation ( 6, all from c_roi1 ), 7 };
87
88 var RoRoI vl_goodValues := { {1, 2, 6, 7}, {1, 6, 2, 7}, {2, 1, 6, 7}, {2, 6, 1, 7}, {6, 1, 2, 7}, {6, 2, 1, 7}};
89 var RoRoI vl_badValues := { {}, {1}, {1, 2, 6}, {1, 2, 7}, {7, 2, 1, 6}, {-5, 1, 2, 6, 7}, {1, 2, 3, 4}, {7, 6}, {19000000000000, 107, 66, 18} };
90 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
91 }
92
93 testcase tc_checkTempVarPermutation() runs on A {
94 var template RoI vt_roi1 := { (1..3), (2..4) };
95 var template RoI v_af := { permutation ( all from vt_roi1 ), 7 };
96
97 var RoRoI vl_goodValues := { {1, 2, 7}, {2, 2, 7}, {3, 2, 7}, {1, 3, 7}, {2, 3, 7}, {3, 3, 7}, {1, 4, 7}, {2, 4, 7}, {3, 4, 7} };
98 var RoRoI vl_badValues := { {}, {1}, {1, 2, 6}, {1, 2, 3, 7}, {7, 2, 1, 6}, {-5, 1, 2, 7}, {1, 2, 3, 4}, {7, 6}, {19000000000000, 107, 66} };
99 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
100 }
101
102 // Testing the subset of an 'all from' (used on variables, constants and template variables)
103 testcase tc_checkVarSubset() runs on A {
104 var RoI v_roi1 := { 1, 2, 3 };
105 var template SoI v_af := subset (all from v_roi1);
106
107 var RoSoI vl_goodValues := { {}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2 ,3} };
108 var RoSoI vl_badValues := { {4}, {-8}, {6300000000000000000}, {1, 2, 6}, {1, 2, 3, 6}, {1, 1, 2, 3}, {0, 2, 3}, {100, 77777777777, 45454213414} };
109 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
110 }
111
112 testcase tc_checkConstSubset() runs on A {
113 const RoI c_roi1 := { 1, 2, 3 };
114 var template SoI v_af := subset (all from c_roi1);
115
116 var RoSoI vl_goodValues := { {}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2 ,3} };
117 var RoSoI vl_badValues := { {4}, {-8}, {6300000000000000000}, {1, 2, 6}, {1, 2, 3, 6}, {1, 1, 2, 3}, {0, 2, 3}, {100, 77777777777, 45454213414} };
118 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
119 }
120
121 testcase tc_checkTempVarSubset() runs on A {
122 var template RoI vt_roi1 := { 1, (2..4) };
123 var template SoI v_af := subset (all from vt_roi1);
124
125 var RoSoI vl_goodValues := { {}, {1}, {2}, {3}, {4}, {1, 2}, {1, 3}, {1, 4} };
126 var RoSoI vl_badValues := { {-8}, {6300000000000000000}, {2, 3}, {1, 2 ,3}, {1, 2, 6}, {1, 2, 3, 6}, {1, 1, 4}, {0, 2, 3}, {77777777777, 45454213414} };
127 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
128 }
129
130 // Testing the superset of an 'all from' (used on variables, constants and template variables)
131 testcase tc_checkVarSuperset() runs on A {
132 var RoI v_roi1 := { 1, 2, 3 };
133 var template SoI v_af := superset (all from v_roi1);
134
135 var RoSoI vl_goodValues := { {1, 2, 3}, {1, 2, 3, 0}, {1, 2, 3, 10}, {8, 2, 1, 3}, {3, 2, 1, 0}, {1, 1, 2, 3}, {1, 100, 77777777777, 2, 3, 45454213414} };
136 var RoSoI vl_badValues := { {}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {4}, {-8}, {6300000000000000000}, {1, 2, 6}, {0, 2, 3}, {100, 77777777777, 45454213414} };
137 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
138 }
139
140 testcase tc_checkConstSuperset() runs on A {
141 const RoI c_roi1 := { 1, 2, 3 };
142 var template SoI v_af := superset (all from c_roi1);
143
144 var RoSoI vl_goodValues := { {1, 2, 3}, {1, 2, 3, 0}, {1, 2, 3, 10}, {8, 2, 1, 3}, {3, 2, 1, 0}, {1, 1, 2, 3}, {1, 100, 77777777777, 2, 3, 45454213414} };
145 var RoSoI vl_badValues := { {}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {4}, {-8}, {6300000000000000000}, {1, 2, 6}, {0, 2, 3}, {100, 77777777777, 45454213414} };
146 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
147 }
148
149 testcase tc_checkTempVarSuperset() runs on A {
150 var template RoI vt_roi1 := { 1, (2..4) };
151 var template SoI v_af := superset (all from vt_roi1);
152
153 var RoSoI vl_goodValues := { {1, 2}, {1, 3}, {1, 2, 3}, {1, 3, 0}, {1, 2, 3, 10}, {8, 2, 1}, {3, 2, 1, 0}, {1, 1, 3}, {1, 100, 77777777777, 3, 45454213414} };
154 var RoSoI vl_badValues := { {}, {1}, {2}, {3}, {2, 3}, {4}, {-8}, {6300000000000000000}, {0, 2, 3}, {100, 77777777777, 45454213414}, {7, 6}, {3, 4} };
155 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
156 }
157
158 // Testing 'all from' on template variables that reference themselves
159 // (same with permutation, subset and superset)
160 testcase tc_checkTempVarSelf() runs on A {
161 var template RoI v_af := { 1, (2..4) };
162 v_af := { 7, (all from v_af) };
163
164 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
165 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
166 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
167 }
168
169 testcase tc_checkTempVarSelfPermutation() runs on A {
170 var template RoI v_af := { (1..3), (2..4) };
171 v_af := { permutation ( all from v_af ), 7 };
172
173 var RoRoI vl_goodValues := { {1, 2, 7}, {2, 2, 7}, {3, 2, 7}, {1, 3, 7}, {2, 3, 7}, {3, 3, 7}, {1, 4, 7}, {2, 4, 7}, {3, 4, 7} };
174 var RoRoI vl_badValues := { {}, {1}, {1, 2, 6}, {1, 2, 3, 7}, {7, 2, 1, 6}, {-5, 1, 2, 7}, {1, 2, 3, 4}, {7, 6}, {19000000000000, 107, 66} };
175 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
176 }
177
178 testcase tc_checkTempVarSelfSubset() runs on A {
179 var template SoI v_af := { 1, (2..4) };
180 v_af := subset (all from v_af);
181
182 var RoSoI vl_goodValues := { {}, {1}, {2}, {3}, {4}, {1, 2}, {1, 3}, {1, 4} };
183 var RoSoI vl_badValues := { {-8}, {6300000000000000000}, {2, 3}, {1, 2 ,3}, {1, 2, 6}, {1, 2, 3, 6}, {1, 1, 4}, {0, 2, 3}, {77777777777, 45454213414} };
184 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
185 }
186
187 testcase tc_checkTempVarSelfSuperset() runs on A {
188 var template SoI v_af := { 1, (2..4) };
189 v_af := superset (all from v_af);
190
191 var RoSoI vl_goodValues := { {1, 2}, {1, 3}, {1, 2, 3}, {1, 3, 0}, {1, 2, 3, 10}, {8, 2, 1}, {3, 2, 1, 0}, {1, 1, 3}, {1, 100, 77777777777, 3, 45454213414} };
192 var RoSoI vl_badValues := { {}, {1}, {2}, {3}, {2, 3}, {4}, {-8}, {6300000000000000000}, {0, 2, 3}, {100, 77777777777, 45454213414}, {7, 6}, {3, 4} };
193 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
194 }
195
196 // Testing 'all from' and self referencing on function parameters
197 function f_all_from_par(inout template RoI p_af) runs on A {
198 p_af := { 7, (all from p_af) };
199 }
200
201 testcase tc_checkTempParSelf() runs on A {
202 var template RoI v_af := { 1, (2..4) };
203 f_all_from_par(v_af);
204
205 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
206 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
207 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
208 }
209
210 // Testing 'all from' and self referencing on template variables in the parameter lists of
211 // function calls and parametrised templates
212 function f_do_nothing(in template RoI p_temp) runs on A return template RoI {
213 return p_temp;
214 }
215
216 function f_do_nothing2(in template integer p_ti, in template RoI p_temp) runs on A return template RoI {
217 return p_temp;
218 }
219
220 function f_do_nothing_io(inout template RoI p_temp) runs on A return template RoI {
221 return p_temp;
222 }
223
224 testcase tc_checkTempVarFuncSelf() runs on A {
225 var template RoI v_af := { 1, (2..4) };
226 v_af := { 7, ( all from f_do_nothing(v_af) ) };
227
228 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
229 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
230 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
231 }
232
233 testcase tc_checkTempVarFuncSelf2() runs on A {
234 var template RoI v_af := { 1, (2..4) };
235 v_af := { 7, ( all from f_do_nothing_io(v_af) ) };
236
237 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
238 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
239 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
240 }
241
242 testcase tc_checkTempVarFuncSelf3() runs on A {
243 var template RoI v_af := { 1, (2..4) };
244 v_af := { 7, ( all from f_do_nothing2(0, v_af) ) };
245
246 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
247 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
248 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
249 }
250
251 testcase tc_checkTempVarFuncSelf4() runs on A {
252 var template RoI v_af := { 1, (2..4) };
253 v_af := { 7, ( all from f_do_nothing(f_do_nothing2(0, f_do_nothing(f_do_nothing2(7, v_af)))) ) };
254
255 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
256 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
257 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
258 }
259
260 template RoI t_pard(in template RoI t_r) := t_r;
261
262 testcase tc_checkTempVarTempPardSelf() runs on A {
263 var template RoI v_af := { 1, (2..4) };
264 v_af := { 7, ( all from t_pard(v_af) ) };
265
266 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
267 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
268 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
269 }
270
271 testcase tc_checkTempVarComboSelf() runs on A {
272 var template RoI v_af := { 1, (2..4) };
273 v_af := { 7, ( all from f_do_nothing2(5, t_pard(f_do_nothing(v_af))) ) };
274
275 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
276 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
277 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
278 }
279
280 control {
281 execute(tc_checkVar());
282 execute(tc_checkConst());
283 execute(tc_checkTempVar());
284 execute(tc_checkVarComplement());
285 execute(tc_checkConstComplement());
286 execute(tc_checkTempVarComplement());
287 execute(tc_checkVarPermutation());
288 execute(tc_checkConstPermutation());
289 execute(tc_checkTempVarPermutation());
290 execute(tc_checkVarSubset());
291 execute(tc_checkConstSubset());
292 execute(tc_checkTempVarSubset());
293 execute(tc_checkVarSuperset());
294 execute(tc_checkConstSuperset());
295 execute(tc_checkTempVarSuperset());
296 execute(tc_checkTempVarSelf());
297 execute(tc_checkTempVarSelfPermutation());
298 execute(tc_checkTempVarSelfSubset());
299 execute(tc_checkTempVarSuperset());
300 execute(tc_checkTempParSelf());
301 execute(tc_checkTempVarFuncSelf());
302 execute(tc_checkTempVarFuncSelf2());
303 execute(tc_checkTempVarFuncSelf3());
304 execute(tc_checkTempVarFuncSelf4());
305 execute(tc_checkTempVarTempPardSelf());
306 execute(tc_checkTempVarComboSelf());
307 }
308 }
This page took 0.056036 seconds and 5 git commands to generate.