2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / ada / acats / tests / c9 / c9a011b.ada
blobfe1ba1649e3825da773cb5749783c1641c3eaf58
1 -- C9A011B.ADA
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.
16 -- DISCLAIMER
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 -- OBJECTIVE:
26 -- CHECK THAT "TASKING_ERROR" IS RAISED BY A TIMED ENTRY CALL IF
27 -- THE CALLED TASK IS ABORTED BEFORE THE DELAY EXPIRES BUT NOT
28 -- WHEN THE CALL IS FIRST EXECUTED.
30 -- HISTORY:
31 -- DHH 06/14/88 CREATED ORIGINAL TEST.
33 with Impdef;
34 WITH SYSTEM; USE SYSTEM;
35 WITH REPORT; USE REPORT;
36 PROCEDURE C9A011B IS
38 TASK TIMED_ENTRY IS
39 ENTRY WAIT_AROUND;
40 END TIMED_ENTRY;
42 TASK OWNER IS
43 ENTRY START;
44 ENTRY SELF_ABORT;
45 END OWNER;
47 TASK BODY TIMED_ENTRY IS
48 BEGIN
49 SELECT
50 OWNER.SELF_ABORT;
52 DELAY 60.0 * Impdef.One_Second;
53 END SELECT;
54 FAILED("NO EXCEPTION RAISED");
56 ACCEPT WAIT_AROUND;
57 EXCEPTION
58 WHEN TASKING_ERROR =>
59 ACCEPT WAIT_AROUND;
60 WHEN OTHERS =>
61 FAILED("WRONG EXCEPTION RAISED");
62 ACCEPT WAIT_AROUND;
63 END TIMED_ENTRY;
65 TASK BODY OWNER IS
66 BEGIN
67 ACCEPT START DO
68 WHILE SELF_ABORT'COUNT = 0 LOOP
69 DELAY 1.0 * Impdef.One_Second;
70 END LOOP;
71 END START;
73 ABORT OWNER;
75 ACCEPT SELF_ABORT;
77 END OWNER;
79 BEGIN
81 TEST("C9A011B", "CHECK THAT ""TASKING_ERROR"" IS RAISED BY A " &
82 "TIMED ENTRY CALL IF THE CALLED TASK IS " &
83 "ABORTED BEFORE THE DELAY EXPIRES BUT NOT " &
84 "WHEN THE CALL IS FIRST EXECUTED");
86 OWNER.START;
87 DELAY 5.0 * Impdef.One_Second;
89 IF TIMED_ENTRY'CALLABLE THEN
90 TIMED_ENTRY.WAIT_AROUND;
91 ELSE
92 FAILED("TASK ABORTED WHEN TASKING ERROR IS RAISED");
93 END IF;
95 RESULT;
97 EXCEPTION
98 WHEN OTHERS =>
99 FAILED("EXCEPTION RAISED OUTSIDE OF TASK");
100 RESULT;
102 END C9A011B;