111
|
1 -- C95008A.ADA
|
|
2
|
|
3 -- Grant of Unlimited Rights
|
|
4 --
|
|
5 -- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
|
|
6 -- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
|
|
7 -- unlimited rights in the software and documentation contained herein.
|
|
8 -- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
|
|
9 -- this public release, the Government intends to confer upon all
|
|
10 -- recipients unlimited rights equal to those held by the Government.
|
|
11 -- These rights include rights to use, duplicate, release or disclose the
|
|
12 -- released technical data and computer software in whole or in part, in
|
|
13 -- any manner and for any purpose whatsoever, and to have or permit others
|
|
14 -- to do so.
|
|
15 --
|
|
16 -- DISCLAIMER
|
|
17 --
|
|
18 -- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
|
|
19 -- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
|
|
20 -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
|
|
21 -- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
|
|
22 -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
|
|
23 -- PARTICULAR PURPOSE OF SAID MATERIAL.
|
|
24 --*
|
|
25 -- CHECK THAT THE EXCEPTION CONSTRAINT_ERROR IS RAISED FOR AN
|
|
26 -- OUT-OF-RANGE INDEX VALUE WHEN REFERENCING AN ENTRY FAMILY,
|
|
27 -- EITHER IN AN ACCEPT_STATEMENT OR IN AN ENTRY_CALL.
|
|
28
|
|
29 -- SUBTESTS ARE:
|
|
30 -- (A) INTEGER TYPE, STATIC LOWER BOUND, NO PARAMETERS.
|
|
31 -- (B) CHARACTER TYPE, DYNAMIC UPPER BOUND, NO PARAMETERS.
|
|
32 -- (C) BOOLEAN TYPE, STATIC NULL RANGE, NO PARAMETERS.
|
|
33 -- (D) USER-DEFINED ENUMERATED TYPE, DYNAMIC LOWER BOUND, ONE
|
|
34 -- PARAMETER.
|
|
35 -- (E) DERIVED INTEGER TYPE, DYNAMIC NULL RANGE, ONE PARAMETER.
|
|
36 -- (F) DERIVED USER-DEFINED ENUMERATED TYPE, STATIC UPPER BOUND,
|
|
37 -- ONE PARAMETER.
|
|
38
|
|
39 -- JRK 11/4/81
|
|
40 -- JBG 11/11/84
|
|
41 -- SAIC 11/14/95 fixed test for 2.0.1
|
|
42
|
|
43 with Impdef;
|
|
44 WITH REPORT; USE REPORT;
|
|
45 PROCEDURE C95008A IS
|
|
46
|
|
47 C_E_NOT_RAISED : BOOLEAN;
|
|
48 WRONG_EXC_RAISED : BOOLEAN;
|
|
49
|
|
50 BEGIN
|
|
51 TEST ("C95008A", "OUT-OF-RANGE ENTRY FAMILY INDICES IN " &
|
|
52 "ACCEPT_STATEMENTS AND ENTRY_CALLS");
|
|
53
|
|
54 --------------------------------------------------
|
|
55
|
|
56 C_E_NOT_RAISED := FALSE;
|
|
57 WRONG_EXC_RAISED := FALSE;
|
|
58
|
|
59 DECLARE -- (A)
|
|
60
|
|
61 TASK T IS
|
|
62 ENTRY E (1..10);
|
|
63 ENTRY CONTINUE;
|
|
64 END T;
|
|
65
|
|
66 TASK BODY T IS
|
|
67 BEGIN
|
|
68 ACCEPT CONTINUE;
|
|
69 SELECT
|
|
70 ACCEPT E (0);
|
|
71 OR
|
|
72 DELAY 1.0 * Impdef.One_Second;
|
|
73 END SELECT;
|
|
74 C_E_NOT_RAISED := TRUE;
|
|
75 EXCEPTION
|
|
76 WHEN CONSTRAINT_ERROR =>
|
|
77 NULL;
|
|
78 WHEN OTHERS =>
|
|
79 WRONG_EXC_RAISED := TRUE;
|
|
80 END T;
|
|
81
|
|
82 BEGIN -- (A)
|
|
83
|
|
84 SELECT
|
|
85 T.E (0);
|
|
86 OR
|
|
87 DELAY 15.0 * Impdef.One_Second;
|
|
88 END SELECT;
|
|
89 FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
|
|
90 "ENTRY_CALL - (A)");
|
|
91 T.CONTINUE;
|
|
92
|
|
93 EXCEPTION -- (A)
|
|
94
|
|
95 WHEN CONSTRAINT_ERROR =>
|
|
96 T.CONTINUE;
|
|
97 WHEN OTHERS =>
|
|
98 FAILED ("WRONG EXCEPTION RAISED IN " &
|
|
99 "ENTRY_CALL - (A)");
|
|
100 T.CONTINUE;
|
|
101
|
|
102 END; -- (A)
|
|
103
|
|
104 IF C_E_NOT_RAISED THEN
|
|
105 FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
|
|
106 "ACCEPT_STATEMENT - (A)");
|
|
107 END IF;
|
|
108
|
|
109 IF WRONG_EXC_RAISED THEN
|
|
110 FAILED ("WRONG EXCEPTION RAISED IN " &
|
|
111 "ACCEPT_STATEMENT - (A)");
|
|
112 END IF;
|
|
113
|
|
114 --------------------------------------------------
|
|
115
|
|
116 C_E_NOT_RAISED := FALSE;
|
|
117 WRONG_EXC_RAISED := FALSE;
|
|
118
|
|
119 DECLARE -- (B)
|
|
120
|
|
121 TASK T IS
|
|
122 ENTRY E (CHARACTER RANGE 'A'..'Y');
|
|
123 ENTRY CONTINUE;
|
|
124 END T;
|
|
125
|
|
126 TASK BODY T IS
|
|
127 BEGIN
|
|
128 ACCEPT CONTINUE;
|
|
129 SELECT
|
|
130 ACCEPT E (IDENT_CHAR('Z'));
|
|
131 OR
|
|
132 DELAY 1.0 * Impdef.One_Second;
|
|
133 END SELECT;
|
|
134 C_E_NOT_RAISED := TRUE;
|
|
135 EXCEPTION
|
|
136 WHEN CONSTRAINT_ERROR =>
|
|
137 NULL;
|
|
138 WHEN OTHERS =>
|
|
139 WRONG_EXC_RAISED := TRUE;
|
|
140 END T;
|
|
141
|
|
142 BEGIN -- (B)
|
|
143
|
|
144 SELECT
|
|
145 T.E (IDENT_CHAR('Z'));
|
|
146 OR
|
|
147 DELAY 15.0 * Impdef.One_Second;
|
|
148 END SELECT;
|
|
149 FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
|
|
150 "ENTRY_CALL - (B)");
|
|
151 T.CONTINUE;
|
|
152
|
|
153 EXCEPTION -- (B)
|
|
154
|
|
155 WHEN CONSTRAINT_ERROR =>
|
|
156 T.CONTINUE;
|
|
157 WHEN OTHERS =>
|
|
158 FAILED ("WRONG EXCEPTION RAISED IN " &
|
|
159 "ENTRY_CALL - (B)");
|
|
160 T.CONTINUE;
|
|
161
|
|
162 END; -- (B)
|
|
163
|
|
164 IF C_E_NOT_RAISED THEN
|
|
165 FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
|
|
166 "ACCEPT_STATEMENT - (B)");
|
|
167 END IF;
|
|
168
|
|
169 IF WRONG_EXC_RAISED THEN
|
|
170 FAILED ("WRONG EXCEPTION RAISED IN " &
|
|
171 "ACCEPT_STATEMENT - (B)");
|
|
172 END IF;
|
|
173
|
|
174 --------------------------------------------------
|
|
175
|
|
176 C_E_NOT_RAISED := FALSE;
|
|
177 WRONG_EXC_RAISED := FALSE;
|
|
178
|
|
179 DECLARE -- (C)
|
|
180
|
|
181 TASK T IS
|
|
182 ENTRY E (TRUE..FALSE);
|
|
183 ENTRY CONTINUE;
|
|
184 END T;
|
|
185
|
|
186 TASK BODY T IS
|
|
187 BEGIN
|
|
188 ACCEPT CONTINUE;
|
|
189 SELECT
|
|
190 ACCEPT E (FALSE);
|
|
191 OR
|
|
192 DELAY 1.0 * Impdef.One_Second;
|
|
193 END SELECT;
|
|
194 C_E_NOT_RAISED := TRUE;
|
|
195 EXCEPTION
|
|
196 WHEN CONSTRAINT_ERROR =>
|
|
197 NULL;
|
|
198 WHEN OTHERS =>
|
|
199 WRONG_EXC_RAISED := TRUE;
|
|
200 END T;
|
|
201
|
|
202 BEGIN -- (C)
|
|
203
|
|
204 SELECT
|
|
205 T.E (TRUE);
|
|
206 OR
|
|
207 DELAY 15.0 * Impdef.One_Second;
|
|
208 END SELECT;
|
|
209 FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
|
|
210 "ENTRY_CALL - (C)");
|
|
211 T.CONTINUE;
|
|
212
|
|
213 EXCEPTION -- (C)
|
|
214
|
|
215 WHEN CONSTRAINT_ERROR =>
|
|
216 T.CONTINUE;
|
|
217 WHEN OTHERS =>
|
|
218 FAILED ("WRONG EXCEPTION RAISED IN " &
|
|
219 "ENTRY_CALL - (C)");
|
|
220 T.CONTINUE;
|
|
221
|
|
222 END; -- (C)
|
|
223
|
|
224 IF C_E_NOT_RAISED THEN
|
|
225 FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
|
|
226 "ACCEPT_STATEMENT - (C)");
|
|
227 END IF;
|
|
228
|
|
229 IF WRONG_EXC_RAISED THEN
|
|
230 FAILED ("WRONG EXCEPTION RAISED IN " &
|
|
231 "ACCEPT_STATEMENT - (C)");
|
|
232 END IF;
|
|
233
|
|
234 --------------------------------------------------
|
|
235
|
|
236 C_E_NOT_RAISED := FALSE;
|
|
237 WRONG_EXC_RAISED := FALSE;
|
|
238
|
|
239 DECLARE -- (D)
|
|
240
|
|
241 TYPE ET IS (E0, E1, E2);
|
|
242 DLB : ET := ET'VAL (IDENT_INT(1)); -- E1.
|
|
243
|
|
244 TASK T IS
|
|
245 ENTRY E (ET RANGE DLB..E2) (I : INTEGER);
|
|
246 ENTRY CONTINUE;
|
|
247 END T;
|
|
248
|
|
249 TASK BODY T IS
|
|
250 BEGIN
|
|
251 ACCEPT CONTINUE;
|
|
252 SELECT
|
|
253 ACCEPT E (E0) (I : INTEGER);
|
|
254 OR
|
|
255 DELAY 1.0 * Impdef.One_Second;
|
|
256 END SELECT;
|
|
257 C_E_NOT_RAISED := TRUE;
|
|
258 EXCEPTION
|
|
259 WHEN CONSTRAINT_ERROR =>
|
|
260 NULL;
|
|
261 WHEN OTHERS =>
|
|
262 WRONG_EXC_RAISED := TRUE;
|
|
263 END T;
|
|
264
|
|
265 BEGIN -- (D)
|
|
266
|
|
267 SELECT
|
|
268 T.E (E0) (0);
|
|
269 OR
|
|
270 DELAY 15.0 * Impdef.One_Second;
|
|
271 END SELECT;
|
|
272 FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
|
|
273 "ENTRY_CALL - (D)");
|
|
274 T.CONTINUE;
|
|
275
|
|
276 EXCEPTION -- (D)
|
|
277
|
|
278 WHEN CONSTRAINT_ERROR =>
|
|
279 T.CONTINUE;
|
|
280 WHEN OTHERS =>
|
|
281 FAILED ("WRONG EXCEPTION RAISED IN " &
|
|
282 "ENTRY_CALL - (D)");
|
|
283 T.CONTINUE;
|
|
284
|
|
285 END; -- (D)
|
|
286
|
|
287 IF C_E_NOT_RAISED THEN
|
|
288 FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
|
|
289 "ACCEPT_STATEMENT - (D)");
|
|
290 END IF;
|
|
291
|
|
292 IF WRONG_EXC_RAISED THEN
|
|
293 FAILED ("WRONG EXCEPTION RAISED IN " &
|
|
294 "ACCEPT_STATEMENT - (D)");
|
|
295 END IF;
|
|
296
|
|
297 --------------------------------------------------
|
|
298
|
|
299 C_E_NOT_RAISED := FALSE;
|
|
300 WRONG_EXC_RAISED := FALSE;
|
|
301
|
|
302 DECLARE -- (E)
|
|
303
|
|
304 TYPE D_I IS NEW INTEGER;
|
|
305 SUBTYPE DI IS D_I RANGE 3 .. D_I(IDENT_INT(2));
|
|
306
|
|
307 TASK T IS
|
|
308 ENTRY E (DI) (I : INTEGER);
|
|
309 ENTRY CONTINUE;
|
|
310 END T;
|
|
311
|
|
312 TASK BODY T IS
|
|
313 BEGIN
|
|
314 ACCEPT CONTINUE;
|
|
315 SELECT
|
|
316 ACCEPT E (D_I(3)) (I : INTEGER);
|
|
317 OR
|
|
318 DELAY 1.0 * Impdef.One_Second;
|
|
319 END SELECT;
|
|
320 C_E_NOT_RAISED := TRUE;
|
|
321 EXCEPTION
|
|
322 WHEN CONSTRAINT_ERROR =>
|
|
323 NULL;
|
|
324 WHEN OTHERS =>
|
|
325 WRONG_EXC_RAISED := TRUE;
|
|
326 END T;
|
|
327
|
|
328 BEGIN -- (E)
|
|
329
|
|
330 SELECT
|
|
331 T.E (D_I(2)) (0);
|
|
332 OR
|
|
333 DELAY 15.0 * Impdef.One_Second;
|
|
334 END SELECT;
|
|
335 FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
|
|
336 "ENTRY_CALL - (E)");
|
|
337 T.CONTINUE;
|
|
338
|
|
339 EXCEPTION -- (E)
|
|
340
|
|
341 WHEN CONSTRAINT_ERROR =>
|
|
342 T.CONTINUE;
|
|
343 WHEN OTHERS =>
|
|
344 FAILED ("WRONG EXCEPTION RAISED IN " &
|
|
345 "ENTRY_CALL - (E)");
|
|
346 T.CONTINUE;
|
|
347
|
|
348 END; -- (E)
|
|
349
|
|
350 IF C_E_NOT_RAISED THEN
|
|
351 FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
|
|
352 "ACCEPT_STATEMENT - (E)");
|
|
353 END IF;
|
|
354
|
|
355 IF WRONG_EXC_RAISED THEN
|
|
356 FAILED ("WRONG EXCEPTION RAISED IN " &
|
|
357 "ACCEPT_STATEMENT - (E)");
|
|
358 END IF;
|
|
359
|
|
360 --------------------------------------------------
|
|
361
|
|
362 C_E_NOT_RAISED := FALSE;
|
|
363 WRONG_EXC_RAISED := FALSE;
|
|
364
|
|
365 DECLARE -- (F)
|
|
366
|
|
367 TYPE ET IS (E0, E1, E2);
|
|
368 TYPE D_ET IS NEW ET;
|
|
369
|
|
370 TASK T IS
|
|
371 ENTRY E (D_ET RANGE E0..E1) (I : INTEGER);
|
|
372 ENTRY CONTINUE;
|
|
373 END T;
|
|
374
|
|
375 TASK BODY T IS
|
|
376 BEGIN
|
|
377 ACCEPT CONTINUE;
|
|
378 SELECT
|
|
379 ACCEPT E (D_ET'(E2)) (I : INTEGER);
|
|
380 OR
|
|
381 DELAY 1.0 * Impdef.One_Second;
|
|
382 END SELECT;
|
|
383 C_E_NOT_RAISED := TRUE;
|
|
384 EXCEPTION
|
|
385 WHEN CONSTRAINT_ERROR =>
|
|
386 NULL;
|
|
387 WHEN OTHERS =>
|
|
388 WRONG_EXC_RAISED := TRUE;
|
|
389 END T;
|
|
390
|
|
391 BEGIN -- (F)
|
|
392
|
|
393 SELECT
|
|
394 T.E (D_ET'(E2)) (0);
|
|
395 OR
|
|
396 DELAY 15.0 * Impdef.One_Second;
|
|
397 END SELECT;
|
|
398 FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
|
|
399 "ENTRY_CALL - (F)");
|
|
400 T.CONTINUE;
|
|
401
|
|
402 EXCEPTION -- (F)
|
|
403
|
|
404 WHEN CONSTRAINT_ERROR =>
|
|
405 T.CONTINUE;
|
|
406 WHEN OTHERS =>
|
|
407 FAILED ("WRONG EXCEPTION RAISED IN " &
|
|
408 "ENTRY_CALL - (F)");
|
|
409 T.CONTINUE;
|
|
410
|
|
411 END; -- (F)
|
|
412
|
|
413 IF C_E_NOT_RAISED THEN
|
|
414 FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
|
|
415 "ACCEPT_STATEMENT - (F)");
|
|
416 END IF;
|
|
417
|
|
418 IF WRONG_EXC_RAISED THEN
|
|
419 FAILED ("WRONG EXCEPTION RAISED IN " &
|
|
420 "ACCEPT_STATEMENT - (F)");
|
|
421 END IF;
|
|
422
|
|
423 --------------------------------------------------
|
|
424
|
|
425 RESULT;
|
|
426 END C95008A;
|