Last sync 2016.04.01
[deliverable/titan.core.git] / regression_test / templateEnum / TtemplateEnum.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 * Raduly, Csaba
11 * Szabados, Kristof
12 * Szabo, Janos Zoltan – initial implementation
13 *
970ed795
EL
14 ******************************************************************************/
15module TtemplateEnum {
16type component templateEnum_mycomp {};
17type enumerated templateEnum_myenum {xx1,xx2,xx3,xx4,xx5,xx6,xx7};
18type record templateEnum_rec {
19 templateEnum_myenum x1,
20 templateEnum_myenum x2,
21 templateEnum_myenum x3 optional };
22template templateEnum_rec templateEnum_tSpec :={ //specific values
23 x1:=xx1,
24 x2:=xx2,
25 x3:=xx3 };
26template templateEnum_rec templateEnum_tList :={ //specific value and value list
27 x1:=xx1,
28 x2:=(xx2,xx3,xx6),
29 x3:=xx3 };
30template templateEnum_rec templateEnum_tComp :={ //specific value and compl. list
31 x1:=xx1,
32 x2:=complement (xx2,xx3,xx6),
33 x3:=xx3 };
34template templateEnum_rec templateEnum_tOmit :={ //omitting values
35 x1:=xx1,
36 x2:=xx2,
37 x3:=omit } ;
38template templateEnum_rec templateEnum_tAny :={ //specific and any value
39 x1:=xx1,
40 x2:=xx2,
41 x3:=? } ;
42template templateEnum_rec templateEnum_tAnyorNone :={ //specific and AnyorNone value
43 x1:=xx1,
44 x2:=xx2,
45 x3:=* };
46template templateEnum_rec templateEnum_tIfpresent :={ //specific value and ifpresent
47 x1:=xx1,
48 x2:=xx2,
49 x3:=xx3 ifpresent };
50
51testcase templateEnumSpec() runs on templateEnum_mycomp {
52var templateEnum_rec x1,x2; //specific value
53x1:={ x1:=xx1, x2:=xx2, x3:=xx3 };
54x2:={ x1:=xx2, x2:=xx2, x3:=xx3 };
55//match
56if (match(x1,templateEnum_tSpec)) {setverdict(pass);}
57 else {setverdict(fail);}
58//no match
59if (not(match(x2,templateEnum_tSpec))) {setverdict(pass);}
60 else {setverdict(fail);}
61}
62
63testcase templateEnumList() runs on templateEnum_mycomp {
64var templateEnum_rec x1,x2,x3; //value list
65x1:={ x1:=xx1, x2:=xx6, x3:=xx3 };
66x2:={ x1:=xx1, x2:=xx7, x3:=xx3 };
67x3:={ x1:=xx2, x2:=xx6, x3:=xx3 };
68//match
69if (match(x1,templateEnum_tList)) {setverdict(pass);}
70 else {setverdict(fail);}
71//no match: out of list
72if (not(match(x2,templateEnum_tList))) {setverdict(pass);}
73 else {setverdict(fail);}
74//no match: other field
75if (not(match(x3,templateEnum_tList))) {setverdict(pass);}
76 else {setverdict(fail);}
77}
78
79testcase templateEnumComp() runs on templateEnum_mycomp {
80var templateEnum_rec x1,x2,x3; //complemented list
81x1:={ x1:=xx1, x2:=xx7, x3:=xx3 };
82x2:={ x1:=xx1, x2:=xx6, x3:=xx3 };
83x3:={ x1:=xx2, x2:=xx7, x3:=xx3 };
84//match
85if (match(x1,templateEnum_tComp)) {setverdict(pass);}
86 else {setverdict(fail);}
87//no match: in the list
88if (not(match(x2,templateEnum_tComp))) {setverdict(pass);}
89 else {setverdict(fail);}
90//no match: other field
91if (not(match(x3,templateEnum_tComp))) {setverdict(pass);}
92 else {setverdict(fail);}
93}
94
95testcase templateEnumOmit() runs on templateEnum_mycomp {
96var templateEnum_rec x1,x2,x3; //omitting value
97x1:={ x1:=xx1, x2:=xx2, x3:=omit };
98x2:={ x1:=xx1, x2:=xx2, x3:=xx3 };
99x3:={ x1:=xx2, x2:=xx2, x3:=omit };
100//match
101if (match(x1,templateEnum_tOmit)) {setverdict(pass);}
102 else {setverdict(fail);}
103//no match: not omitted
104if (not(match(x2,templateEnum_tOmit))) {setverdict(pass);}
105 else {setverdict(fail);}
106//no match: other field
107if (not(match(x3,templateEnum_tOmit))) {setverdict(pass);}
108 else {setverdict(fail);}
109}
110
111testcase templateEnumAny() runs on templateEnum_mycomp {
112var templateEnum_rec x1,x2,x3; //any value
113x1:={ x1:=xx1, x2:=xx2, x3:=xx3 };
114x2:={ x1:=xx2, x2:=xx2, x3:=xx3 };
115x3:={ x1:=xx1, x2:=xx2, x3:=omit };
116//match
117if (match(x1,templateEnum_tAny)) {setverdict(pass);}
118 else {setverdict(fail);}
119//no match: field omitted
120if (not(match(x2,templateEnum_tAny))) {setverdict(pass);}
121 else {setverdict(fail);}
122//no match: other field
123if (not(match(x3,templateEnum_tAny))) {setverdict(pass);}
124 else {setverdict(fail);}
125}
126
127testcase templateEnumAnyorNone() runs on templateEnum_mycomp {
128var templateEnum_rec x1,x2,x3; //AnyorNone value
129x1:={ x1:=xx1, x2:=xx2, x3:=omit };
130x2:={ x1:=xx1, x2:=xx2, x3:=xx3 };
131x3:={ x1:=xx2, x2:=xx2, x3:=omit };
132//match: omitted
133if (match(x1,templateEnum_tAnyorNone)) {setverdict(pass);}
134 else {setverdict(fail);}
135//match: value
136if (match(x2,templateEnum_tAnyorNone)) {setverdict(pass);}
137 else {setverdict(fail);}
138//no match: other field
139if (not(match(x3,templateEnum_tAnyorNone))) {setverdict(pass);}
140 else {setverdict(fail);}
141}
142
143testcase templateEnumIfpresent() runs on templateEnum_mycomp {
144var templateEnum_rec x1,x2,x3,x4; //ifpresent
145x1:={ x1:=xx1, x2:=xx2, x3:=xx3 };
146x2:={ x1:=xx1, x2:=xx2, x3:=omit };
147x3:={ x1:=xx2, x2:=xx2, x3:=omit };
148x4:={ x1:=xx1, x2:=xx2, x3:=xx4 };
149//match: present and match
150if (match(x1,templateEnum_tIfpresent)) {setverdict(pass);}
151 else {setverdict(fail);}
152//match: not present
153if (match(x2,templateEnum_tIfpresent)) {setverdict(pass);}
154 else {setverdict(fail);}
155//no match: present and not match
156if (not(match(x3,templateEnum_tIfpresent))) {setverdict(pass);}
157 else {setverdict(fail);}
158//no match: other field
159if (not(match(x4,templateEnum_tIfpresent))) {setverdict(pass);}
160 else {setverdict(fail);}
161}
162
163control {
164 execute(templateEnumSpec());
165 execute(templateEnumList());
166 execute(templateEnumComp());
167 execute(templateEnumOmit());
168 execute(templateEnumAny());
169 execute(templateEnumAnyorNone());
170 execute(templateEnumIfpresent());
171}
172}
This page took 0.03865 seconds and 5 git commands to generate.