annotate gcc/testsuite/ada/acats/tests/c9/c95008a.ada @ 111:04ced10e8804

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