Sync with 5.4.1
[deliverable/titan.core.git] / regression_test / compileonly / openTypeNames / Open_type_use.ttcn
CommitLineData
3abe9331 1/******************************************************************************\r
2 * Copyright (c) 2000-2015 Ericsson Telecom AB\r
3 * All rights reserved. This program and the accompanying materials\r
4 * are made available under the terms of the Eclipse Public License v1.0\r
5 * which accompanies this distribution, and is available at\r
6 * http://www.eclipse.org/legal/epl-v10.html\r
7 ******************************************************************************/\r
8\r
9// This module tests that the compiler allows both uppercase and lowercase\r
10// first letters for the name of an open type alternative\r
11module Open_type_use {\r
12\r
13import from IO_based_message language "ASN.1:2002" all;\r
14\r
15// Constants (lowercase first letter)\r
16const MyMessage c_message_id1_lower := {\r
17 id := 1,\r
18 content := { mySeq := { field1 := 42, field2 := omit }}\r
19}\r
20\r
21const MyMessage c_message_id2_lower := {\r
22 id := 2,\r
23 content := { myEnum := first}\r
24}\r
25\r
26const MyMessage c_message_id3_lower := {\r
27 id := 3,\r
28 content := { iNTEGER := 42 }\r
29}\r
30\r
51fa56b9 31const MyMessage c_message_id4_lower := {\r
32 id := 4,\r
33 content := { nULL := NULL }\r
34}\r
35\r
3abe9331 36// Constants (uppercase first letter)\r
37const MyMessage c_message_id1_upper := {\r
38 id := 1,\r
39 content := { MySeq := { field1 := 42, field2 := omit }}\r
40}\r
41\r
42const MyMessage c_message_id2_upper := {\r
43 id := 2,\r
44 content := { MyEnum := first}\r
45}\r
46\r
47const MyMessage c_message_id3_upper := {\r
48 id := 3,\r
49 content := { INTEGER := 42 }\r
50}\r
51\r
51fa56b9 52const MyMessage c_message_id4_upper := {\r
53 id := 4,\r
54 content := { NULL := NULL }\r
55}\r
56\r
3abe9331 57// Templates (lowercase first letter)\r
58template MyMessage t_message_id1_lower := {\r
59 id := 1,\r
60 content := { mySeq := { field1 := 42, field2 := omit }}\r
61}\r
62\r
63template MyMessage t_message_id2_lower := {\r
64 id := 2,\r
65 content := { myEnum := first}\r
66}\r
67\r
68template MyMessage t_message_id3_lower := {\r
69 id := 3,\r
70 content := { iNTEGER := 42 }\r
71}\r
72\r
51fa56b9 73template MyMessage t_message_id4_lower := {\r
74 id := 4,\r
75 content := { nULL := NULL }\r
76}\r
77\r
3abe9331 78// Templates (uppercase first letter)\r
79template MyMessage t_message_id1_upper := {\r
80 id := 1,\r
81 content := { MySeq := { field1 := 42, field2 := omit }}\r
82}\r
83\r
84template MyMessage t_message_id2_upper := {\r
85 id := 2,\r
86 content := { MyEnum := first}\r
87}\r
88\r
89template MyMessage t_message_id3_upper := {\r
90 id := 3,\r
91 content := { INTEGER := 42 }\r
92}\r
93\r
51fa56b9 94template MyMessage t_message_id4_upper := {\r
95 id := 4,\r
96 content := { NULL := NULL }\r
97}\r
98\r
3abe9331 99// Value list template (contains both lowercase and uppercase examples)\r
100template MyMessage t_message_value_list := (\r
101 { id := 1, content := { mySeq := { field1 := 42, field2 := omit }} },\r
102 { id := 2, content := { myEnum := first} },\r
103 { id := 3, content := { iNTEGER := 42 } },\r
51fa56b9 104 { id := 4, content := { nULL := NULL } },\r
3abe9331 105 { id := 1, content := { MySeq := { field1 := -42, field2 := omit }} },\r
106 { id := 2, content := { MyEnum := second} },\r
51fa56b9 107 { id := 3, content := { INTEGER := -42 } },\r
108 { id := 4, content := { NULL := NULL } }\r
3abe9331 109);\r
110\r
111// Dummy function to declare variables in\r
112function f_dummy() {\r
113 // Variables (lowercase first letter)\r
114 var MyMessage v_message_id1_lower := {\r
115 id := 1,\r
116 content := { mySeq := { field1 := 42, field2 := omit }}\r
117 }\r
118\r
119 var MyMessage v_message_id2_lower := {\r
120 id := 2,\r
121 content := { myEnum := first}\r
122 }\r
123 \r
124 var MyMessage v_message_id3_lower := {\r
125 id := 3,\r
126 content := { iNTEGER := 42 }\r
127 }\r
51fa56b9 128 \r
129 var MyMessage v_message_id4_lower := {\r
130 id := 4,\r
131 content := { nULL := NULL }\r
132 }\r
3abe9331 133\r
134 // Variables (uppercase first letter)\r
135 var MyMessage v_message_id1_upper := {\r
136 id := 1,\r
137 content := { MySeq := { field1 := 42, field2 := omit }}\r
138 }\r
139\r
140 var MyMessage v_message_id2_upper := {\r
141 id := 2,\r
142 content := { MyEnum := first}\r
143 }\r
144 \r
145 var MyMessage v_message_id3_upper := {\r
146 id := 3,\r
147 content := { INTEGER := 42 }\r
148 }\r
51fa56b9 149 \r
150 var MyMessage v_message_id4_upper := {\r
151 id := 4,\r
152 content := { NULL := NULL }\r
153 }\r
3abe9331 154\r
155 // Template variables (lowercase first letter)\r
156 var template MyMessage vt_message_id1_lower := {\r
157 id := 1,\r
158 content := { mySeq := { field1 := 42, field2 := omit }}\r
159 }\r
160\r
161 var template MyMessage vt_message_id2_lower := {\r
162 id := 2,\r
163 content := { myEnum := first}\r
164 }\r
165 \r
166 var template MyMessage vt_message_id3_lower := {\r
167 id := 3,\r
168 content := { iNTEGER := 42 }\r
169 }\r
51fa56b9 170 \r
171 var template MyMessage vt_message_id4_lower := {\r
172 id := 4,\r
173 content := { nULL := NULL }\r
174 }\r
3abe9331 175\r
176 // Template variables (uppercase first letter)\r
177 var template MyMessage vt_message_id1_upper := {\r
178 id := 1,\r
179 content := { MySeq := { field1 := 42, field2 := omit }}\r
180 }\r
181\r
182 var template MyMessage vt_message_id2_upper := {\r
183 id := 2,\r
184 content := { MyEnum := first}\r
185 }\r
186 \r
187 var template MyMessage vt_message_id3_upper := {\r
188 id := 3,\r
189 content := { INTEGER := 42 }\r
190 }\r
191 \r
51fa56b9 192 var template MyMessage vt_message_id4_upper := {\r
193 id := 4,\r
194 content := { NULL := NULL }\r
195 }\r
196 \r
3abe9331 197 // Value list template variable (contains both lowercase and uppercase examples)\r
198 var template MyMessage vt_message_value_list := (\r
199 { id := 1, content := { mySeq := { field1 := 42, field2 := omit }} },\r
200 { id := 2, content := { myEnum := first} },\r
201 { id := 3, content := { iNTEGER := 42 } },\r
51fa56b9 202 { id := 4, content := { nULL := NULL } },\r
3abe9331 203 { id := 1, content := { MySeq := { field1 := -42, field2 := omit }} },\r
204 { id := 2, content := { MyEnum := second} },\r
51fa56b9 205 { id := 3, content := { INTEGER := -42 } },\r
206 { id := 4, content := { NULL := NULL } }\r
3abe9331 207 );\r
208 \r
209 // Referencing fields of open types (contains both lowercase and uppercase examples)\r
210 v_message_id1_lower.content.mySeq := { field1 := 41, field2 := omit };\r
211 v_message_id1_upper.content.MySeq := { field1 := 41, field2 := omit };\r
212 v_message_id2_lower.content.myEnum := second;\r
213 v_message_id2_upper.content.MyEnum := second;\r
214 v_message_id3_lower.content.iNTEGER := 15;\r
215 v_message_id3_upper.content.INTEGER := 15;\r
51fa56b9 216 v_message_id4_lower.content.nULL := NULL;\r
217 v_message_id4_upper.content.NULL := NULL;\r
3abe9331 218 vt_message_id1_lower.content.mySeq := { field1 := 41, field2 := omit };\r
219 vt_message_id1_upper.content.MySeq := { field1 := 41, field2 := omit };\r
220 vt_message_id2_lower.content.myEnum := second;\r
221 vt_message_id2_upper.content.MyEnum := second;\r
222 vt_message_id3_lower.content.iNTEGER := 15;\r
223 vt_message_id3_upper.content.INTEGER := 15;\r
51fa56b9 224 vt_message_id4_lower.content.nULL := NULL;\r
225 vt_message_id4_upper.content.NULL := NULL;\r
3abe9331 226 if (c_message_id1_lower.content.mySeq == { field1 := 41, field2 := omit } and\r
227 c_message_id1_upper.content.MySeq == { field1 := 41, field2 := omit } and\r
228 c_message_id2_lower.content.myEnum == second and\r
229 c_message_id2_upper.content.MyEnum == second and\r
230 c_message_id3_lower.content.iNTEGER == 15 and\r
51fa56b9 231 c_message_id3_upper.content.INTEGER == 15 and\r
232 c_message_id4_lower.content.nULL == NULL and // NULL != NULL !?\r
233 c_message_id4_upper.content.NULL == NULL) {\r
3abe9331 234 log("a");\r
235 }\r
236 if (v_message_id1_lower.content.mySeq == { field1 := 41, field2 := omit } and\r
237 v_message_id1_upper.content.MySeq == { field1 := 41, field2 := omit } and\r
238 v_message_id2_lower.content.myEnum == second and\r
239 v_message_id2_upper.content.MyEnum == second and\r
240 v_message_id3_lower.content.iNTEGER == 15 and\r
51fa56b9 241 v_message_id3_upper.content.INTEGER == 15 and\r
242 v_message_id4_lower.content.nULL == NULL and\r
243 v_message_id4_upper.content.NULL == NULL) {\r
3abe9331 244 log("b");\r
245 }\r
246 if (match({ field1 := 41, field2 := omit }, t_message_id1_lower.content.mySeq) and\r
247 match({ field1 := 41, field2 := omit }, t_message_id1_lower.content.MySeq) and\r
248 match(second, t_message_id2_lower.content.myEnum) and\r
249 match(second, t_message_id2_lower.content.MyEnum) and\r
250 match(15, t_message_id3_lower.content.iNTEGER) and\r
51fa56b9 251 match(15, t_message_id3_lower.content.INTEGER) and\r
252 match(NULL, t_message_id4_lower.content.nULL) and\r
253 match(NULL, t_message_id4_lower.content.NULL)) {\r
3abe9331 254 log("c");\r
255 }\r
256 if (match({ field1 := 41, field2 := omit }, vt_message_id1_upper.content.mySeq) and\r
257 match({ field1 := 41, field2 := omit }, vt_message_id1_upper.content.MySeq) and\r
258 match(second, vt_message_id2_upper.content.myEnum) and\r
259 match(second, vt_message_id2_upper.content.MyEnum) and\r
260 match(15, vt_message_id3_upper.content.iNTEGER) and\r
51fa56b9 261 match(15, vt_message_id3_upper.content.INTEGER) and\r
262 match(NULL, vt_message_id4_upper.content.nULL) and\r
263 match(NULL, vt_message_id4_upper.content.NULL)) {\r
3abe9331 264 log("d");\r
265 }\r
266}\r
267\r
268}\r
This page took 0.036164 seconds and 5 git commands to generate.