2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / ada / acats / tests / cd / cd1009k.tst
blob02a824abf7df4a8b8f4c28dba20072b77addf236
1 -- CD1009K.TST
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 A 'STORAGE_SIZE' CLAUSE MAY BE GIVEN IN THE
27 --     VISIBLE OR PRIVATE PART OF A PACKAGE FOR A TASK TYPE DECLARED IN
28 --     THE VISIBLE PART OF THE SAME PACKAGE.
30 -- MACRO SUBSTITUTION:
31 --     $TASK_STORAGE_SIZE IS THE NUMBER OF STORAGE_UNITS REQUIRED FOR
32 --     THE ACTIVATION OF A TASK.
34 -- HISTORY:
35 --     VCL  10/08/87 CREATED ORIGINAL TEST.
36 --     DHH  03/30/89 CHANGED SPECIFIED_SIZE TO A MACRO VALUE AND CHANGED
37 --                   EXTENSION FROM '.DEP' TO '.TST'.
38 --     TMB  02/29/96 EFFECT OF SETTING 'STORAGE_SIZE IS IMPLEMENTATION 
39 --                   DEPENDENT.
40 --                   ONLY GUARANTEE WHEN EXAMINING 'STORAGE_SIZE IS THAT
41 --                   IT IS NOT NEGATIVE.
43 WITH REPORT; USE REPORT;
44 PROCEDURE CD1009K IS
45 BEGIN
46      TEST ("CD1009K", "A 'STORAGE_SIZE' CLAUSE MAY BE GIVEN IN THE " &
47                       "VISIBLE OR PRIVATE PART OF A PACKAGE FOR A " &
48                       "TASK TYPE DECLARED IN THE VISIBLE PART OF " &
49                       "THE SAME PACKAGE");
50      DECLARE
51           PACKAGE PACK IS
52                SPECIFIED_SIZE : CONSTANT := $TASK_STORAGE_SIZE;
54                TASK TYPE CHECK_TYPE_1 IS
55                END CHECK_TYPE_1;
57                FOR CHECK_TYPE_1'STORAGE_SIZE
58                               USE SPECIFIED_SIZE;
60                TASK TYPE CHECK_TYPE_2 IS
61                END CHECK_TYPE_2;
63           PRIVATE
64                FOR CHECK_TYPE_2'STORAGE_SIZE USE SPECIFIED_SIZE;
65           END PACK;
67           PACKAGE BODY PACK IS
68                TASK BODY CHECK_TYPE_1 IS
69                     I : INTEGER;
70                BEGIN
71                     NULL;
72                END CHECK_TYPE_1;
74                TASK BODY CHECK_TYPE_2 IS
75                     I : INTEGER;
76                BEGIN
77                     NULL;
78                END CHECK_TYPE_2;
80           END PACK;
82           USE PACK;
83      BEGIN
84           IF CHECK_TYPE_1'STORAGE_SIZE < 0 THEN
85                FAILED ("CHECK_TYPE_1'STORAGE_SIZE IS TOO SMALL");
86           END IF;
88           IF CHECK_TYPE_2'STORAGE_SIZE < 0 THEN
89                FAILED ("CHECK_TYPE_2'STORAGE_SIZE IS TOO SMALL");
90           END IF;
91      END;
93      RESULT;
94 END CD1009K;