3 -- Grant of Unlimited Rights
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
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.
25 -- CHECK THAT A UNIT WITH DEPENDENT TASKS CREATED BY OBJECT
26 -- DECLARATIONS IS NOT TERMINATED UNTIL ALL DEPENDENT TASKS BECOME
29 -- (A, B) A SIMPLE TASK OBJECT, IN A BLOCK.
30 -- (C, D) AN ARRAY OF TASK OBJECT, IN A FUNCTION.
31 -- (E, F) AN ARRAY OF RECORD OF TASK OBJECT, IN A TASK BODY.
33 -- THIS TEST CONTAINS SHARED VARIABLES AND RACE CONDITIONS.
38 -- TBN 8/22/86 REVISED; ADDED CASES THAT EXIT BY RAISING AN
40 -- PWN 01/31/95 REMOVED PRAGMA PRIORITY FOR ADA 9X.
43 WITH REPORT
; USE REPORT
;
44 WITH SYSTEM
; USE SYSTEM
;
47 MY_EXCEPTION
: EXCEPTION;
51 ENTRY E
(I
: INTEGER);
57 ACCEPT E
(I
: INTEGER) DO
60 DELAY 30.0 * Impdef
.One_Second
; -- SINCE THE PARENT UNIT HAS HIGHER PRIORITY
61 -- AT THIS POINT, IT WILL RECEIVE CONTROL AND
62 -- TERMINATE IF THE ERROR IS PRESENT.
68 TEST
("C94001A", "CHECK THAT A UNIT WITH DEPENDENT TASKS " &
69 "CREATED BY OBJECT DECLARATIONS IS NOT " &
70 "TERMINATED UNTIL ALL DEPENDENT TASKS " &
73 --------------------------------------------------
75 GLOBAL
:= IDENT_INT
(0);
88 FAILED
("DEPENDENT TASK NOT TERMINATED BEFORE " &
92 --------------------------------------------------
94 GLOBAL
:= IDENT_INT
(0);
104 FAILED
("MY_EXCEPTION WAS NOT RAISED - 2");
108 FAILED
("DEPENDENT TASK NOT TERMINATED BEFORE " &
112 FAILED
("UNEXPECTED EXCEPTION - 2");
115 --------------------------------------------------
117 GLOBAL
:= IDENT_INT
(0);
123 FUNCTION F
RETURN INTEGER IS
124 A
: ARRAY (1..1) OF TT
;
126 A
(1).E
(IDENT_INT
(2));
135 FAILED
("DEPENDENT TASK NOT TERMINATED BEFORE " &
136 "FUNCTION EXIT - 3");
141 --------------------------------------------------
143 GLOBAL
:= IDENT_INT
(0);
149 FUNCTION F
RETURN INTEGER IS
150 A
: ARRAY (1..1) OF TT
;
152 A
(1).E
(IDENT_INT
(2));
161 FAILED
("MY_EXCEPTION WAS NOT RAISED - 4");
165 FAILED
("DEPENDENT TASK NOT TERMINATED BEFORE " &
166 "FUNCTION EXIT - 4");
169 FAILED
("UNEXPECTED EXCEPTION - 4");
172 --------------------------------------------------
174 GLOBAL
:= IDENT_INT
(0);
178 LOOP_COUNT
: INTEGER := 0;
179 CUT_OFF
: CONSTANT := 60 * 60; -- ONE HOUR DELAY.
190 AR
: ARRAY (1..1) OF RT
;
192 AR
(1).T
.E
(IDENT_INT
(3));
197 WHILE NOT TSK
'TERMINATED AND LOOP_COUNT
< CUT_OFF
LOOP
198 DELAY 1.0 * Impdef
.One_Second
;
199 LOOP_COUNT
:= LOOP_COUNT
+ 1;
202 IF LOOP_COUNT
>= CUT_OFF
THEN
203 FAILED
("DEPENDENT TASK NOT TERMINATED WITHIN ONE " &
205 ELSIF GLOBAL
/= 3 THEN
206 FAILED
("DEPENDENT TASK NOT TERMINATED BEFORE " &
212 --------------------------------------------------
214 GLOBAL
:= IDENT_INT
(0);
218 LOOP_COUNT
: INTEGER := 0;
219 CUT_OFF
: CONSTANT := 60 * 60; -- ONE HOUR DELAY.
230 AR
: ARRAY (1..1) OF RT
;
232 AR
(1).T
.E
(IDENT_INT
(3));
236 FAILED
("EXCEPTION WAS NOT RAISED - 6");
241 WHILE NOT TSK
'TERMINATED AND LOOP_COUNT
< CUT_OFF
LOOP
242 DELAY 1.0 * Impdef
.One_Second
;
243 LOOP_COUNT
:= LOOP_COUNT
+ 1;
246 IF LOOP_COUNT
>= CUT_OFF
THEN
247 FAILED
("DEPENDENT TASK NOT TERMINATED WITHIN ONE " &
249 ELSIF GLOBAL
/= 3 THEN
250 FAILED
("DEPENDENT TASK NOT TERMINATED BEFORE " &
256 --------------------------------------------------