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