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 .******************************************************************************/
11 .* EDML webpage: http://cpi.ericsson.se/dwaxe/
12 .* EDML2PDF converter: http://dwaxe.ericsson.se/x2pdf
13 .* EDML user guide: http://www.lmc.ericsson.se/~lmcmarg/isit/edml_ug.html
15 .* Document header information
16 :docname.Test Description
17 :docno.20/15291-CRL200/5 Uen
21 :prep.ETH/RZD Endre Szalai (+36 1 437 7796)
25 :title.Test description of the Semantic Analyzer: Adhoc tests
27 .*---------------------------------------------------------------------*
29 .*---------------------------------------------------------------------*
30 .*---------------------------------------------------------------------*
32 .*---------------------------------------------------------------------*
34 REV DATE PREPARED CHANGE
35 __________________________________________________
36 - 2005-01-31 ETHESI New document for TITAN R1.6
38 .*---------------------------------------------------------------------*
40 .*---------------------------------------------------------------------*
41 This document contains adhoc tests for ASN.1 Semantic Analyser. These test
42 cases shall be moved to different test descriptions in forthcoming
44 .*---------------------------------------------------------------------*
45 :h2.Test cases - ASN.1
46 .*---------------------------------------------------------------------*
47 .*---------------------------------------------------------------------*
48 :h3.ASN1::Not unique symbol: EXPORTS
49 .*---------------------------------------------------------------------*
51 <TC - ASN1::Not unique symbol: EXPORTS>
54 <MODULE ASN Module-A ModuleA.asn>
55 Module-A DEFINITIONS ::=
57 EXPORTS Duplicate-symbol, Duplicate-symbol;
59 Duplicate-symbol ::= BOOLEAN
62 <RESULT IF_PASS COUNT 1>
63 (?im)\berror\b.+?Duplicate.+?identifier.+?in.+?SymbolList.+?Duplicate-symbol
65 <RESULT IF_PASS COUNT 1>
68 <RESULT IF_PASS COUNT 1>
69 (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b
74 .*---------------------------------------------------------------------*
75 :h3.ASN1::Not unique symbol: IMPORTS
76 .*---------------------------------------------------------------------*
78 <TC - ASN1::Not unique symbol: IMPORTS>
81 <MODULE ASN Module-A ModuleA.asn>
82 Module-A DEFINITIONS ::=
84 IMPORTS Duplicate-symbol, Duplicate-symbol FROM Module-B;
88 <MODULE ASN Module-B ModuleB.asn>
89 Module-B DEFINITIONS ::=
92 Duplicate-symbol ::= BOOLEAN
95 <RESULT IF_PASS COUNT 1>
96 (?im)\berror\b.+?Duplicate.+?identifier.+?in.+?SymbolList.+?Duplicate-symbol
98 <RESULT IF_PASS COUNT 1>
101 <RESULT IF_PASS COUNT 1>
102 (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b
107 .*---------------------------------------------------------------------*
108 :h3.ASN1::Not unique assignment: Assignments of a module
109 .*---------------------------------------------------------------------*
111 <TC - ASN1::Not unique assignment: Assignments of a module>
114 <MODULE ASN Module-A ModuleA.asn>
115 Module-A DEFINITIONS ::=
118 -- TR 677: Duplicate symbol check in a module
119 Duplicate-symbol ::= BOOLEAN
120 Duplicate-symbol ::= INTEGER
123 <RESULT IF_PASS COUNT 1>
124 (?im)\berror\b.+?Duplicate.+?assignment.+?Duplicate-symbol
126 <RESULT IF_PASS COUNT 1>
127 (?im)\bnote\b.+?previous.+?assignment.+?Duplicate-symbol.+?here
129 <RESULT IF_PASS COUNT 1>
130 (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b
135 .*---------------------------------------------------------------------*
136 :h3.ASN1::Not unique assignment: Reserved assignment
137 .*---------------------------------------------------------------------*
139 <TC - ASN1::Not unique assignment: Reserved assignment>
142 <MODULE ASN Module-A ModuleA.asn>
143 Module-A DEFINITIONS ::=
146 -- NOTE: it's not clear how to trigger the error message in SA, if
147 -- the parser always cathces the reserved identifiers.
148 -- in Assignments::chk_uniq(): "`%s' is a reserved identifier"
149 EMBEDDED PDV ::= INTEGER
152 <RESULT IF_PASS COUNT 1>
153 (?im)\berror\b.+?Duplicated.+?identifier.+?in.+?SymbolList.+?Duplicated-symbol
155 <RESULT IF_PASS COUNT 1>
158 <RESULT IF_PASS COUNT 1>
159 (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b
161 <RESULT IF_FAIL COUNT 1>
162 (?im)\berror\b.+?syntax.+?error.+?unexpected.+?embedded
164 <RESULT IF_FAIL COUNT 1>
170 .*---------------------------------------------------------------------*
171 :h3.ASN1::Symbol is not exported
172 .*---------------------------------------------------------------------*
174 <TC - ASN1::Symbol is not exported>
177 <MODULE ASN Module-A ModuleA.asn>
178 Module-A DEFINITIONS ::=
180 IMPORTS X, Hidden-symbol FROM Module-B;
184 <MODULE ASN Module-B ModuleB.asn>
185 Module-B DEFINITIONS ::=
190 Hidden-symbol ::= INTEGER
193 <RESULT IF_PASS COUNT 1>
194 (?im)\berror\b.+?symbol.+?Hidden-symbol.+?not.+?exported
196 <RESULT IF_PASS COUNT 1>
199 <RESULT IF_PASS COUNT 1>
200 (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b
205 .*---------------------------------------------------------------------*
206 :h3.ASN1::Import from a TTCN-3 module
207 .*---------------------------------------------------------------------*
209 <TC - ASN1::Import from a TTCN-3 module>
212 <MODULE ASN Module-A ModuleA.asn>
213 Module-A DEFINITIONS ::=
215 IMPORTS T3type FROM ModuleB;
219 <MODULE TTCN ModuleB ModuleB.ttcn>
224 <RESULT IF_PASS COUNT 1>
225 (?im)\berror\b.+?cannot.+?import.+?from.+?TTCN.*?3.+?module
227 <RESULT IF_PASS COUNT 1>
230 <RESULT IF_PASS COUNT 1>
231 (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b
236 .*---------------------------------------------------------------------*
237 :h3.ASN1::Importing from itself
238 .*---------------------------------------------------------------------*
240 <TC - ASN1::Importing from itself>
243 <MODULE ASN Module-A ModuleA.asn>
244 Module-A DEFINITIONS ::=
246 IMPORTS Z FROM Module-A;
250 <RESULT IF_PASS COUNT 1>
251 (?im)\berror\b.+?cannot.+?import.+?from.+?itself
253 <RESULT IF_PASS COUNT 1>
256 <RESULT IF_PASS COUNT 1>
257 (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b
262 .*---------------------------------------------------------------------*
263 :h3.ASN1::Duplicated import
264 .*---------------------------------------------------------------------*
266 <TC - ASN1::Duplicated import>
269 <MODULE ASN Module-A ModuleA.asn>
270 Module-A DEFINITIONS ::=
272 -- TR 676: Unnecessary error message when symbol is not unique in the IMPORTS section
273 IMPORTS B FROM Module-B
278 <MODULE ASN Module-B ModuleB.asn>
279 Module-B DEFINITIONS ::=
285 <RESULT IF_PASS COUNT 1>
286 (?im)\berror\b.+?duplicate.+?import.+?from.+?Module-B
288 <RESULT IF_PASS COUNT 1>
291 <RESULT IF_PASS COUNT 1>
292 (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b
297 .*---------------------------------------------------------------------*
298 :h3.ASN1::Invalid module identifier
299 .*---------------------------------------------------------------------*
301 <TC - ASN1::Invalid module identifier>
304 <MODULE ASN module-A ModuleA.asn>
305 -- catched by the parser or even before (at module recognition)
306 -- Therefore it's not clear how to trigger the error message:
307 -- in Module::Module: "`%s' is not a valid module identifier"
308 module-A DEFINITIONS ::=
314 <RESULT IF_PASS COUNT 1>
315 (?im)\berror\b.+?not.+?valid.+?module.+?identifier
317 <RESULT IF_PASS COUNT 1>
320 <RESULT IF_PASS COUNT 1>
321 (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b
323 <RESULT IF_FAIL COUNT 1>
324 (?im)\berror\b.+?cannot.+?recognize.+?as.+?asn.*?1.+?module
326 <RESULT IF_FAIL COUNT 1>
332 .*---------------------------------------------------------------------*
333 :h3.ASN1::No assignment in the referenced module
334 .*---------------------------------------------------------------------*
336 <TC - ASN1::No assignment in the referenced module>
339 <MODULE ASN Module-A ModuleA.asn>
340 Module-A DEFINITIONS ::=
342 IMPORTS X, Nonexi FROM Module-B;
343 Z ::= Module-B.Nonexi
346 <MODULE ASN Module-B ModuleB.asn>
347 Module-B DEFINITIONS ::=
353 <RESULT IF_PASS COUNT 1>
354 (?im)\berror\b.+?not.+?valid.+?module.+?identifier
356 <RESULT IF_PASS COUNT 1>
359 <RESULT IF_PASS COUNT 1>
360 (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b
365 .*---------------------------------------------------------------------*
366 :h3.ASN1::Ambiguous assignment reference
367 .*---------------------------------------------------------------------*
369 <TC - ASN1::Ambiguous assignment reference>
372 <MODULE ASN Module-A ModuleA.asn>
373 Module-A DEFINITIONS ::=
375 IMPORTS Ambi-ass FROM Module-B
376 Ambi-ass FROM Module-C;
381 <MODULE ASN Module-B ModuleB.asn>
382 Module-B DEFINITIONS ::=
388 <MODULE ASN Module-C ModuleC.asn>
389 Module-C DEFINITIONS ::=
395 <RESULT IF_PASS COUNT 1>
396 (?im)\berror\b.+?not.+?valid.+?module.+?identifier
398 <RESULT IF_PASS COUNT 1>
401 <RESULT IF_PASS COUNT 1>
402 (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b