Last sync 2016.04.01
[deliverable/titan.core.git] / regression_test / templateRec / TtemplateRec.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 * Delic, Adam
12 * Kovacs, Ferenc
13 * Raduly, Csaba
14 * Szabados, Kristof
15 * Szabo, Janos Zoltan – initial implementation
16 *
17 ******************************************************************************/
18 module TtemplateRec {
19
20 type record RP {
21 record of record {
22 integer i optional,
23 charstring s
24 } inner
25 }
26
27 type record SR { // simple record
28 integer i
29 }
30
31 template RP t_r_all_omit := { { { omit, "omit" } } }
32
33
34 type component templateRec_mycomp {};
35 type record templateRec_myrec {
36 integer f1,
37 float f2 };
38 type record templateRec_rec {
39 templateRec_myrec x1,
40 templateRec_myrec x2,
41 templateRec_myrec x3 optional };
42 template templateRec_rec templateRec_tSpec :={ //specific values
43 x1:={f1:=1,f2:=1.2},
44 x2:={f1:=2,f2:=1.2},
45 x3:={f1:=3,f2:=1.2} };
46 template templateRec_rec templateRec_tList :={ //specific value and value list
47 x1:={f1:=1,f2:=1.2},
48 x2:=({f1:=2,f2:=1.2},{f1:=3,f2:=1.2},{f1:=6,f2:=1.2}),
49 x3:={f1:=3,f2:=1.2} };
50 template templateRec_rec templateRec_tComp :={ //specific value and compl. list
51 x1:={f1:=1,f2:=1.2},
52 x2:=complement ({f1:=2,f2:=1.2},{f1:=3,f2:=1.2},{f1:=6,f2:=1.2}),
53 x3:={f1:=3,f2:=1.2} };
54 template templateRec_rec templateRec_tOmit :={ //omitting values
55 x1:={f1:=1,f2:=1.2},
56 x2:={f1:=2,f2:=1.2},
57 x3:=omit } ;
58 template templateRec_rec templateRec_tAny :={ //specific and any value
59 x1:={f1:=1,f2:=1.2},
60 x2:={f1:=2,f2:=1.2},
61 x3:=? } ;
62 template templateRec_rec templateRec_tAnyorNone :={ //specific and AnyorNone value
63 x1:={f1:=1,f2:=1.2},
64 x2:={f1:=2,f2:=1.2},
65 x3:=* };
66 template templateRec_rec templateRec_tIfpresent :={ //specific value and ifpresent
67 x1:={f1:=1,f2:=1.2},
68 x2:={f1:=2,f2:=1.2},
69 x3:={f1:=3,f2:=1.2} ifpresent };
70
71 testcase pasu() runs on templateRec_mycomp
72 {
73 template integer v_timeUnit := 60;
74
75 var template SR t_sr := { 13 }
76 t_sr.i := v_timeUnit;
77
78 template RP v_r modifies t_r_all_omit := {{{
79 i := v_timeUnit
80 }}}
81 setverdict(pass); // if it compiles, that's enough
82 }
83
84 testcase templateRecSpec() runs on templateRec_mycomp {
85 var templateRec_myrec temp:={f1:=3,f2:=1.2};
86 var templateRec_rec x1,x2; //specific value
87 x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp };
88 x2:={ x1:={f1:=2,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp };
89 //match
90 if (match(x1,templateRec_tSpec)) {setverdict(pass);}
91 else {setverdict(fail);}
92 //no match
93 if (not(match(x2,templateRec_tSpec))) {setverdict(pass);}
94 else {setverdict(fail);}
95 }
96
97 testcase templateRecList() runs on templateRec_mycomp {
98 var templateRec_myrec temp:={f1:=3,f2:=1.2};
99 var templateRec_rec x1,x2,x3; //value list
100 x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=6,f2:=1.2}, x3:=temp };
101 x2:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=7,f2:=1.2}, x3:=temp };
102 x3:={ x1:={f1:=8,f2:=1.2}, x2:={f1:=6,f2:=1.2}, x3:=temp };
103 //match
104 if (match(x1,templateRec_tList)) {setverdict(pass);}
105 else {setverdict(fail, 1);}
106 //no match: out of list
107 if (not(match(x2,templateRec_tList))) {setverdict(pass);}
108 else {setverdict(fail, 2);}
109 //no match: other field
110 if (not(match(x3,templateRec_tList))) {setverdict(pass);}
111 else {setverdict(fail, 3);}
112 }
113
114 testcase templateRecComp() runs on templateRec_mycomp {
115 var templateRec_myrec temp:={f1:=3,f2:=1.2};
116 var templateRec_rec x1,x2,x3; //complemented list
117 x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=7,f2:=1.2}, x3:=temp };
118 x2:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=6,f2:=1.2}, x3:=temp };
119 x3:={ x1:={f1:=2,f2:=1.2}, x2:={f1:=7,f2:=1.2}, x3:=temp };
120 //match
121 if (match(x1,templateRec_tComp)) {setverdict(pass);}
122 else {setverdict(fail, 1);}
123 //no match: in the list
124 if (not(match(x2,templateRec_tComp))) {setverdict(pass);}
125 else {setverdict(fail, 2);}
126 //no match: other field
127 if (not(match(x3,templateRec_tComp))) {setverdict(pass);}
128 else {setverdict(fail, 3);}
129 }
130
131 testcase templateRecOmit() runs on templateRec_mycomp {
132 var templateRec_myrec temp:={f1:=3,f2:=1.2};
133 var templateRec_rec x1,x2,x3; //omitting value
134 x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit };
135 x2:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp };
136 x3:={ x1:={f1:=2,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit };
137 //match
138 if (match(x1,templateRec_tOmit)) {setverdict(pass);}
139 else {setverdict(fail);}
140 //no match: not omitted
141 if (not(match(x2,templateRec_tOmit))) {setverdict(pass);}
142 else {setverdict(fail);}
143 //no match: other field
144 if (not(match(x3,templateRec_tOmit))) {setverdict(pass);}
145 else {setverdict(fail);}
146 }
147
148 testcase templateRecAny() runs on templateRec_mycomp {
149 var templateRec_myrec temp:={f1:=3,f2:=1.2};
150 var templateRec_rec x1,x2,x3; //any value
151 x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp };
152 x2:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit };
153 x3:={ x1:={f1:=2,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp };
154 //match
155 if (match(x1,templateRec_tAny)) {setverdict(pass);}
156 else {setverdict(fail);}
157 //no match: field omitted
158 if (not(match(x2,templateRec_tAny))) {setverdict(pass);}
159 else {setverdict(fail);}
160 //no match: other field
161 if (not(match(x3,templateRec_tAny))) {setverdict(pass);}
162 else {setverdict(fail);}
163 }
164
165 testcase templateRecAnyorNone() runs on templateRec_mycomp {
166 var templateRec_myrec temp:={f1:=3,f2:=1.2};
167 var templateRec_rec x1,x2,x3; //AnyorNone value
168 x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit };
169 x2:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp };
170 x3:={ x1:={f1:=2,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit };
171 //match: omitted
172 if (match(x1,templateRec_tAnyorNone)) {setverdict(pass);}
173 else {setverdict(fail);}
174 //match: value
175 if (match(x2,templateRec_tAnyorNone)) {setverdict(pass);}
176 else {setverdict(fail);}
177 //no match: other field
178 if (not(match(x3,templateRec_tAnyorNone))) {setverdict(pass);}
179 else {setverdict(fail);}
180 }
181
182 testcase templateRecIfpresent() runs on templateRec_mycomp {
183 var templateRec_myrec temp1:={f1:=3,f2:=1.2}; //ifpresent
184 var templateRec_myrec temp2:={f1:=4,f2:=1.2};
185 var templateRec_rec x1,x2,x3,x4;
186 x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp1 };
187 x2:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit };
188 x3:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp2 };
189 x4:={ x1:={f1:=2,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit };
190 //match: present and match
191 if (match(x1,templateRec_tIfpresent)) {setverdict(pass);}
192 else {setverdict(fail);}
193 //match: not present
194 if (match(x2,templateRec_tIfpresent)) {setverdict(pass);}
195 else {setverdict(fail);}
196 //no match: present and not match
197 if (not(match(x3,templateRec_tIfpresent))) {setverdict(pass);}
198 else {setverdict(fail);}
199 //no match: other field
200 if (not(match(x4,templateRec_tIfpresent))) {setverdict(pass);}
201 else {setverdict(fail);}
202 }
203
204
205 type record R
206 {
207 integer i,
208 charstring str optional
209 }
210 const R cr := { 1, omit }
211 template R tRrec1 := { 1 , omit }
212 template R tRrec2 := { 1, complement ( omit, "a" ) }
213 template R tRrec3 := { 1, ( omit, "a" ) }
214 template R tr := { i := 1, str := ( omit , omit ) }
215 template R tr2 := { i := 1, str := complement( omit , omit ) }
216 template R trc := cr; // HQ46602
217
218 // Note: this tests legacy behavior and requires the -M compiler option!
219 testcase MTTSM00015947() runs on templateRec_mycomp
220 {
221 if (not match(cr, tRrec1)) { setverdict(fail); }
222 if (match(cr, tRrec2)) { setverdict(fail); }
223 if (not match(cr, tRrec3)) { setverdict(fail); }
224 if (ispresent(tr.str)) { setverdict(fail); }
225 if (ispresent(trc.str)) { setverdict(fail); }
226 if (not ispresent(tr2.str)) { setverdict(fail); }
227 setverdict(pass);
228 }
229
230 import from TtemplateRecAsn all
231 template AmbiguousAnyRec t_AAR := { ''O }
232 const AmbiguousAnyRec c_AAR := { ''O }
233 testcase tc_HM39698() runs on templateRec_mycomp
234 {
235 var template AmbiguousAnyRec vt_AAR := { ''O }
236 var AmbiguousAnyRec v_AAR := { ''O }
237 log(t_AAR)
238 log(c_AAR)
239 log(vt_AAR)
240 log(v_AAR)
241 // It's good, if we reach this point...
242 setverdict(pass)
243 }
244
245 testcase tc_valueof_governor_segfault() runs on templateRec_mycomp
246 {
247 var templateRec_myrec mr := valueof({f1 := 1, f2 := 2.0})
248 setverdict(pass)
249 }
250
251 // Parametrized template reference without `()'.
252 template R tmr(in integer i := 1) := { i := i, str := omit }
253 testcase tc_HO49372() runs on templateRec_mycomp
254 {
255 log(tmr)
256 setverdict(pass)
257 }
258
259 type record MyRecord
260 {
261 integer int,
262 boolean deleted
263 }
264 testcase tc_HO69658() runs on templateRec_mycomp
265 {
266 var template MyRecord vl_myrecord;
267 vl_myrecord.int := 0;
268
269 var template MyRecord vl_myrecordAgain := vl_myrecord;
270 vl_myrecordAgain.deleted := false;
271
272 log("Now assignment finish");
273 log("Print record:",vl_myrecordAgain);
274 // It's good, if we reach this point...
275 if (log2str(vl_myrecordAgain)=="{ int := 0, deleted := false }") {setverdict(pass)}else{setverdict(fail)}
276 }
277
278 type record MyRec2{
279 ROC roc optional,
280 ROI roi optional,
281 MyUnion1 u optional,
282 MyRecord1 r optional
283 }
284
285 type record of charstring ROC;
286 type record of integer ROI;
287 type record MyRecord1 {
288 integer i optional,
289 float x optional,
290 charstring c
291 }
292
293 type union MyUnion1 {
294 ROC roc,
295 integer i,
296 ROI roi,
297 MyRecord1 r
298 }
299
300 type union MyUnion_OneOption {
301 integer i
302 }
303
304 type record MyRec4 {
305 MyUnion_OneOption u,
306 integer i
307 }
308
309 testcase tc_record_withJoker1() runs on templateRec_mycomp {
310 var template MyRec2 vtl_rec2_j;
311 if(isbound(vtl_rec2_j)) {setverdict(fail)}else {setverdict(pass)};
312 vtl_rec2_j:={
313 roc:=*
314 }
315 if(isbound(vtl_rec2_j)) {setverdict(pass)}else {setverdict(fail)};
316 if(isbound(vtl_rec2_j.roc)) {setverdict(pass)}else {setverdict(fail)};
317 if(isbound(vtl_rec2_j.roc[0])) {setverdict(fail)}else {setverdict(pass)};
318 }
319 testcase tc_record_withJoker2() runs on templateRec_mycomp {
320 var template MyRec2 vtl_rec2_j;
321 vtl_rec2_j:={
322 roc:={ ?,? }
323 }
324 if(isbound(vtl_rec2_j)) {setverdict(pass)}else {setverdict(fail)};
325 if(isbound(vtl_rec2_j.roc)) {setverdict(pass)}else {setverdict(fail)};
326 if(isbound(vtl_rec2_j.roc[0])){setverdict(pass)}else {setverdict(fail)};
327 if(isbound(vtl_rec2_j.roc[1])){setverdict(pass)}else {setverdict(fail)};
328 if(isbound(vtl_rec2_j.roc[10])){setverdict(fail)}else {setverdict(pass)};
329 if(isbound(vtl_rec2_j.roi)){setverdict(fail)}else {setverdict(pass)};
330 if(isbound(vtl_rec2_j.u)){setverdict(fail)}else {setverdict(pass)};
331 if(isbound(vtl_rec2_j.r)){setverdict(fail)}else {setverdict(pass)};
332 }
333
334 testcase tc_record_withJoker3() runs on templateRec_mycomp {
335 var template MyRec2 vtl_rec2_j;
336 vtl_rec2_j:={
337 u := *
338 }
339 if(isbound(vtl_rec2_j)) {setverdict(pass)}else {setverdict(fail)};
340 if(isbound(vtl_rec2_j.roc)){setverdict(fail)}else {setverdict(pass)};
341 if(isbound(vtl_rec2_j.roi)){setverdict(fail)}else {setverdict(pass)};
342 if(isbound(vtl_rec2_j.u)){setverdict(pass)}else {setverdict(fail)};
343 if(isbound(vtl_rec2_j.u.i)){setverdict(fail)}else {setverdict(pass)};
344 }
345
346 testcase tc_record_withJoker4() runs on templateRec_mycomp {
347 var template MyRec2 vtl_rec2_j;
348 vtl_rec2_j:={
349 roc:=omit,
350 u:={i:=?}
351 }
352 if(isbound(vtl_rec2_j)) {setverdict(pass)}else {setverdict(fail)};
353 if(isbound(vtl_rec2_j.roc)){setverdict(pass)}else {setverdict(fail)};
354 if(isbound(vtl_rec2_j.roi)){setverdict(fail)}else {setverdict(pass)};
355 if(isbound(vtl_rec2_j.u)){setverdict(pass)}else {setverdict(fail)};
356 if(isbound(vtl_rec2_j.u.i)){setverdict(pass)}else {setverdict(fail)};
357 }
358
359 testcase tc_record_withJoker5() runs on templateRec_mycomp {
360 var template MyRec2 vtl_rec2_j;
361 vtl_rec2_j:={
362 r:= ?
363 }
364 if(isbound(vtl_rec2_j)) {setverdict(pass)}else {setverdict(fail)};
365 if(isbound(vtl_rec2_j.roc)){setverdict(fail)}else {setverdict(pass)};
366 if(isbound(vtl_rec2_j.roi)){setverdict(fail)}else {setverdict(pass)};
367 if(isbound(vtl_rec2_j.u)){setverdict(fail)}else {setverdict(pass)};
368 if(isbound(vtl_rec2_j.u.i)){setverdict(fail)}else {setverdict(pass)};
369 if(isbound(vtl_rec2_j.r)) {setverdict(pass)}else {setverdict(fail)};
370 if(isbound(vtl_rec2_j.r.i)) {setverdict(pass)}else {setverdict(fail)};
371 if(isbound(vtl_rec2_j.r.x)) {setverdict(pass)}else {setverdict(fail)};
372 if(isbound(vtl_rec2_j.r.c)) {setverdict(pass)}else {setverdict(fail)};
373 }
374
375 testcase tc_record_withJoker6() runs on templateRec_mycomp {
376 var template MyRec2 vtl_rec2_j;
377 vtl_rec2_j:={
378 r:= *
379 }
380 if(isbound(vtl_rec2_j)) {setverdict(pass)}else {setverdict(fail)};
381 if(isbound(vtl_rec2_j.roc)){setverdict(fail)}else {setverdict(pass)};
382 if(isbound(vtl_rec2_j.roi)){setverdict(fail)}else {setverdict(pass)};
383 if(isbound(vtl_rec2_j.u)){setverdict(fail)}else {setverdict(pass)};
384 if(isbound(vtl_rec2_j.u.i)){setverdict(fail)}else {setverdict(pass)};
385 if(isbound(vtl_rec2_j.r)) {setverdict(pass)}else {setverdict(fail)};
386 if(isbound(vtl_rec2_j.r.i)) {setverdict(fail)}else {setverdict(pass)};
387 if(isbound(vtl_rec2_j.r.x)) {setverdict(fail)}else {setverdict(pass)};
388 if(isbound(vtl_rec2_j.r.c)) {setverdict(fail)}else {setverdict(pass)};
389 }
390
391 group g_TR_HO72812 {
392 type record MyRecord_HO72812
393 {
394 record {
395 boolean innerField1 optional,
396 integer innerField2 optional
397 } field1 optional,
398 integer field2
399 }
400 testcase tc_record_TR_HO72813() runs on templateRec_mycomp {
401 var MyRecord_HO72812 vl_MyRecord := { field1 := {}, field2 := 5 };
402 if(isbound(vl_MyRecord)) {setverdict(pass)} else {setverdict(fail)}
403 if(isbound(vl_MyRecord.field1)) {setverdict(fail)} else {setverdict(pass)}
404 if(isbound(vl_MyRecord.field2)) {setverdict(pass)} else {setverdict(fail)}
405 vl_MyRecord.field1 := omit
406 if(isbound(vl_MyRecord.field1)) {setverdict(pass)} else {setverdict(fail)}
407 if(isbound(vl_MyRecord.field1.innerField1)) {setverdict(fail)} else {setverdict(pass)}
408 if(isbound(vl_MyRecord.field1.innerField1)) {setverdict(fail)} else {setverdict(pass)}
409 if(ispresent(vl_MyRecord.field1)) {setverdict(fail)} else {setverdict(pass)}
410
411 vl_MyRecord := { field1 := {innerField1:=true, innerField2:=1 } }
412 if(isbound(vl_MyRecord.field1)) {setverdict(pass)} else {setverdict(fail)}
413 if(isbound(vl_MyRecord.field1.innerField1)) {setverdict(pass)} else {setverdict(fail)}
414 if(isbound(vl_MyRecord.field1.innerField2)) {setverdict(pass)} else {setverdict(fail)}
415 }
416 testcase tc_record_TR_HO72813_ip() runs on templateRec_mycomp {
417 var MyRecord_HO72812 vl_MyRecord := { field1 := {}, field2 := 5 };
418 if(ispresent(vl_MyRecord)) {setverdict(pass)} else {setverdict(fail)}
419 if(ispresent(vl_MyRecord.field1)) {setverdict(fail)} else {setverdict(pass)} //according to ethgry
420 if(ispresent(vl_MyRecord.field2)) {setverdict(pass)} else {setverdict(fail)}
421 }
422
423 testcase tc_record_TR_HO72813_innerFields() runs on templateRec_mycomp {
424 var MyRecord_HO72812 vl_MyRecord := { field1 := {}, field2 := 5 };
425 if(ispresent(vl_MyRecord.field1.innerField1)) {setverdict(fail)} else {setverdict(pass)}
426 if(ispresent(vl_MyRecord.field1.innerField2)) {setverdict(fail)} else {setverdict(pass)}
427 }
428
429 testcase tc_record_TR_HO72813_partlyInitialized() runs on templateRec_mycomp {
430 var MyRecord_HO72812 vl_MyRecord := { field1 := {innerField1:=true}, field2 := 5 };
431 if(ispresent(vl_MyRecord.field1)) {setverdict(pass)} else {setverdict(fail)} ;
432 if(ispresent(vl_MyRecord.field1.innerField1)) {setverdict(pass)} else {setverdict(fail)};
433 if(ispresent(vl_MyRecord.field1.innerField2)) {setverdict(fail)} else {setverdict(pass)} ; //DTE???
434 }
435
436 testcase tc_record_TR_HO72813_omit() runs on templateRec_mycomp {
437 var MyRecord_HO72812 vl_MyRecord := { field1 := {innerField1:=true}, field2 := 5 }
438 vl_MyRecord.field1 := omit;
439 if(ispresent(vl_MyRecord.field1)) {setverdict(fail)} else {setverdict(pass)}
440 if(ispresent(vl_MyRecord.field1.innerField1)) {setverdict(fail)} else {setverdict(pass)};
441 if(ispresent(vl_MyRecord.field1.innerField2)) {setverdict(fail)} else {setverdict(pass)} ; //DTE???
442 }
443 }
444
445 testcase tc_record_mandatoryField_WithWildcard() runs on templateRec_mycomp {
446 var template MyRec4 vtl_rec:=?
447 if(ispresent(vtl_rec.u)){setverdict(pass)}else {setverdict(fail)};
448 if(ispresent(vtl_rec.i)){setverdict(pass)}else {setverdict(fail)};
449 }
450
451 testcase tc_record_withWildCard1() runs on templateRec_mycomp {
452 var template MyRec2 vtl_rec2;
453 vtl_rec2:={
454 roc:=*
455 }
456 if(ispresent(vtl_rec2)) {setverdict(pass)}else {setverdict(fail)};
457 }
458 testcase tc_record_withWildCard1A() runs on templateRec_mycomp {
459 var template MyRec2 vtl_rec2;
460 vtl_rec2:={
461 roc:=*
462 }
463 if(ispresent(vtl_rec2.roc)) {setverdict(fail)}else {setverdict(pass)};
464 }
465
466 testcase tc_record_withWildCard1AA() runs on templateRec_mycomp {
467 var template MyRec2 vtl_rec2;
468 vtl_rec2:={
469 roc:=?
470 }
471 if(ispresent(vtl_rec2.roc)) {setverdict(pass)}else {setverdict(fail)};
472 }
473
474 testcase tc_record_withWildCard1B() runs on templateRec_mycomp {
475 var template MyRec2 vtl_rec2;
476 vtl_rec2:={
477 roc:=*
478 }
479 if(ispresent(vtl_rec2.roc[0])) {setverdict(fail)}else {setverdict(pass)};
480 }
481
482 testcase tc_record_withWildCard2() runs on templateRec_mycomp {
483 var template MyRec2 vtl_rec2;
484 vtl_rec2:={
485 roc:={ ?,? }
486 }
487 if(ispresent(vtl_rec2)) {setverdict(pass)}else {setverdict(fail)};
488 if(ispresent(vtl_rec2.roc)) {setverdict(pass)}else {setverdict(fail)};
489 if(ispresent(vtl_rec2.roc[0])){setverdict(pass)}else {setverdict(fail)};
490 if(ispresent(vtl_rec2.roc[1])){setverdict(pass)}else {setverdict(fail)};
491 if(ispresent(vtl_rec2.roc[10])){setverdict(fail)}else {setverdict(pass)};
492 }
493
494 //unbound
495 testcase tc_record_withWildCard2A() runs on templateRec_mycomp {
496 var template MyRec2 vtl_rec2;
497 vtl_rec2:={
498 roc:={ ?,? }
499 }
500 if(ispresent(vtl_rec2.roi)){setverdict(fail)}else {setverdict(pass)};
501 }
502 testcase tc_record_withWildCard2B() runs on templateRec_mycomp {
503 var template MyRec2 vtl_rec2;
504 vtl_rec2:={
505 roc:={ ?,? }
506 }
507 if(ispresent(vtl_rec2.u)){setverdict(fail)}else {setverdict(pass)};
508 }
509 testcase tc_record_withWildCard2C() runs on templateRec_mycomp {
510 var template MyRec2 vtl_rec2;
511 vtl_rec2:={
512 roc:={ ?,? }
513 }
514 if(ispresent(vtl_rec2.r)){setverdict(fail)}else {setverdict(pass)};
515 }
516
517 testcase tc_record_withWildCard3() runs on templateRec_mycomp {
518 var template MyRec2 vtl_rec2;
519 vtl_rec2:={
520 u := *
521 }
522 if(ispresent(vtl_rec2)) {setverdict(pass)}else {setverdict(fail)};
523 }
524
525 testcase tc_record_withWildCard3A() runs on templateRec_mycomp {
526 var template MyRec2 vtl_rec2;
527 vtl_rec2:={
528 u := *
529 }
530 if(ispresent(vtl_rec2.roc)){setverdict(fail)}else {setverdict(pass)};
531 }
532
533 testcase tc_record_withWildCard3B() runs on templateRec_mycomp {
534 var template MyRec2 vtl_rec2;
535 vtl_rec2:={
536 u := *
537 }
538 if(ispresent(vtl_rec2.roi)){setverdict(fail)}else {setverdict(pass)};
539 }
540
541 testcase tc_record_withWildCard3C() runs on templateRec_mycomp {
542 var template MyRec2 vtl_rec2;
543 vtl_rec2:={
544 u := *
545 }
546 if(ispresent(vtl_rec2.u)){setverdict(fail)}else{setverdict(pass)};
547 }
548
549 testcase tc_record_withWildCard3D() runs on templateRec_mycomp {
550 var template MyRec2 vtl_rec2;
551 vtl_rec2:={
552 u := ?
553 }
554 if(ispresent(vtl_rec2.u)){setverdict(pass)}else{setverdict(fail)};
555 }
556
557 testcase tc_record_withWildCard4() runs on templateRec_mycomp {
558 var template MyRec2 vtl_rec2;
559 vtl_rec2:={
560 roc:=omit,
561 u:={i:=?}
562 }
563 if(ispresent(vtl_rec2)) {setverdict(pass)}else {setverdict(fail)};
564 if(ispresent(vtl_rec2.roc)){setverdict(fail)}else {setverdict(pass)};
565 }
566
567 testcase tc_record_withWildCard4A() runs on templateRec_mycomp {
568 var template MyRec2 vtl_rec2;
569 vtl_rec2:={
570 roc:=omit,
571 u:={i:=?}
572 }
573 if(ispresent(vtl_rec2.roi)){setverdict(fail)}else {setverdict(pass)};
574 }
575
576 testcase tc_record_withWildCard4B() runs on templateRec_mycomp {
577 var template MyRec2 vtl_rec2;
578 vtl_rec2:={
579 roc:=omit,
580 u:={i:=?}
581 }
582 if(ispresent(vtl_rec2.u)){setverdict(pass)}else {setverdict(fail)};
583 if(ispresent(vtl_rec2.u.i)){setverdict(pass)}else {setverdict(fail)};
584 }
585
586 testcase tc_record_withWildCard5() runs on templateRec_mycomp {
587 var template MyRec2 vtl_rec2;
588 vtl_rec2:={
589 r:= ?
590 }
591 if(ispresent(vtl_rec2)) {setverdict(pass)}else {setverdict(fail)};
592 if(ispresent(vtl_rec2.roc)){setverdict(fail)}else {setverdict(pass)};
593 if(ispresent(vtl_rec2.roi)){setverdict(fail)}else {setverdict(pass)};
594 if(ispresent(vtl_rec2.u)){setverdict(fail)}else {setverdict(pass)};
595 if(ispresent(vtl_rec2.u.i)){setverdict(fail)}else {setverdict(pass)};
596 }
597
598 testcase tc_record_withWildCard5A() runs on templateRec_mycomp {
599 var template MyRec2 vtl_rec2;
600 vtl_rec2:={
601 r:= ?
602 }
603 if(ispresent(vtl_rec2.r)) {setverdict(pass)}else {setverdict(fail)};
604 }
605
606 testcase tc_record_withWildCard5B_optional() runs on templateRec_mycomp {
607 var template MyRec2 vtl_rec2;
608 vtl_rec2:={
609 r:= ?
610 }
611 if(ispresent(vtl_rec2.r.i)) {setverdict(fail)}else {setverdict(pass)};
612 if(ispresent(vtl_rec2.r.x)) {setverdict(fail)}else {setverdict(pass)};
613 }
614
615 testcase tc_record_withWildCard5B_mandatory() runs on templateRec_mycomp {
616 var template MyRec2 vtl_rec2;
617 vtl_rec2:={
618 r:= ?
619 }
620 if(ispresent(vtl_rec2.r.c)) {setverdict(pass)}else {setverdict(fail)};
621 }
622
623 testcase tc_record_withWildCard6() runs on templateRec_mycomp {
624 var template MyRec2 vtl_rec2;
625 vtl_rec2:={
626 r:= *
627 }
628 if(ispresent(vtl_rec2)) {setverdict(pass)}else {setverdict(fail)};
629 if(ispresent(vtl_rec2.roc)){setverdict(fail)}else {setverdict(pass)};
630 if(ispresent(vtl_rec2.roi)){setverdict(fail)}else {setverdict(pass)};
631 if(ispresent(vtl_rec2.u)){setverdict(fail)}else {setverdict(pass)};
632 if(ispresent(vtl_rec2.u.i)){setverdict(fail)}else {setverdict(pass)};
633 }
634
635 testcase tc_record_withWildCard6A() runs on templateRec_mycomp {
636 var template MyRec2 vtl_rec2;
637 vtl_rec2:={
638 r:= *
639 }
640 if(ispresent(vtl_rec2.r)) {setverdict(fail)}else {setverdict(pass)};
641 if(ispresent(vtl_rec2.r.i)) {setverdict(fail)}else {setverdict(pass)};
642 if(ispresent(vtl_rec2.r.x)) {setverdict(fail)}else {setverdict(pass)};
643 if(ispresent(vtl_rec2.r.c)) {setverdict(fail)}else {setverdict(pass)};
644 }
645
646 control {
647 execute(pasu());
648 execute(templateRecSpec());
649 execute(templateRecList());
650 execute(templateRecComp());
651 execute(templateRecOmit());
652 execute(templateRecAny());
653 execute(templateRecAnyorNone());
654 execute(templateRecIfpresent());
655 execute(MTTSM00015947());
656 execute(tc_HM39698());
657 execute(tc_valueof_governor_segfault());
658 execute(tc_HO49372());
659 execute(tc_HO69658());
660
661 execute(tc_record_withJoker1());
662 execute(tc_record_withJoker2());
663 execute(tc_record_withJoker3());
664 execute(tc_record_withJoker4());
665 execute(tc_record_withJoker5());
666 execute(tc_record_withJoker6());
667 execute(tc_record_TR_HO72813());
668 execute(tc_record_withWildCard1());
669 execute(tc_record_withWildCard1A()); //pass
670 execute(tc_record_withWildCard1AA());
671 execute(tc_record_withWildCard1B());
672 execute(tc_record_withWildCard2());
673 execute(tc_record_withWildCard2A());//pass (unbound)
674 execute(tc_record_withWildCard2B());//pass (unbound)
675 execute(tc_record_withWildCard2C());//pass (unbound)
676 execute(tc_record_withWildCard3());
677 execute(tc_record_withWildCard3A());//pass (unbound)
678 execute(tc_record_withWildCard3B());//pass (unbound)
679 execute(tc_record_withWildCard3C());//pass (*)
680 execute(tc_record_withWildCard3D());//pass
681 execute(tc_record_withWildCard4());//pass
682 execute(tc_record_withWildCard4A());
683 execute(tc_record_withWildCard4B());
684 execute(tc_record_withWildCard5());//pass
685 execute(tc_record_withWildCard5A());//pass
686 execute(tc_record_withWildCard5A());//pass
687 execute(tc_record_withWildCard5B_optional());//pass
688 execute(tc_record_withWildCard5B_mandatory());//pass
689 execute(tc_record_withWildCard6());//pass
690 execute(tc_record_withWildCard6A());
691 execute(tc_record_TR_HO72813_ip());
692 execute(tc_record_TR_HO72813_innerFields());
693 execute(tc_record_TR_HO72813_partlyInitialized());
694 execute(tc_record_TR_HO72813_omit());
695 }
696 }
This page took 0.055536 seconds and 6 git commands to generate.