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