Last sync 2016.04.01
[deliverable/titan.core.git] / regression_test / macros / Macros.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 * Czerman, Oliver
11 * Delic, Adam
12 * Raduly, Csaba
13 * Szabados, Kristof
14 *
15 ******************************************************************************/
16 module Macros {
17
18 modulepar charstring tsp_moduleScope := __SCOPE__;
19
20
21
22 // ********** Type definitions *********************
23
24
25 type record MyRecord {
26 charstring field1,
27 charstring field2 (__SCOPE__) optional
28 };
29
30 type record MyRecord2 {
31 MyRecord field1,
32 charstring field2 (__SCOPE__)
33 };
34
35 type charstring Char_scope (__SCOPE__);
36
37 //type enumerated Dummy { Dummy1, Dummy2, __SCOPE__ }; //NOK
38
39
40
41 // *************** Constanst ***********************
42 const charstring c_scope := __SCOPE__;
43
44
45
46
47 // *************** Templates **********************
48
49 //for __SCOPE__ macro
50 template MyRecord t_MyTemplate := {
51 field1 := __SCOPE__,
52 //field2 := __SCOPE__ //NOK MyRecord not equal with t_MyTemplate
53 field2 := "MyRecord"
54 }
55
56
57 //for __SCOPE__ macro
58 template MyRecord2 t_MyTemplate2 := {
59 field1 := {
60 field1 := __SCOPE__,
61 //field2 := __SCOPE__ //NOK MyRecord not equal with t_MyTemplate
62 field2 := "MyRecord"
63 },
64 field2 := "MyRecord2"
65 }
66
67
68 //************* Components ***************
69
70 //for __SCOPE__ macro
71 type component MyMtcType {
72 const charstring c_Scope:=__SCOPE__;
73 timer T_MyTimer:=0.001;
74 }
75
76
77 //for __SCOPE__ macro
78 type component MyExtendedC extends MyMtcType {
79 const charstring c_ex := __SCOPE__;
80 }
81
82 //************* Altsteps *****************
83
84 //for __SCOPE__ macro
85 altstep as_MyAltstep() runs on MyMtcType{
86 [] T_MyTimer.timeout {if(__SCOPE__=="as_MyAltstep"){setverdict(pass);}else {setverdict(fail);}}
87 }
88
89
90 //for __SCOPE__ macro
91 altstep as_MyAloneAltstep(){
92 [] any timer.timeout {if(__SCOPE__=="as_MyAloneAltstep"){setverdict(pass);}else {setverdict(fail);}}
93 }
94
95
96
97
98 // ************ Functions ****************
99
100 //for __SCOPE__ macro
101 function f_MyFunction()
102 {
103 if(__SCOPE__=="f_MyFunction"){setverdict(pass);}else {setverdict(fail);}
104 }
105
106
107 //for __SCOPE__ macro
108 function f_MyMtcFunction() runs on MyMtcType
109 {
110 if(__SCOPE__=="f_MyMtcFunction"){setverdict(pass);}else {setverdict(fail);}
111 }
112
113
114
115
116
117 // *********** Testcases ******************
118
119 //testcase for __SCOPE__ macro
120 testcase tc_scope(charstring p_scope) runs on MyExtendedC{
121 log("/Testing of __SCOPE__ macro/");
122 log("*module name");
123 if(tsp_moduleScope=="Macros"){setverdict(pass);}else {setverdict(fail);}
124 if(c_scope=="Macros"){setverdict(pass);}else {setverdict(fail);}
125 log("*control");
126 if(p_scope=="control"){setverdict(pass);}else {setverdict(fail);}
127 log("*component type name");
128 if(c_Scope=="MyMtcType"){setverdict(pass);}else {setverdict(fail);}
129 if(c_ex=="MyExtendedC"){setverdict(pass);}else {setverdict(fail);}
130 log("*testcase name");
131 if(__SCOPE__=="tc_scope"){setverdict(pass);}else {setverdict(fail);}
132 log("*altstep name");
133 T_MyTimer.start;
134 alt{
135 [] as_MyAltstep();
136 }
137 T_MyTimer.start;
138 alt{
139 [] as_MyAloneAltstep();
140 }
141 log("*function name");
142 f_MyFunction();
143 f_MyMtcFunction();
144 var MyRecord v_record;
145 v_record.field1 := "t_MyTemplate";
146 v_record.field2 := "MyRecord";
147 var MyRecord2 v_record2;
148 v_record2.field1.field1:="t_MyTemplate2";
149 v_record2.field1.field2:="MyRecord";
150 v_record2.field2:="MyRecord2";
151 log("*template, record name");
152 if(match(v_record,t_MyTemplate)){setverdict(pass);}else {setverdict(fail);}
153 if(match(v_record2,t_MyTemplate2)){setverdict(pass);}else {setverdict(fail);}
154 log("*user defined named types");
155 var Char_scope v_charscope := "Char_scope";
156 if(v_charscope=="Char_scope"){setverdict(pass);}else {setverdict(fail);}
157 }
158
159 function f_testcaseId() runs on MyExtendedC {
160 var charstring vl_tcName := %testcaseId;
161 if (vl_tcName=="tc_testcaseId") {setverdict(pass);} else {setverdict(fail);}
162 }
163
164 function f_testcaseId2(boolean b:=true) runs on MyExtendedC {
165 var charstring vl_tcName;
166 if (b) {
167 vl_tcName := %testcaseId;
168 }
169 if (vl_tcName=="tc_testcaseId") {setverdict(pass);} else {setverdict(fail);}
170 }
171
172 testcase tc_testcaseId() runs on MyExtendedC {
173 var charstring vl_tcName;
174 vl_tcName := %testcaseId;
175 if (vl_tcName=="tc_testcaseId") {setverdict(pass);} else {setverdict(fail);}
176 f_testcaseId();
177 f_testcaseId2();
178 }
179
180 //*********** Control **********
181 control {
182 execute(tc_scope(__SCOPE__));
183 execute(tc_testcaseId());
184 }
185
186 }
This page took 0.040055 seconds and 5 git commands to generate.