1-- CE2201D.DEP
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-- OBJECTIVE:
26--     CHECK WHETHER READ, WRITE, AND END_OF_FILE ARE SUPPORTED FOR
27--     SEQUENTIAL FILES WITH ELEMENT_TYPE UNCONSTRAINED ARRAY.
28
29--     IF I/O IS NOT SUPPORTED, THEN CREATE AND OPEN CAN RAISE USE_ERROR
30--     OR NAME_ERROR. SEE (AI-00332).
31
32-- APPLICABILITY CRITERIA:
33--     THIS TEST IS NON-APPLICABLE IF THE INSTANTIATION OF SEQUENTIAL_IO
34--     WITH UNCONSTRAINED ARRAY TYPE, ARR_UNCN, IS NOT SUPPORTED.
35
36--     IF THE INSTANTIATION OF SEQUENTIAL_IO IS NOT SUPPORTED THEN
37--     THE INSTANTIATION MUST BE REJECTED.
38
39-- HISTORY:
40--     ABW  8/17/82
41--     SPS 9/15/82
42--     SPS 11/9/82
43--     JBG 1/6/83
44--     JBG 6/4/84
45--     TBN 11/01/85     RENAMED FROM CE2201D.DEP AND MODIFIED COMMENTS.
46--     TBN 11/04/86     REVISED TEST TO OUTPUT A NON_APPLICABLE
47--                      RESULT WHEN FILES ARE NOT SUPPORTED.
48--     THS 03/30/90     RENAMED FROM EE2201D.ADA.
49
50WITH REPORT; USE REPORT;
51WITH SEQUENTIAL_IO;
52
53PROCEDURE CE2201D IS
54     INCOMPLETE : EXCEPTION;
55BEGIN
56
57     TEST ("CE2201D" , "CHECK WHETHER READ, WRITE, AND END_OF_FILE " &
58                       "ARE SUPPORTED FOR SEQUENTIAL FILES WITH " &
59                       "UNCONSTRAINED ARRAY TYPES");
60
61     DECLARE
62          SUBTYPE ONE_TEN IS INTEGER RANGE 1..10;
63          TYPE ARR_UNCN IS ARRAY (ONE_TEN RANGE <>) OF INTEGER;
64          PACKAGE SEQ_ARR_UNCN
65               IS NEW SEQUENTIAL_IO (ARR_UNCN); -- N/A => ERROR.
66          USE SEQ_ARR_UNCN;
67          FILE_ARR_UNCN : FILE_TYPE;
68          ARR2 : ARR_UNCN (1..6) := (1,3,5,7,9,0);
69          ITEM_ARR2 : ARR_UNCN (1..6);
70     BEGIN
71          BEGIN
72               CREATE (FILE_ARR_UNCN);
73
74          EXCEPTION
75               WHEN USE_ERROR =>
76                    NOT_APPLICABLE ("USE_ERROR RAISED; SEQUENTIAL " &
77                                    "CREATE");
78                    RAISE INCOMPLETE;
79               WHEN NAME_ERROR =>
80                    NOT_APPLICABLE ("NAME_ERROR RAISED; SEQUENTIAL " &
81                                    "CREATE");
82                    RAISE INCOMPLETE;
83               WHEN OTHERS =>
84                    FAILED ("UNEXPECTED EXCEPTION RAISED; SEQUENTIAL " &
85                            "CREATE");
86                    RAISE INCOMPLETE;
87          END;
88
89          BEGIN
90               WRITE (FILE_ARR_UNCN,ARR2);
91               WRITE (FILE_ARR_UNCN, (0, -2));
92
93          EXCEPTION
94               WHEN OTHERS =>
95                    FAILED ("WRITE FOR UNCONSTRAINED ARRAY");
96          END;
97
98          RESET (FILE_ARR_UNCN,IN_FILE);
99
100          IF END_OF_FILE (FILE_ARR_UNCN) THEN
101               FAILED ("WRONG END_OF_FILE VALUE FOR " &
102                       "UNCONSTRAINED ARRAY");
103          END IF;
104
105          BEGIN
106               READ (FILE_ARR_UNCN,ITEM_ARR2);
107
108          EXCEPTION
109               WHEN OTHERS =>
110                    FAILED ("READ FOR UNCONSTRAINED ARRAY");
111          END;
112
113          IF ITEM_ARR2 /= (1,3,5,7,9,0) THEN
114               FAILED ("READ WRONG VALUE - 1");
115          END IF;
116
117          BEGIN
118               READ (FILE_ARR_UNCN, ITEM_ARR2(3..4));
119
120               IF ITEM_ARR2 /= (1,3,0,-2,9,0) THEN
121                    FAILED ("READ WRONG VALUE - 2");
122               END IF;
123          EXCEPTION
124               WHEN OTHERS =>
125                    FAILED ("EXCEPTION FOR SECOND ARRAY READ");
126          END;
127
128          IF NOT END_OF_FILE(FILE_ARR_UNCN) THEN
129               FAILED ("NOT AT END OF FILE");
130          END IF;
131
132          CLOSE (FILE_ARR_UNCN);
133
134     EXCEPTION
135          WHEN USE_ERROR =>
136               NOT_APPLICABLE ("USE_ERROR RAISED BY RESET");
137     END;
138
139     RESULT;
140
141EXCEPTION
142     WHEN INCOMPLETE =>
143          RESULT;
144
145END CE2201D;
146