Fixed code generated for anytype field references in ispresent clauses (bug 495128)
[deliverable/titan.core.git] / regression_test / ispresent / IsPresent_Test.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 * Szabados, Kristof
11 *
970ed795
EL
12 ******************************************************************************/
13//Purpose: To test function ispresent()
14//Last modified:2013-01-09 ETHBAAT
15//It should be run in parallel mode
16
17module IsPresent_Test {
18
19modulepar integer tsp_repeatN :=100;
20
21type port MyChrMessage_PT message {
22 inout charstring
23} with { extension "internal"}
24
25type component MTC_CT {
26 port MyChrMessage_PT my_PCO;
27 //var integer v_counter1 :=0;
28
29}
30//===== SIMPLE, NOT TOO DEEP =====
31type record of charstring ROC;
32type record of integer ROI;
33type record MyRecord {
34 integer i optional,
35 float x optional,
36 charstring c
37}
38
39type record of ROI ROROI;
40
41type union MyUnion1 {
42 ROC roc,
43 integer i,
44 ROI roi,
45 MyRecord r
46}
47
48const MyUnion1 c_myunion1:= { roc:= { "1aa", "2bb", "3cc"}}
49const MyUnion1 c_myunion2:= { i:= 5}
50
51
52//====== DEEP 3===============
53type record MyRec2 {
54 ROC roc optional,
55 ROI roi optional,
56 MyUnion1 u optional,
57 MyRecord r optional
58}
59
60type record of MyRec2 MyRecOf
61
62 type record MyRec3{
63 ROROI roroi optional,
64 MyRec2 r optional
65 }
66
67 const MyRec2 c_myrec2_1:={
68 roc:=omit,
69 roi:={},
70 u:={r:={ i:=1, x:=1.0, c:="one"}},
71 r:={ i:=1, x:=1.0, c:="one"}
72 }
73 const MyRec2 c_myrec2_2:={
74 roc:={},
75 roi:={10,9,8},
76 u:={r:={ i:=1, x:=1.0, c:="one"}},
77 r:={ i:=1, x:=1.0, c:="one"}
78 }
79
80
81 //partially initialized record:
82 const MyRec2 c_myrec2_part:={
83 roc:={},
84 roi:={10,9,8},
85 u:={ r:={ /*i:=1,*/ x:=1.0, c:="one"}},
86 r:={ i:=1, x:=1.0, c:="one"}
87 }
88 const MyRec3 c_myrec3_1 := {
89 roroi:= { {1,2,3,4,5,6,7,8,9},{10} },
90 r:= omit
91 }
92
93 const MyRec3 c_myrec3_2 := {
94 roroi:= { {1,2,3,4,5,6,7,8,9},{10} },
95 r:= {
96 roc:={},
97 roi:={},
98 u:={i:=5},
99 r:=omit
100 }
101 }
102
103 const MyRec3 c_myrec3_innerOmits := {
104 roroi:= { {1,2,3,4,5,6,7,8,9},{10} },
105 r:= {
106 roc:=omit,
107 roi:=omit,
108 u:=omit,
109 r:=omit
110 }
111 }
112
113
114 //==== Templates =====
115
116
117 //===== SIMPLE TYPES =====
118 testcase tc_simple_charstring_unbound() runs on MTC_CT {
119 var charstring vl_ch;
120 if(ispresent(vl_ch)){setverdict(fail)} else {setverdict(pass)}
121 }
122
123
124 testcase tc_simple_charstring_isvalue() runs on MTC_CT {
125 var charstring vl_ch:="honey";
126 if(ispresent(vl_ch)) { setverdict(pass)} else {setverdict(fail)}
127 }
128
129 testcase tc_simple_charstring_template_unbound() runs on MTC_CT {
130 var template charstring vlt_ch;
131 if(ispresent(vlt_ch)){setverdict(fail)} else {setverdict(pass)}
132 }
133
134 testcase tc_simple_charstring_template_isvalue() runs on MTC_CT {
135 var template charstring vlt_ch:="AB?D*"
136 if(ispresent(vlt_ch)) {setverdict(pass)} else {setverdict(fail)}
137
138 }
139
140 testcase tc_simple_charstring_template_pattern() runs on MTC_CT {
141 var template charstring vlt_ch;
142 vlt_ch:= pattern "AB?D"
143 if(ispresent(vlt_ch)) {setverdict(pass)} else {setverdict(fail)}
144 }
145
146 testcase tc_simple_integer_unbound() runs on MTC_CT {
147 var integer vl_i;
148 if(ispresent(vl_i)){setverdict(fail)} else {setverdict(pass)} //fail
149 }
150
151 testcase tc_simple_integer_value() runs on MTC_CT {
152 var integer vl_i:=5;
153 if(ispresent(vl_i)) {setverdict(pass)} else {setverdict(fail)} //pass,
154 }
155
156 testcase tc_simple_integer_templ_asterix() runs on MTC_CT {
157 var template integer vtl_i :=*;
158 if(ispresent( vtl_i )) {setverdict(fail)}else {setverdict(pass)};
159 }
160
161 testcase tc_simple_integer_templ_qm() runs on MTC_CT {
162 var template integer vtl_i :=?;
163 if(ispresent( vtl_i )) {setverdict(pass)}else {setverdict(fail)};
164 }
165
166 testcase tc_simple_integer_templ_value() runs on MTC_CT {
167 var template integer vtl_i:=5;
168 if(ispresent( vtl_i )) {setverdict(pass)}else {setverdict(fail)};
169 }
170
171 testcase tc_simple_octetstring_unbound() runs on MTC_CT {
172 var octetstring vl_o;
173 if(ispresent(vl_o)){setverdict(fail)} else {setverdict(pass)} //fail
174 }
175
176 testcase tc_simple_octetstring_isvalue() runs on MTC_CT {
177 var octetstring
178 vl_o:='ABBA'O;
179 if(ispresent(vl_o)) {setverdict(pass)} else {setverdict(fail)} //not logged
180 }
181
182 //======= SPECIAL TYPES ======
183
184 altstep as_empty() runs on MTC_CT {
185 [] my_PCO.receive {}
186 };
187
188 function f_empty() runs on MTC_CT {
970ed795
EL
189 }
190
191 testcase tc_special_default_value_unbound() runs on MTC_CT {
192 var default vl_default;
193 if(ispresent(vl_default)){setverdict(fail)}else {setverdict(pass)};
194 }
195
196 testcase tc_special_default_value_null() runs on MTC_CT {
197 var default vl_default := null;
198 if(ispresent(vl_default)) {setverdict(pass)} else {setverdict(fail)}
199 }
200 testcase tc_special_default_value_isvalue() runs on MTC_CT {
201 var default vl_default := activate(as_empty());
970ed795
EL
202 if(ispresent(vl_default)){setverdict(pass)}else {setverdict(fail)};
203
204 deactivate(vl_default);
970ed795
EL
205 if(ispresent(vl_default)){setverdict(pass)}else {setverdict(fail)};
206 }
207
208 testcase tc_special_compref_unbound() runs on MTC_CT {
209 var MTC_CT vc_myComp;
970ed795
EL
210 if(ispresent(vc_myComp)){setverdict(fail)}else {setverdict(pass)};
211 }
212
213 testcase tc_special_compref_isvalue() runs on MTC_CT {
214 var MTC_CT vc_myComp:= MTC_CT.create("hali");
970ed795
EL
215 if(ispresent(vc_myComp)){setverdict(pass)}else {setverdict(fail)};
216
217 vc_myComp.start(f_empty());
218 if(ispresent(vc_myComp)){setverdict(pass)}else {setverdict(fail)};
219
220 vc_myComp.done;
221 if(ispresent(vc_myComp)){setverdict(pass)}else {setverdict(fail)};
222 }
223
224 //========= Compound =====
225 testcase tc_unionOfRecordOfs1() runs on MTC_CT {
226 var MyUnion1 vl_u:= c_myunion1;
227 if(ispresent(vl_u)) {setverdict(pass)} else {setverdict(fail)}
228 }
229 testcase tc_unionOfRecordOfs1_2() runs on MTC_CT {
230 var MyUnion1 vl_u:= c_myunion1;
231 if(ispresent(vl_u.roc)){setverdict(pass)} else {setverdict(fail)}
232 if(ispresent(vl_u.roc[0])){setverdict(pass)}else {setverdict(fail)}
233 if(ispresent(vl_u.roc[1])){setverdict(pass)}else {setverdict(fail)}
234 if(ispresent(vl_u.roc[2])){setverdict(pass)}else {setverdict(fail)}
235 if(ispresent(vl_u.roc[3])){setverdict(fail)}else {setverdict(pass)}
236 if(ispresent(vl_u.roc[99])){setverdict(fail)}else {setverdict(pass)}
237 if(ispresent(vl_u.i)){setverdict(fail)}else {setverdict(pass)}
238 if(ispresent(vl_u.roi)){setverdict(fail)}else {setverdict(pass)}
239 if(ispresent(vl_u.roi[0])){setverdict(fail)}else {setverdict(pass)}
240 if(ispresent(vl_u.roi[1])){setverdict(fail)} else {setverdict(pass)}
970ed795
EL
241 }
242
243 testcase tc_unionOfRecordOfs2() runs on MTC_CT {
244 var MyUnion1 vl_u:= c_myunion2;
245 if(ispresent(vl_u)) {setverdict(pass)} else {setverdict(fail)}
246 if(ispresent(vl_u.roc)){setverdict(fail)} else {setverdict(pass)}
247 if(ispresent(vl_u.roc[0])){setverdict(fail)} else {setverdict(pass)}
248 if(ispresent(vl_u.roc[1])){setverdict(fail)} else {setverdict(pass)}
249 if(ispresent(vl_u.roc[2])){setverdict(fail)} else {setverdict(pass)}
250 if(ispresent(vl_u.roc[3])){setverdict(fail)} else {setverdict(pass)}
251 if(ispresent(vl_u.roc[99])){setverdict(fail)} else {setverdict(pass)}
252 if(ispresent(vl_u.r)){setverdict(fail)} else {setverdict(pass)};
253 if(ispresent(vl_u.r.i)){setverdict(fail)} else {setverdict(pass)};
254 if(ispresent(vl_u.r.x)){setverdict(fail)} else {setverdict(pass)};
255 if(ispresent(vl_u.r.c)){setverdict(fail)} else {setverdict(pass)};
256 //checks if the selected item remained the same
257 if(ispresent(vl_u.i)){setverdict(pass)}else {setverdict(fail)}
258 if(ispresent(vl_u.roi)){setverdict(fail)} else {setverdict(pass)}
259 if(ispresent(vl_u.roi[0])){setverdict(fail)}else {setverdict(pass)}
260 if(ispresent(vl_u.roi[1])){setverdict(fail)} else {setverdict(pass)}
261 }
262
263
264 // testcase tc_compilationerror1() runs on MTC_CT {
265 // var MyUnion1 vl_u:= c_myunion2;
266 // if(ispresent(vl_u)) {setverdict(pass)} else {setverdict(fail)}
267 // if(ispresent(vl_u.roc)){setverdict(fail)} else {setverdict(pass)}
268 // if(ispresent(vl_u.roc[0])){setverdict(fail)}else {setverdict(pass)}
269 // if(ispresent(vl_u.r.x)){setverdict(fail)}else {setverdict(pass)}
270 // if(ispresent(vl_u.roc[99])){setverdict(fail)} else {setverdict(pass)}
271 // }
272
273
274
275 testcase tc_union_modify() runs on MTC_CT {
276 var MyUnion1 vl_u:= c_myunion2;
277 if(ispresent(vl_u)) {setverdict(pass)} else {setverdict(fail)}
278 if(ispresent(vl_u.roc)){setverdict(fail)} else {setverdict(pass)}
279 if(ispresent(vl_u.roi)){setverdict(fail)} else {setverdict(pass)}
280
281 vl_u:=c_myunion1;
282 if(ispresent(vl_u)) {setverdict(pass)} else {setverdict(fail)}
283 if(ispresent(vl_u.roc)){setverdict(pass)} else {setverdict(fail)}
284 if(ispresent(vl_u.roc[0])){setverdict(pass)}else {setverdict(fail)}
285 if(ispresent(vl_u.roc[1])){setverdict(pass)}else {setverdict(fail)}
286 if(ispresent(vl_u.roc[2])){setverdict(pass)}else {setverdict(fail)}
287 if(ispresent(vl_u.roc[3])){setverdict(fail)}
288 if(ispresent(vl_u.roc[99])){setverdict(fail)}
289 if(ispresent(vl_u.i)){setverdict(fail)}
290 if(ispresent(vl_u.roi)){setverdict(fail)}
291 if(ispresent(vl_u.roi[0])){setverdict(fail)}
292 if(ispresent(vl_u.roi[1])){setverdict(fail)} else {setverdict(pass)}
970ed795
EL
293 }
294 //expected:error
295 testcase tc_sideeffect1() runs on MTC_CT {
296 var MyUnion1 vl_u:= c_myunion1; // { roc:= { "1aa", "2bb", "3cc"}}
297 if(ispresent(vl_u.roc[2])){setverdict(pass)}else {setverdict(fail)}
298 if(ispresent(vl_u.roc[3])){setverdict(fail)}else {setverdict(pass)}
299 }
300
301 //expected:error
302 testcase tc_sideeffect2() runs on MTC_CT {
303 var MyUnion1 vl_u:= c_myunion1; // { roc:= { "1aa", "2bb", "3cc"}}
304 var integer vl_oldsize:=0, vl_newsize:=0;
305 vl_oldsize:=sizeof(vl_u.roc);
306
307 if(ispresent(vl_u.i)){setverdict(fail)}else {setverdict(pass)}
308
309 if(ispresent(vl_u.roc)) {setverdict(pass)}else {setverdict(fail)}
310
311 //checks if size is unchenged
312 if(ispresent(vl_u.roc[4])) {setverdict(fail)}else {setverdict(pass)}
313 vl_newsize:=sizeof(vl_u.roc);
314 if(vl_newsize == vl_oldsize) {setverdict(pass)}else {setverdict(fail)}
970ed795
EL
315 }
316
317 //====== DEEP 2-3 ===============
318
319
320 testcase tc_recordOf_omit1() runs on MTC_CT {
321 var MyRec2 vl_r:=c_myrec2_1;
322 if(ispresent(vl_r.roc)){setverdict(fail)}else {setverdict(pass)};
323 }
324
325 testcase tc_recordOf_omit2() runs on MTC_CT {
326 var MyRec2 vl_r:=c_myrec2_1;
327 if(ispresent(vl_r.roc[0])){setverdict(fail)}else {setverdict(pass)};
328 }
329
330 testcase tc_recordOf_emptyRoi1() runs on MTC_CT {
331 var MyRec2 vl_r:=c_myrec2_1;
332 if(ispresent(vl_r.roi)){setverdict(pass)}else {setverdict(fail)};
333 }
334
335 testcase tc_recordOf_emptyRoi2() runs on MTC_CT {
336 var MyRec2 vl_r:=c_myrec2_1;
337 if(ispresent(vl_r.roi[0])){setverdict(fail)}else {setverdict(pass)};
338 }
339
340 testcase tc_recordOf_emptyRoi3() runs on MTC_CT {
341 var MyRec2 vl_r:=c_myrec2_1;
342 if(ispresent(vl_r.roi[90])){setverdict(fail)}else {setverdict(pass)};
343 }
344
345 testcase tc_record_unbound() runs on MTC_CT {
346 var template MyRec2 vtl_rec2;
347 if(ispresent(vtl_rec2)) {setverdict(fail)}else {setverdict(pass)};
348 }
349
350 testcase tc_record_completlyInit() runs on MTC_CT {
351 var MyRec2 vl_r:=c_myrec2_1;
352 if(ispresent(vl_r)){setverdict(pass)}else {setverdict(fail)};
353 }
354
355 testcase tc_record_partiallyInit1() runs on MTC_CT {
356 var MyRec2 vl_r:=c_myrec2_part;
357 if(ispresent(vl_r)){setverdict(pass)}else {setverdict(fail)};
358 }
359
360
361 testcase tc_record_partiallyInit3() runs on MTC_CT {
362 var MyRec2 vl_r:=c_myrec2_part;
363 if(ispresent(vl_r.roc)){setverdict(pass)}else {setverdict(fail)};
364 }
365
366 testcase tc_record_partiallyInit4() runs on MTC_CT {
367 var MyRec2 vl_r:=c_myrec2_part;
368 if(ispresent(vl_r.roi)){setverdict(pass)}else {setverdict(fail)};
369 }
370
371 testcase tc_record_partiallyInit5() runs on MTC_CT {
372 var MyRec2 vl_r:=c_myrec2_part;
373 if(ispresent(vl_r.u)){setverdict(pass)}else {setverdict(fail)};
374 }
375
376 testcase tc_record_partiallyInit6() runs on MTC_CT {
377 var MyRec2 vl_r:=c_myrec2_part;
378 if(ispresent(vl_r.u.r)){setverdict(pass)}else {setverdict(fail)};
379 }
380
381 testcase tc_record_partiallyInit7() runs on MTC_CT {
382 var MyRec2 vl_r:=c_myrec2_part;
383 if(ispresent(vl_r.u.r.i)){setverdict(fail)}else {setverdict(pass)};
384 }
385
386 testcase tc_record_partiallyInit8() runs on MTC_CT {
387 var MyRec2 vl_r:=c_myrec2_part;
388 if(ispresent(vl_r.u.r.x)){setverdict(pass)}else {setverdict(fail)};
389 }
390
391 testcase tc_record_partiallyInit9() runs on MTC_CT {
392 var MyRec2 vl_r:=c_myrec2_part;
393 if(ispresent(vl_r.u.r.c)){setverdict(pass)}else {setverdict(fail)};
394 }
395
396 testcase tc_record_partiallyInit10() runs on MTC_CT {
397 var MyRec2 vl_r:=c_myrec2_part;
398 if(ispresent(vl_r.u.i)){setverdict(fail)}else {setverdict(pass)};
399 }
400
401
402 // testcase tc_record_partiallyInit11() runs on MTC_CT {
403 // var MyRec2 vl_r:={ r:={}}
404 // if(ispresent(vl_r.r)){setverdict(pass)}else {setverdict(fail)};
405 // }
406
407 testcase tc_record_partiallyInit12() runs on MTC_CT {
408 var MyRec2 vl_r:={ r:={i:=5}}
409 if(ispresent(vl_r.r)){setverdict(pass)}else {setverdict(fail)};
410 if(ispresent(vl_r.r.i)){setverdict(pass)}else {setverdict(fail)};
411 }
412
413 testcase tc_record_partiallyInit13() runs on MTC_CT {
414 var MyRec2 vl_r:={ r:={i:=5,x:=-,c:= -}}
415 if(ispresent(vl_r)){setverdict(pass)}else {setverdict(fail)};
416 if(ispresent(vl_r.r)){setverdict(pass)}else {setverdict(fail)};
417 if(ispresent(vl_r.r.i)){setverdict(pass)}else {setverdict(fail)};
418 }
419
420 testcase tc_record_omit() runs on MTC_CT {
421 var MyRec2 vl_r:={omit, omit, omit, omit}
422 if(ispresent(vl_r)){setverdict(pass)}else {setverdict(fail)};
423 if(ispresent(vl_r.roc)){setverdict(fail)}else {setverdict(pass)};
424 if(ispresent(vl_r.roi)){setverdict(fail)}else {setverdict(pass)};
425 if(ispresent(vl_r.u)){setverdict(fail)}else {setverdict(pass)};
426 if(ispresent(vl_r.u.r)){setverdict(fail)}else {setverdict(pass)};
427 if(ispresent(vl_r.u.r.i)){setverdict(fail)}else {setverdict(pass)};
428 if(ispresent(vl_r.u.r.x)){setverdict(fail)}else {setverdict(pass)};
429 if(ispresent(vl_r.u.r.c)){setverdict(fail)}else {setverdict(pass)};
430 if(ispresent(vl_r.r)){setverdict(fail)}else {setverdict(pass)};
431 if(ispresent(vl_r.r.i)){setverdict(fail)}else {setverdict(pass)};
432 if(ispresent(vl_r.r.x)){setverdict(fail)}else {setverdict(pass)};
433 if(ispresent(vl_r.r.c)){setverdict(fail)}else {setverdict(pass)};
434 }
435
436 testcase tc_record_omit2() runs on MTC_CT {
437 var MyRec2 vl_r:={roc:=omit, roi:=omit,u:= omit,r:= omit}
438 if(ispresent(vl_r)){setverdict(pass)}else {setverdict(fail)};
439 if(ispresent(vl_r.roc)){setverdict(fail)}else {setverdict(pass)};
440 if(ispresent(vl_r.roi)){setverdict(fail)}else {setverdict(pass)};
441 if(ispresent(vl_r.u)){setverdict(fail)}else {setverdict(pass)};
442 if(ispresent(vl_r.u.r)){setverdict(fail)}else {setverdict(pass)};
443 if(ispresent(vl_r.u.r.i)){setverdict(fail)}else {setverdict(pass)};
444 if(ispresent(vl_r.u.r.x)){setverdict(fail)}else {setverdict(pass)};
445 if(ispresent(vl_r.u.r.c)){setverdict(fail)}else {setverdict(pass)};
446 if(ispresent(vl_r.r)){setverdict(fail)}else {setverdict(pass)};
447 if(ispresent(vl_r.r.i)){setverdict(fail)}else {setverdict(pass)};
448 if(ispresent(vl_r.r.x)){setverdict(fail)}else {setverdict(pass)};
449 if(ispresent(vl_r.r.c)){setverdict(fail)}else {setverdict(pass)};
450 }
451
452 type union MyUnion_OneOption {
453 integer i
454 }
455
456 type record MyRec4 {
457 MyUnion_OneOption u,
458 integer i
459 }
460
461 testcase tc_union_OneOption_WithWildcard() runs on MTC_CT {
462 var template MyRec4 vtl_rec:=?
463 if(ispresent(vtl_rec)){setverdict(pass)}else {setverdict(fail)};
970ed795
EL
464 log("DTE is expected in the next line")
465 if(ispresent(vtl_rec.u.i)){setverdict(fail)};
466 }
467
468 testcase tc_record_mandatoryField_WithWildcard() runs on MTC_CT {
469 var template MyRec4 vtl_rec:=?
470 if(ispresent(vtl_rec.u)){setverdict(pass)}else {setverdict(fail)};
471 if(ispresent(vtl_rec.i)){setverdict(pass)}else {setverdict(fail)};
472 }
473
474 testcase tc_recordOf_union() runs on MTC_CT {
475 var MyRec2 vl_r:=c_myrec2_1;
476 if(ispresent(vl_r.u)){setverdict(pass)}else {setverdict(fail)};
477 if(ispresent(vl_r.u.r)){setverdict(pass)}else {setverdict(fail)};
478 if(ispresent(vl_r.u.r.i)){setverdict(pass)}else {setverdict(fail)};
479 if(ispresent(vl_r.u.r.x)){setverdict(pass)}else {setverdict(fail)};
480 if(ispresent(vl_r.u.r.c)){setverdict(pass)}else {setverdict(fail)};
481 if(ispresent(vl_r.u.roi)){setverdict(fail)}else {setverdict(pass)};
482 if(ispresent(vl_r.u.roi[3])){setverdict(fail)}else {setverdict(pass)};
483 if(ispresent(vl_r.u.i)){setverdict(fail)}else {setverdict(pass)};
484 if(ispresent(vl_r.u.roc)){setverdict(fail)}else {setverdict(pass)};
485 if(ispresent(vl_r.u.roc[0])){setverdict(fail)}else {setverdict(pass)};
486 }
487
488 testcase tc_recordOf_recordOfRecordOfInt() runs on MTC_CT {
489 var MyRec3 vl_r:=c_myrec3_1;
490 if(ispresent(vl_r.roroi)){setverdict(pass)}else {setverdict(fail)};
491 if(ispresent(vl_r.roroi[0])){setverdict(pass)}else {setverdict(fail)};
492 if(ispresent(vl_r.roroi[1])){setverdict(pass)}else {setverdict(fail)};
493 if(ispresent(vl_r.roroi[2])){setverdict(fail)}else {setverdict(pass)};
494 if(ispresent(vl_r.roroi[200])){setverdict(fail)}else {setverdict(pass)};
495 if(ispresent(vl_r.roroi[0][0])){setverdict(pass)}else {setverdict(fail)};
496 }
497
498 testcase tc_recordOf_recordOfRecordOfInt2() runs on MTC_CT {
499 var MyRec3 vl_r:=c_myrec3_1;
500 if(ispresent(vl_r.roroi[0][8])){setverdict(pass)}else {setverdict(fail)};
501 if(ispresent(vl_r.roroi[0][9])){setverdict(fail)}else {setverdict(pass)};
502 if(ispresent(vl_r.roroi[1][0])){setverdict(pass)}else {setverdict(fail)};
503 if(ispresent(vl_r.roroi[1][1])){setverdict(fail)}else {setverdict(pass)};
504 if(ispresent(vl_r.roroi[2][0])){setverdict(fail)}else {setverdict(pass)};
505 }
506
507 testcase tc_recordOf_recordInRecord() runs on MTC_CT {
508 var MyRec3 vl_r:=c_myrec3_2;
509 if(ispresent(vl_r.r)) {setverdict(pass)}else {setverdict(fail)};
510 if(ispresent(vl_r.r.roc)) {setverdict(pass)}else {setverdict(fail)};
511 if(ispresent(vl_r.r.roi)) {setverdict(pass)}else {setverdict(fail)};
512 if(ispresent(vl_r.r.u)) {setverdict(pass)}else {setverdict(fail)};
513 if(ispresent(vl_r.r.u)) {setverdict(pass)}else {setverdict(fail)};
514 if(ispresent(vl_r.r.u.i)) {setverdict(pass)}else {setverdict(fail)};
515 }
516
517 testcase tc_recordOf_recordInRecord2() runs on MTC_CT {
518 var MyRec3 vl_r:=c_myrec3_2;
519 if(ispresent(vl_r.r.r)) {setverdict(fail)}else {setverdict(pass)};
520 }
521
522 testcase tc_recordOf_recordInRecord_innerOmits() runs on MTC_CT {
523 var MyRec3 vl_r:=c_myrec3_innerOmits;
524 if(ispresent(vl_r.roroi)) {setverdict(pass)}else {setverdict(fail)};
525 if(ispresent(vl_r.r)) {setverdict(pass)}else {setverdict(fail)};
526 if(ispresent(vl_r.r.roc)) {setverdict(fail)}else {setverdict(pass)};
527 if(ispresent(vl_r.r.roi)) {setverdict(fail)}else {setverdict(pass)};
528 if(ispresent(vl_r.r.u)) {setverdict(fail)}else {setverdict(pass)};
529 if(ispresent(vl_r.r.r)){setverdict(fail)}else {setverdict(pass)};
530 }
531
532
533 template MyRecOf t_recOf1 := (
534 { [0]:= { roc:=omit }, [1]:= {roc:=omit} },
535 { [0]:= { roc:=omit }, [1]:= {roc:={"one", "two"}} },
536 { [0]:= { roc:=omit }, [2]:= {u:={i:=5}} }
537 )
538
539 testcase tc_recordOf_template1() runs on MTC_CT {
540 var template MyRecOf vtl_recOf:= t_recOf1;
541 if(ispresent( vtl_recOf )) {setverdict(pass)}else {setverdict(fail)};
542 if(ispresent( t_recOf1 )) {setverdict(pass)}else {setverdict(fail)};
543 }
544
545 testcase tc_recordOf_template2() runs on MTC_CT {
546 var template MyRecOf vtl_recOf:= t_recOf1;
547 if(ispresent( vtl_recOf[0] )) {setverdict(fail)}else {setverdict(pass)};
548 if(ispresent( vtl_recOf[1] )) {setverdict(fail)}else {setverdict(pass)};
549 if(ispresent( vtl_recOf[2] )) {setverdict(fail)}else {setverdict(pass)};
550 }
551
552
553 //========== WildCard in templates====================
554
555 testcase tc_record_withWildCard1() runs on MTC_CT {
556 var template MyRec2 vtl_rec2;
557 vtl_rec2:={
558 roc:=*
559 }
560 if(ispresent(vtl_rec2)) {setverdict(pass)}else {setverdict(fail)};
561 }
562 testcase tc_record_withWildCard1A() runs on MTC_CT {
563 var template MyRec2 vtl_rec2;
564 vtl_rec2:={
565 roc:=*
566 }
567 if(ispresent(vtl_rec2.roc)) {setverdict(fail)}else {setverdict(pass)};
568 }
569
570 testcase tc_record_withWildCard1AA() runs on MTC_CT {
571 var template MyRec2 vtl_rec2;
572 vtl_rec2:={
573 roc:=?
574 }
575 if(ispresent(vtl_rec2.roc)) {setverdict(pass)}else {setverdict(fail)};
576 }
577
578 testcase tc_record_withWildCard1B() runs on MTC_CT {
579 var template MyRec2 vtl_rec2;
580 vtl_rec2:={
581 roc:=*
582 }
583 if(ispresent(vtl_rec2.roc[0])) {setverdict(fail)}else {setverdict(pass)};
584 }
585
586 testcase tc_record_withWildCard2() runs on MTC_CT {
587 var template MyRec2 vtl_rec2;
588 vtl_rec2:={
589 roc:={ ?,? }
590 }
591 if(ispresent(vtl_rec2)) {setverdict(pass)}else {setverdict(fail)};
592 if(ispresent(vtl_rec2.roc)) {setverdict(pass)}else {setverdict(fail)};
593 if(ispresent(vtl_rec2.roc[0])){setverdict(pass)}else {setverdict(fail)};
594 if(ispresent(vtl_rec2.roc[1])){setverdict(pass)}else {setverdict(fail)};
595 if(ispresent(vtl_rec2.roc[10])){setverdict(fail)}else {setverdict(pass)};
596 }
597
598 //unbound
599 testcase tc_record_withWildCard2A() runs on MTC_CT {
600 var template MyRec2 vtl_rec2;
601 vtl_rec2:={
602 roc:={ ?,? }
603 }
604 if(ispresent(vtl_rec2.roi)){setverdict(fail)}else {setverdict(pass)};
605 }
606 testcase tc_record_withWildCard2B() runs on MTC_CT {
607 var template MyRec2 vtl_rec2;
608 vtl_rec2:={
609 roc:={ ?,? }
610 }
611 if(ispresent(vtl_rec2.u)){setverdict(fail)}else {setverdict(pass)};
612 }
613 testcase tc_record_withWildCard2C() runs on MTC_CT {
614 var template MyRec2 vtl_rec2;
615 vtl_rec2:={
616 roc:={ ?,? }
617 }
618 if(ispresent(vtl_rec2.r)){setverdict(fail)}else {setverdict(pass)};
619 }
620
621 testcase tc_record_withWildCard3() runs on MTC_CT {
622 var template MyRec2 vtl_rec2;
623 vtl_rec2:={
624 u := *
625 }
626 if(ispresent(vtl_rec2)) {setverdict(pass)}else {setverdict(fail)};
627 }
628
629 testcase tc_record_withWildCard3A() runs on MTC_CT {
630 var template MyRec2 vtl_rec2;
631 vtl_rec2:={
632 u := *
633 }
634 if(ispresent(vtl_rec2.roc)){setverdict(fail)}else {setverdict(pass)};
635 }
636
637 testcase tc_record_withWildCard3B() runs on MTC_CT {
638 var template MyRec2 vtl_rec2;
639 vtl_rec2:={
640 u := *
641 }
642 if(ispresent(vtl_rec2.roi)){setverdict(fail)}else {setverdict(pass)};
643 }
644
645 testcase tc_record_withWildCard3C() runs on MTC_CT {
646 var template MyRec2 vtl_rec2;
647 vtl_rec2:={
648 u := *
649 }
650 if(ispresent(vtl_rec2.u)){setverdict(fail)}else{setverdict(pass)};
651 }
652
653 testcase tc_record_withWildCard3D() runs on MTC_CT {
654 var template MyRec2 vtl_rec2;
655 vtl_rec2:={
656 u := ?
657 }
658 if(ispresent(vtl_rec2.u)){setverdict(pass)}else{setverdict(fail)};
659 }
660
661 testcase tc_record_withWildCard3E() runs on MTC_CT {
662 var template MyRec2 vtl_rec2;
663 vtl_rec2:={
664 u := ?
665 }
3abe9331 666
970ed795
EL
667 if(ispresent(vtl_rec2.u.i)){setverdict(fail)}else{setverdict(pass)}; //pass
668 }
669
670 testcase tc_record_withWildCard3E_log_sideeffect() runs on MTC_CT {
671 var template MyRec2 vtl_rec2;
672 vtl_rec2:={
673 u := ?
674 }
3abe9331 675
970ed795
EL
676 if(ispresent(vtl_rec2.u.i)){setverdict(fail)}else{setverdict(pass)}; //pass
677 }
678
679 testcase tc_record_withWildCard3E_log_sideeffect1() runs on MTC_CT {
680 var template MyRec2 vtl_rec2;
681 vtl_rec2:={
682 u := ?
683 }
970ed795
EL
684
685 if(ispresent(vtl_rec2.u.i)){setverdict(fail)}else {setverdict(pass)}; //fail
686 }
687
688 testcase tc_record_withWildCard4() runs on MTC_CT {
689 var template MyRec2 vtl_rec2;
690 vtl_rec2:={
691 roc:=omit,
692 u:={i:=?}
693 }
694 if(ispresent(vtl_rec2)) {setverdict(pass)}else {setverdict(fail)};
695 if(ispresent(vtl_rec2.roc)){setverdict(fail)}else {setverdict(pass)};
696 }
697
698 testcase tc_record_withWildCard4A() runs on MTC_CT {
699 var template MyRec2 vtl_rec2;
700 vtl_rec2:={
701 roc:=omit,
702 u:={i:=?}
703 }
704 if(ispresent(vtl_rec2.roi)){setverdict(fail)}else {setverdict(pass)};
705 }
706
707 testcase tc_record_withWildCard4B() runs on MTC_CT {
708 var template MyRec2 vtl_rec2;
709 vtl_rec2:={
710 roc:=omit,
711 u:={i:=?}
712 }
713 if(ispresent(vtl_rec2.u)){setverdict(pass)}else {setverdict(fail)};
714 if(ispresent(vtl_rec2.u.i)){setverdict(pass)}else {setverdict(fail)};
715 }
716
717 testcase tc_record_withWildCard5() runs on MTC_CT {
718 var template MyRec2 vtl_rec2;
719 vtl_rec2:={
720 r:= ?
721 }
722 if(ispresent(vtl_rec2)) {setverdict(pass)}else {setverdict(fail)};
723 if(ispresent(vtl_rec2.roc)){setverdict(fail)}else {setverdict(pass)};
724 if(ispresent(vtl_rec2.roi)){setverdict(fail)}else {setverdict(pass)};
725 if(ispresent(vtl_rec2.u)){setverdict(fail)}else {setverdict(pass)};
726 if(ispresent(vtl_rec2.u.i)){setverdict(fail)}else {setverdict(pass)};
727 }
728
729 testcase tc_record_withWildCard5A() runs on MTC_CT {
730 var template MyRec2 vtl_rec2;
731 vtl_rec2:={
732 r:= ?
733 }
734 if(ispresent(vtl_rec2.r)) {setverdict(pass)}else {setverdict(fail)};
735 }
736
737 testcase tc_record_withWildCard5B_optional() runs on MTC_CT {
738 var template MyRec2 vtl_rec2;
739 vtl_rec2:={
740 r:= ?
741 }
742 if(ispresent(vtl_rec2.r.i)) {setverdict(fail)}else {setverdict(pass)};
743 if(ispresent(vtl_rec2.r.x)) {setverdict(fail)}else {setverdict(pass)};
744 }
745
746 testcase tc_record_withWildCard5B_mandatory() runs on MTC_CT {
747 var template MyRec2 vtl_rec2;
748 vtl_rec2:={
749 r:= ?
750 }
751 if(ispresent(vtl_rec2.r.c)) {setverdict(pass)}else {setverdict(fail)};
752 }
753
754 testcase tc_record_withWildCard6() runs on MTC_CT {
755 var template MyRec2 vtl_rec2;
756 vtl_rec2:={
757 r:= *
758 }
759 if(ispresent(vtl_rec2)) {setverdict(pass)}else {setverdict(fail)};
760 if(ispresent(vtl_rec2.roc)){setverdict(fail)}else {setverdict(pass)};
761 if(ispresent(vtl_rec2.roi)){setverdict(fail)}else {setverdict(pass)};
762 if(ispresent(vtl_rec2.u)){setverdict(fail)}else {setverdict(pass)};
763 if(ispresent(vtl_rec2.u.i)){setverdict(fail)}else {setverdict(pass)};
764 }
765
766 testcase tc_record_withWildCard6A() runs on MTC_CT {
767 var template MyRec2 vtl_rec2;
768 vtl_rec2:={
769 r:= *
770 }
771 if(ispresent(vtl_rec2.r)) {setverdict(fail)}else {setverdict(pass)};
772 if(ispresent(vtl_rec2.r.i)) {setverdict(fail)}else {setverdict(pass)};
773 if(ispresent(vtl_rec2.r.x)) {setverdict(fail)}else {setverdict(pass)};
774 if(ispresent(vtl_rec2.r.c)) {setverdict(fail)}else {setverdict(pass)};
775 }
776
777 group g_TR_HO72812 {
778 type record MyRecord_HO72812
779 {
780 record {
781 boolean innerField1 optional,
782 integer innerField2 optional
783 } field1 optional,
784 integer field2
785 }
786 testcase tc_record_TR_HO72813() runs on MTC_CT {
787 var MyRecord_HO72812 vl_MyRecord := { field1 := {}, field2 := 5 };
788 if(ispresent(vl_MyRecord)) {setverdict(pass)} else {setverdict(fail)}
789 if(ispresent(vl_MyRecord.field1)) {setverdict(fail)} else {setverdict(pass)} //according to ethgry
790 if(ispresent(vl_MyRecord.field2)) {setverdict(pass)} else {setverdict(fail)}
791 }
792
793 testcase tc_record_TR_HO72813_innerFields() runs on MTC_CT {
794 var MyRecord_HO72812 vl_MyRecord := { field1 := {}, field2 := 5 };
795 if(ispresent(vl_MyRecord.field1.innerField1)) {setverdict(fail)} else {setverdict(pass)}
796 if(ispresent(vl_MyRecord.field1.innerField2)) {setverdict(fail)} else {setverdict(pass)}
797 }
798
799 testcase tc_record_TR_HO72813_partlyInitialized() runs on MTC_CT {
800 var MyRecord_HO72812 vl_MyRecord := { field1 := {innerField1:=true}, field2 := 5 };
801 if(ispresent(vl_MyRecord.field1)) {setverdict(pass)} else {setverdict(fail)} ;
802 if(ispresent(vl_MyRecord.field1.innerField1)) {setverdict(pass)} else {setverdict(fail)};
803 if(ispresent(vl_MyRecord.field1.innerField2)) {setverdict(fail)} else {setverdict(pass)} ; //DTE???
804 }
805
806 testcase tc_record_TR_HO72813_omit() runs on MTC_CT {
807 var MyRecord_HO72812 vl_MyRecord := { field1 := {innerField1:=true}, field2 := 5 }
808 vl_MyRecord.field1 := omit;
809 if(ispresent(vl_MyRecord.field1)) {setverdict(fail)} else {setverdict(pass)}
810 if(ispresent(vl_MyRecord.field1.innerField1)) {setverdict(fail)} else {setverdict(pass)};
811 if(ispresent(vl_MyRecord.field1.innerField2)) {setverdict(fail)} else {setverdict(pass)} ; //DTE???
812 }
813
814 }//group
815
816 testcase tc_runtimeDivisionByZero() runs on MTC_CT {
817 var MyUnion1 vl_u:= c_myunion2;
818 if(ispresent(vl_u)) {setverdict(pass)} else {setverdict(fail)}
819 if(ispresent(vl_u.i)){setverdict(pass)}else {setverdict(fail)}
820 if(ispresent(vl_u.i/2)){setverdict(pass)}else {setverdict(fail)}
821 if(ispresent(vl_u.i*0)){setverdict(pass)}else {setverdict(fail)}
822 log("Expected DTE comes!!!");
823 if(ispresent(vl_u.i/(vl_u.i-5))){setverdict(fail)}else {setverdict(pass)} //DTE - OK
824 }
825
826 //compilation error - ok?
827 // testcase tc_compilationErrorDivisionByZero() runs on MTC_CT {
828 // var MyUnion1 vl_u:= c_myunion2;
829 // if(ispresent(vl_u.i/0)){setverdict(fail)}else {setverdict(pass)}
830 // }
831 template integer t_i(integer i, integer j) :=i+j;
832
833 testcase tc_runtimeExprEval() runs on MTC_CT {
834 var template integer vt_i:= t_i(1,2);
835 var integer vl_i:=1, vl_j:=0;
836 if(ispresent(vt_i)) {setverdict(pass)} else {setverdict(fail)};
837 if(ispresent(t_i(1,2))) {setverdict(pass)} else {setverdict(fail)};
838 if(ispresent(t_i(1,2*vl_i))) {setverdict(pass)} else {setverdict(fail)};
839 //if(ispresent(t_i(1,2/vl_j))) {setverdict(pass)} else {setverdict(fail)}; //DTE
840 }
9cdf23fa
BB
841
842 // Test case for:
843 // Bug 495128 - Incorrect code generated for anytype field reference in ispresent clause
844 // The 'ispresent' clauses in this test caused C++ compilation errors, because
845 // 'x.MyRecord()' was generated instead of 'x.AT_MyRecord()', when accessing the anytype field
846 testcase tc_anytype_field() runs on MTC_CT {
847 var anytype x;
848 x.MyRecord := { i := 1, x := omit, c := "a" };
849 if (ispresent(x.MyRecord.i)) { setverdict(pass); }
850 else { setverdict(fail, "field i should be present"); }
851 if (not ispresent(x.MyRecord.x)) { setverdict(pass); }
852 else { setverdict(fail, "field x should not be present"); }
853 }
970ed795
EL
854
855
856 control {
857
858 execute(tc_simple_charstring_unbound()); //pass
859 execute(tc_simple_charstring_isvalue()); //pass
860 execute(tc_simple_charstring_template_unbound()); //pass
861 execute(tc_simple_charstring_template_isvalue()); //pass
862 execute(tc_simple_charstring_template_pattern()); //pass
863 execute(tc_simple_integer_unbound()); //pass
864 execute(tc_simple_integer_value()); //pass
865 execute(tc_simple_integer_templ_asterix()); //pass
866 execute(tc_simple_integer_templ_qm()); //pass
867 execute(tc_simple_integer_templ_value()); //pass
868 execute(tc_simple_octetstring_isvalue()); //pass
869 execute(tc_simple_octetstring_unbound()); //pass
870 execute(tc_special_default_value_unbound());//pass
871 execute(tc_special_default_value_null()); //pass
872 execute(tc_special_default_value_isvalue());//pass
873 execute(tc_special_compref_unbound()); //pass
874 execute(tc_special_compref_isvalue()); //pass
875 execute(tc_unionOfRecordOfs1()); //pass
876 execute(tc_unionOfRecordOfs1_2()); //pass
877 execute(tc_unionOfRecordOfs2()); //pass
878 // //execute(tc_compilationerror1());
879 execute(tc_union_modify()); //pass
880 execute(tc_sideeffect1()); //pass
881 execute(tc_sideeffect2()); //pass
882 execute(tc_recordOf_omit1()); //pass
883 execute(tc_recordOf_omit2()); //pass
884 execute(tc_recordOf_emptyRoi1()); //pass
885 execute(tc_recordOf_emptyRoi2()); //pass
886 execute(tc_recordOf_emptyRoi3()); //pass
887 execute(tc_record_unbound())
888 execute(tc_record_completlyInit()); //pass
889 execute(tc_record_partiallyInit1()); //pass
890 execute(tc_record_partiallyInit3()); //pass
891 execute(tc_record_partiallyInit4());
892 execute(tc_record_partiallyInit5());
893 execute(tc_record_partiallyInit6());
894 execute(tc_record_partiallyInit7());
895 execute(tc_record_partiallyInit8());
896 execute(tc_record_partiallyInit9());
897 execute(tc_record_partiallyInit10());
898 // //execute(tc_record_partiallyInit11()); //<=======COMPILATION ERROR
899 execute(tc_record_partiallyInit12());
900 execute(tc_record_partiallyInit13());
901 execute(tc_record_omit());
902 execute(tc_record_omit2());
903 execute(tc_union_OneOption_WithWildcard());
904 execute(tc_record_mandatoryField_WithWildcard());
905 execute(tc_recordOf_union());
906 execute(tc_recordOf_recordOfRecordOfInt());
907 execute(tc_recordOf_recordOfRecordOfInt2());
908 execute(tc_recordOf_recordInRecord());
909 execute(tc_recordOf_recordInRecord2());
910 execute(tc_recordOf_recordInRecord_innerOmits());
911 execute(tc_recordOf_template1());
912 execute(tc_recordOf_template2());
913 execute(tc_record_withWildCard1());
914 execute(tc_record_withWildCard1A()); //pass
915 execute(tc_record_withWildCard1B());
916 execute(tc_record_withWildCard2());
917 execute(tc_record_withWildCard2A());//pass (unbound)
918 execute(tc_record_withWildCard2B());//pass (unbound)
919 execute(tc_record_withWildCard2C());//pass (unbound)
920 execute(tc_record_withWildCard3());
921 execute(tc_record_withWildCard3A());//pass (unbound)
922 execute(tc_record_withWildCard3B());//pass (unbound)
923 execute(tc_record_withWildCard3C());//pass (*)
924 execute(tc_record_withWildCard3D());//pass
925 execute(tc_record_withWildCard3E());
926 execute(tc_record_withWildCard3E_log_sideeffect());
927 //execute(tc_record_withWildCard3E_log_sideeffect1()); // fail, mail sent to ethgry
928 execute(tc_record_withWildCard4());//pass
929 execute(tc_record_withWildCard4A());
930 execute(tc_record_withWildCard4B());
931 execute(tc_record_withWildCard5());//pass
932 execute(tc_record_withWildCard5A());//pass
933 execute(tc_record_withWildCard5A());//pass
934 execute(tc_record_withWildCard5B_optional());//pass
935 execute(tc_record_withWildCard5B_mandatory());//pass
936 execute(tc_record_withWildCard6());//pass
937 execute(tc_record_withWildCard6A());
938 execute(tc_record_TR_HO72813());
939 execute(tc_record_TR_HO72813_innerFields());
940 execute(tc_record_TR_HO72813_partlyInitialized());
941 execute(tc_record_TR_HO72813_omit());
942 //execute(tc_runtimeDivisionByZero()); //expected DTE
943 //execute(tc_compilationErrorDivisionByZero()); ok!?
944 execute(tc_runtimeExprEval());
9cdf23fa 945 execute(tc_anytype_field());
970ed795
EL
946 }
947
948}//module
9cdf23fa
BB
949with {
950 extension "anytype MyRecord";
951}
This page took 0.059525 seconds and 5 git commands to generate.