Sync with 5.1.0
[deliverable/titan.core.git] / regression_test / templateAnytype / TtemplateAnytype.ttcn
CommitLineData
970ed795
EL
1/******************************************************************************
2 * Copyright (c) 2000-2014 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 ******************************************************************************/
8module TtemplateAnytype {
9type component templateAnytype_mycomp {};
10type anytype templateAnytype_myAnytype /*{
11 integer f1,
12 float f2 }*/;
13type record templateAnytype_rec {
14 templateAnytype_myAnytype x1,
15 templateAnytype_myAnytype x2,
16 templateAnytype_myAnytype x3 optional };
17template templateAnytype_rec templateAnytype_tSpec :={ //specific values
18 x1:={float:=1.2},
19 x2:={integer:=2},
20 x3:={integer:=3} };
21template templateAnytype_rec templateAnytype_tList :={ //specific value and value list
22 x1:={float:=1.2},
23 x2:=({integer:=2},{integer:=3},{float:=1.2}),
24 x3:={integer:=3} };
25template templateAnytype_rec templateAnytype_tComp :={ //specific value and compl. list
26 x1:={float:=1.2},
27 x2:=complement ({integer:=2},{float:=1.2},{integer:=6}),
28 x3:={integer:=3} };
29template templateAnytype_rec templateAnytype_tOmit :={ //omitting values
30 x1:={float:=1.2},
31 x2:={integer:=2},
32 x3:=omit } ;
33template templateAnytype_rec templateAnytype_tAny :={ //specific and any value
34 x1:={float:=1.2},
35 x2:={integer:=2},
36 x3:=? } ;
37template templateAnytype_rec templateAnytype_tAnyorNone :={ //specific and AnyorNone value
38 x1:={float:=1.2},
39 x2:={integer:=2},
40 x3:=* };
41template templateAnytype_rec templateAnytype_tIfpresent :={ //specific value and ifpresent
42 x1:={float:=1.2},
43 x2:={integer:=2},
44 x3:={integer:=3} ifpresent };
45
46testcase templateAnytypeSpec() runs on templateAnytype_mycomp {
47var templateAnytype_myAnytype temp:={integer:=3};
48var templateAnytype_rec x1,x2; //specific value
49x1:={ x1:={float:=1.2}, x2:={integer:=2}, x3:=temp };
50x2:={ x1:={float:=1.3}, x2:={integer:=2}, x3:=temp };
51//match
52if (match(x1,templateAnytype_tSpec)) {setverdict(pass);}
53 else {setverdict(fail);}
54//no match
55if (not(match(x2,templateAnytype_tSpec))) {setverdict(pass);}
56 else {setverdict(fail);}
57}
58
59testcase templateAnytypeList() runs on templateAnytype_mycomp {
60var templateAnytype_myAnytype temp:={integer:=3};
61var templateAnytype_rec x1,x2,x3; //value list
62x1:={ x1:={float:=1.2}, x2:={integer:=3}, x3:=temp };
63x2:={ x1:={float:=1.2}, x2:={integer:=7}, x3:=temp };
64x3:={ x1:={integer:=8}, x2:={integer:=3}, x3:=temp };
65//match
66if (match(x1,templateAnytype_tList)) {setverdict(pass);}
67 else {setverdict(fail);}
68//no match: out of list
69if (not(match(x2,templateAnytype_tList))) {setverdict(pass);}
70 else {setverdict(fail);}
71//no match: other field
72if (not(match(x3,templateAnytype_tList))) {setverdict(pass);}
73 else {setverdict(fail);}
74}
75
76testcase templateAnytypeComp() runs on templateAnytype_mycomp {
77var templateAnytype_myAnytype temp:={integer:=3};
78var templateAnytype_rec x1,x2,x3; //complemented list
79x1:={ x1:={float:=1.2}, x2:={integer:=7}, x3:=temp };
80x2:={ x1:={float:=1.2}, x2:={integer:=6}, x3:=temp };
81x3:={ x1:={float:=1.3}, x2:={integer:=7}, x3:=temp };
82//match
83if (match(x1,templateAnytype_tComp)) {setverdict(pass);}
84 else {setverdict(fail);}
85//no match: in the list
86if (not(match(x2,templateAnytype_tComp))) {setverdict(pass);}
87 else {setverdict(fail);}
88//no match: other field
89if (not(match(x3,templateAnytype_tComp))) {setverdict(pass);}
90 else {setverdict(fail);}
91}
92
93testcase templateAnytypeOmit() runs on templateAnytype_mycomp {
94var templateAnytype_myAnytype temp:={integer:=3};
95var templateAnytype_rec x1,x2,x3; //omitting value
96x1:={ x1:={float:=1.2}, x2:={integer:=2}, x3:=omit };
97x2:={ x1:={float:=1.2}, x2:={integer:=2}, x3:=temp };
98x3:={ x1:={integer:=2}, x2:={integer:=2}, x3:=omit };
99//match
100if (match(x1,templateAnytype_tOmit)) {setverdict(pass);}
101 else {setverdict(fail);}
102//no match: not omitted
103if (not(match(x2,templateAnytype_tOmit))) {setverdict(pass);}
104 else {setverdict(fail);}
105//no match: other field
106if (not(match(x3,templateAnytype_tOmit))) {setverdict(pass);}
107 else {setverdict(fail);}
108}
109
110testcase templateAnytypeAny() runs on templateAnytype_mycomp {
111var templateAnytype_myAnytype temp:={integer:=3};
112var templateAnytype_rec x1,x2,x3; //any value
113x1:={ x1:={float:=1.2}, x2:={integer:=2}, x3:=temp };
114x2:={ x1:={float:=1.2}, x2:={integer:=2}, x3:=omit };
115x3:={ x1:={integer:=2}, x2:={integer:=2}, x3:=temp };
116//match
117if (match(x1,templateAnytype_tAny)) {setverdict(pass);}
118 else {setverdict(fail);}
119//no match: field omitted
120if (not(match(x2,templateAnytype_tAny))) {setverdict(pass);}
121 else {setverdict(fail);}
122//no match: other field
123if (not(match(x3,templateAnytype_tAny))) {setverdict(pass);}
124 else {setverdict(fail);}
125}
126
127testcase templateAnytypeAnyorNone() runs on templateAnytype_mycomp {
128var templateAnytype_myAnytype temp:={integer:=3};
129var templateAnytype_rec x1,x2,x3; //AnyorNone value
130x1:={ x1:={float:=1.2}, x2:={integer:=2}, x3:=omit };
131x2:={ x1:={float:=1.2}, x2:={integer:=2}, x3:=temp };
132x3:={ x1:={integer:=2}, x2:={integer:=2}, x3:=omit };
133//match: omitted
134if (match(x1,templateAnytype_tAnyorNone)) {setverdict(pass);}
135 else {setverdict(fail);}
136//match: value
137if (match(x2,templateAnytype_tAnyorNone)) {setverdict(pass);}
138 else {setverdict(fail);}
139//no match: other field
140if (not(match(x3,templateAnytype_tAnyorNone))) {setverdict(pass);}
141 else {setverdict(fail);}
142}
143
144testcase templateAnytypeIfpresent() runs on templateAnytype_mycomp {
145var templateAnytype_myAnytype temp1:={integer:=3}; //ifpresent
146var templateAnytype_myAnytype temp2:={integer:=4};
147var templateAnytype_rec x1,x2,x3,x4;
148x1:={ x1:={float:=1.2}, x2:={integer:=2}, x3:=temp1 };
149x2:={ x1:={float:=1.2}, x2:={integer:=2}, x3:=omit };
150x3:={ x1:={float:=1.2}, x2:={integer:=2}, x3:=temp2 };
151x4:={ x1:={float:=1.4}, x2:={integer:=2}, x3:=omit };
152//match: present and match
153if (match(x1,templateAnytype_tIfpresent)) {setverdict(pass);}
154 else {setverdict(fail);}
155//match: not present
156if (match(x2,templateAnytype_tIfpresent)) {setverdict(pass);}
157 else {setverdict(fail);}
158//no match: present and not match
159if (not(match(x3,templateAnytype_tIfpresent))) {setverdict(pass);}
160 else {setverdict(fail);}
161//no match: other field
162if (not(match(x4,templateAnytype_tIfpresent))) {setverdict(pass);}
163 else {setverdict(fail);}
164}
165
166control {
167 execute(templateAnytypeSpec());
168 execute(templateAnytypeList());
169 execute(templateAnytypeComp());
170 execute(templateAnytypeOmit());
171 execute(templateAnytypeAny());
172 execute(templateAnytypeAnyorNone());
173 execute(templateAnytypeIfpresent());
174
175}
176}
177with {
178 extension "anytype integer, float"
179}
This page took 0.029573 seconds and 5 git commands to generate.