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
14 * Szabo, Janos Zoltan – initial implementation
16 ******************************************************************************/
18 { type component verdictOper_mycomp {};
19 const verdicttype verdictOper_const1:=fail;
21 testcase verdictAssign() runs on verdictOper_mycomp {
22 var verdicttype x1:=inconc;
25 if (x1==inconc) {setverdict(pass);} //at declaration
26 else {setverdict(fail);}
27 if (x2==pass) {setverdict(pass);} //later
28 else {setverdict(fail);}
31 testcase verdictConst() runs on verdictOper_mycomp {
32 const verdicttype const1:=inconc;
33 if (verdictOper_const1==fail) {setverdict(pass);} //definition part declaration
34 else {setverdict(fail);}
35 if (const1==inconc) {setverdict(pass);} //testcase
36 else {setverdict(fail);}
40 testcase verdictCompEq() runs on verdictOper_mycomp {
41 var verdicttype x1,x2,x3;
45 if (x1==x2) {setverdict(pass);} //variable_variable
46 else {setverdict(fail);}
47 if (not(x3==x2)) {setverdict(pass);} //variable_variable
48 else {setverdict(fail);}
49 if (x1==pass) {setverdict(pass);} //variable_value
50 else {setverdict(fail);}
51 if (not(x1==fail)) {setverdict(pass);} //variable_value
52 else {setverdict(fail);}
53 if (pass==x1) {setverdict(pass);} //value_variable
54 else {setverdict(fail);}
55 if (not(inconc==x1)) {setverdict(pass);} //value_variable
56 else {setverdict(fail);}
57 if (pass==pass) {setverdict(pass);} //value_value
58 else {setverdict(fail);}
59 if (not(pass==fail)) {setverdict(pass);} //value_value
60 else {setverdict(fail);}
63 testcase verdictCompNotEq() runs on verdictOper_mycomp
64 { var verdicttype x1,x2,x3;
68 if (x1!=x2) {setverdict(pass);} //variable_variable
69 else {setverdict(fail);}
70 if (not(x1!=x3)) {setverdict(pass);} //variable_variable
71 else {setverdict(fail);}
72 if (x1!=fail) {setverdict(pass);} //variable_value
73 else {setverdict(fail);}
74 if (not(x1!=pass)) {setverdict(pass);} //variable_value
75 else {setverdict(fail);}
76 if (pass!=x2) {setverdict(pass);} //value_variable
77 else {setverdict(fail);}
78 if (not(fail!=x2)) {setverdict(pass);} //value_variable
79 else {setverdict(fail);}
80 if (inconc!=fail) {setverdict(pass);} //value_value
81 else {setverdict(fail);}
82 if (not(pass!=pass)) {setverdict(pass);} //value_value
83 else {setverdict(fail);}
86 testcase verdictSetGet() runs on verdictOper_mycomp {
88 if (getverdict != none) { setverdict(fail); stop; }
91 if (x1 != pass) { setverdict(fail); stop; }
94 testcase verdictSet_None() runs on verdictOper_mycomp {
98 testcase verdictSet_n_None() runs on verdictOper_mycomp {
102 testcase verdictSet_p_Pass() runs on verdictOper_mycomp {
106 testcase verdictSet_i_Inconc() runs on verdictOper_mycomp {
110 testcase verdictSet_f_Fail() runs on verdictOper_mycomp {
111 setverdict(fail, "fail alone is fail");
114 testcase verdictSet_p_i_Inconc() runs on verdictOper_mycomp {
119 testcase verdictSet_p_f_Fail() runs on verdictOper_mycomp {
121 setverdict(fail, "fail after pass is fail");
124 testcase verdictSet_p_n_Pass() runs on verdictOper_mycomp {
129 testcase verdictSet_i_p_Inconc() runs on verdictOper_mycomp {
134 testcase verdictSet_i_f_Fail() runs on verdictOper_mycomp {
139 testcase verdictSet_i_n_Inconc() runs on verdictOper_mycomp {
144 testcase verdictSet_f_p_Fail() runs on verdictOper_mycomp {
146 setverdict(pass, "pass after fail is still fail");
149 testcase verdictSet_f_i_Fail() runs on verdictOper_mycomp {
154 testcase verdictSet_f_n_Fail() runs on verdictOper_mycomp {
159 testcase verdictSet_n_p_Pass() runs on verdictOper_mycomp {
164 testcase verdictSet_n_i_Inconc() runs on verdictOper_mycomp {
169 testcase verdictSet_n_f_Fail() runs on verdictOper_mycomp {
174 /*--- VERDICT REASON -----------------------------------------------*/
176 modulepar octetstring VR_mp := '12353425'O;
177 const float VR_fl := 1.0;
183 testcase verdict_reason() runs on verdictOper_mycomp {
185 template VR_rec VR_tmpl := { i := 1235, b := true};
186 var integer VR_int := 5;
188 timer VR_timer := 5.0;
191 setverdict(pass, "Module parameter identifier: ", VR_mp);
192 setverdict(pass, "Literal value: ", "this is the value");
193 setverdict(pass, "Data constant identifier: ", VR_fl);
194 setverdict(pass, "Template instance: ", VR_tmpl);
195 setverdict(pass, "Data type variable identifier: ", VR_int);
196 setverdict(pass, "Uninitialized data type variable identifier: ", VR_bool);
197 setverdict(pass, "self component type variable identifier: ", self);
198 setverdict(pass, "mtc component type variable identifier: ", mtc);
199 setverdict(pass, "system component type variable identifier: ", system);
200 setverdict(pass, "Timer running operation: ", VR_timer.running);
201 setverdict(pass, "Timer name: ", VR_timer);
202 setverdict(pass, "Getverdict operation: ", getverdict);
203 setverdict(pass, "More parameters: ", getverdict, system, self, VR_tmpl, VR_mp, "and this is the and of all logging...");
207 type verdicttype typedefbasic_myverdt;
208 type verdicttype myv1 (pass, fail, none, inconc)
210 type verdicttype myv3 (error)
211 type verdicttype myv4 (myv1, myv3)
212 const myv1 c_myv1 := pass
213 const myv4 c_myv2 := none
214 template myv1 t_myv1 := f_v1()
215 template myv1 t_myv2 := f_v2()
216 template myv4 t_myv3 := fail
218 modulepar myv1 mod1 := c_myv1
220 function f_v1() return myv1 { return inconc }
221 function f_v2() return myv1 { return c_myv1 }
223 testcase verdictSubtypes() runs on verdictOper_mycomp {
224 if (pass == mod1 and mod1 == pass and f_v1() != f_v2()) { setverdict(pass) }
225 else { setverdict(fail) }
226 var template myv3 vt_v1 := error
227 var myv3 v_v1 := valueof(vt_v1)
228 if (error == v_v1 and match(error, vt_v1)) { setverdict(pass) }
229 else { setverdict(fail) }
232 testcase verdictIsbound() runs on verdictOper_mycomp {
234 var verdicttype v1 := pass;
235 if ( isvalue(v0) ) { setverdict(fail); } else { setverdict(pass); };
236 if ( isvalue(v1) ) { setverdict(pass); } else { setverdict(fail); };
240 var integer fault_count := 0;
241 if (execute(verdictAssign()) != pass) {
242 log("Test case verdictAssign has unexpected verdict.");
243 fault_count := fault_count + 1;
245 if (execute(verdictConst()) != pass) {
246 log("Test case verdictConst has unexpected verdict.");
247 fault_count := fault_count + 1;
249 if (execute(verdictCompEq()) != pass) {
250 log("Test case verdictCompEq has unexpected verdict.");
251 fault_count := fault_count + 1;
253 if (execute(verdictCompNotEq()) != pass) {
254 log("Test case verdictCompNotEq has unexpected verdict.");
255 fault_count := fault_count + 1;
257 if (execute(verdictSetGet()) != pass) {
258 log("Test case verdictSetGet has unexpected verdict.");
259 fault_count := fault_count + 1;
261 if (execute(verdictSet_None()) != none) {
262 log("Test case verdictSet_None has unexpected verdict.");
263 fault_count := fault_count + 1;
265 if (execute(verdictSet_n_None()) != none) {
266 log("Test case verdictSet_n_None has unexpected verdict.");
267 fault_count := fault_count + 1;
269 if (execute(verdictSet_p_Pass()) != pass) {
270 log("Test case verdictSet_p_Pass has unexpected verdict.");
271 fault_count := fault_count + 1;
273 if (execute(verdictSet_i_Inconc()) != inconc) {
274 log("Test case verdictSet_i_Inconc has unexpected verdict.");
275 fault_count := fault_count + 1;
277 if (execute(verdictSet_f_Fail()) != fail) {
278 log("Test case verdictSet_f_Fail has unexpected verdict.");
279 fault_count := fault_count + 1;
281 if (execute(verdictSet_p_i_Inconc()) != inconc) {
282 log("Test case verdictSet_p_i_Inconc has unexpected verdict.");
283 fault_count := fault_count + 1;
285 if (execute(verdictSet_p_f_Fail()) != fail) {
286 log("Test case verdictSet_p_f_Fail has unexpected verdict.");
287 fault_count := fault_count + 1;
289 if (execute(verdictSet_p_n_Pass()) != pass) {
290 log("Test case verdictSet_p_n_Pass has unexpected verdict.");
291 fault_count := fault_count + 1;
293 if (execute(verdictSet_i_p_Inconc()) != inconc) {
294 log("Test case verdictSet_i_p_Inconc has unexpected verdict.");
295 fault_count := fault_count + 1;
297 if (execute(verdictSet_i_f_Fail()) != fail) {
298 log("Test case verdictSet_i_f_Fail has unexpected verdict.");
299 fault_count := fault_count + 1;
301 if (execute(verdictSet_i_n_Inconc()) != inconc) {
302 log("Test case verdictSet_i_n_Inconc has unexpected verdict.");
303 fault_count := fault_count + 1;
305 if (execute(verdictSet_f_p_Fail()) != fail) {
306 log("Test case verdictSet_f_p_Fail has unexpected verdict.");
307 fault_count := fault_count + 1;
309 if (execute(verdictSet_f_i_Fail()) != fail) {
310 log("Test case verdictSet_f_i_Fail has unexpected verdict.");
311 fault_count := fault_count + 1;
313 if (execute(verdictSet_f_n_Fail()) != fail) {
314 log("Test case verdictSet_f_n_Fail has unexpected verdict.");
315 fault_count := fault_count + 1;
317 if (execute(verdictSet_n_p_Pass()) != pass) {
318 log("Test case verdictSet_n_p_Pass has unexpected verdict.");
319 fault_count := fault_count + 1;
321 if (execute(verdictSet_n_i_Inconc()) != inconc) {
322 log("Test case verdictSet_n_i_Inconc has unexpected verdict.");
323 fault_count := fault_count + 1;
325 if (execute(verdictSet_n_f_Fail()) != fail) {
326 log("Test case verdictSet_n_f_Fail has unexpected verdict.");
327 fault_count := fault_count + 1;
329 if (execute(verdict_reason()) != pass) {
330 log("Test case verdict_reason has unexpected verdict.");
331 fault_count := fault_count + 1;
333 if (execute(verdictSubtypes()) != pass) {
334 log("Test case verdictSubtypes() has unexpected verdict.");
335 fault_count := fault_count + 1;
337 if (execute(verdictIsbound()) != pass) {
338 log("Test case verdictSubtypes() has unexpected verdict.");
339 fault_count := fault_count + 1;
341 if (fault_count == 0) {
342 log("ALL TEST CASES HAVE PASSED!!!");
345 log("NUMBER OF FAILED TEST CASES: ", fault_count);
346 // this will cause an error