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.
26 -- CHECK THAT READ (WITH AND WITHOUT PARAMETER FROM), WRITE (WITH
27 -- AND WITHOUT PARAMETER TO), SET_INDEX, INDEX, SIZE AND
28 -- END_OF_FILE ARE SUPPORTED FOR DIRECT FILES WITH ELEMENT_TYPES
29 -- STRING, CHARACTER, AND INTEGER.
31 -- APPLICABILITY CRITERIA:
32 -- THIS TEST IS ONLY APPLICABLE TO IMPLEMENTATIONS WHICH
33 -- SUPPORT DIRECT FILES.
39 -- JBG 02/22/84 CHANGE TO .ADA TEST.
41 -- TBN 11/04/86 REVISED TEST TO OUTPUT A NON_APPLICABLE
42 -- RESULT WHEN FILES ARE NOT SUPPORTED.
43 -- DWC 07/31/87 ISOLATED EXCEPTIONS.
45 WITH REPORT
; USE REPORT
;
49 END_SUBTEST
: EXCEPTION;
52 TEST
("CE2401A" , "CHECK THAT READ, WRITE, SET_INDEX " &
53 "INDEX, SIZE AND END_OF_FILE ARE " &
54 "SUPPORTED FOR DIRECT FILES");
57 SUBTYPE STR_TYPE
IS STRING (1..12);
58 PACKAGE DIR_STR
IS NEW DIRECT_IO
(STR_TYPE
);
63 CREATE
(FILE_STR
, INOUT_FILE
, LEGAL_FILE_NAME
);
65 WHEN USE_ERROR | NAME_ERROR
=>
66 NOT_APPLICABLE
("USE_ERROR | NAME_ERROR RAISED " &
67 "ON CREATE - STRING");
70 FAILED
("UNEXPECTED ERROR RAISED ON " &
76 STR
: STR_TYPE
:= "TEXT OF FILE";
78 ONE_STR
: POSITIVE_COUNT
:= 1;
79 TWO_STR
: POSITIVE_COUNT
:= 2;
85 FAILED
("EXCEPTION RAISED ON WRITE FOR " &
90 WRITE
(FILE_STR
,STR
,TWO_STR
);
93 FAILED
("EXCEPTION RAISED ON WRITE FOR " &
98 IF SIZE
(FILE_STR
) /= TWO_STR
THEN
99 FAILED
("SIZE FOR TYPE STRING");
101 IF NOT END_OF_FILE
(FILE_STR
) THEN
102 FAILED
("WRONG END_OF_FILE VALUE FOR STRING");
104 SET_INDEX
(FILE_STR
,ONE_STR
);
105 IF INDEX
(FILE_STR
) /= ONE_STR
THEN
106 FAILED
("WRONG INDEX VALUE FOR STRING");
113 OPEN
(FILE_STR
, IN_FILE
, LEGAL_FILE_NAME
);
116 NOT_APPLICABLE
("OPEN FOR IN_FILE MODE " &
117 "NOT SUPPORTED - 1");
122 READ
(FILE_STR
,ITEM_STR
);
123 IF ITEM_STR
/= STR
THEN
124 FAILED
("INCORRECT STRING VALUE READ - 1");
128 FAILED
("READ WITHOUT FROM FOR STRING");
132 READ
(FILE_STR
,ITEM_STR
,ONE_STR
);
133 IF ITEM_STR
/= STR
THEN
134 FAILED
("INCORRECT STRING VALUE READ - 2");
138 FAILED
("READ WITH FROM FOR STRING");
155 PACKAGE DIR_CHR
IS NEW DIRECT_IO
(CHARACTER);
157 FILE_CHR
: FILE_TYPE
;
160 CREATE
(FILE_CHR
, INOUT_FILE
, LEGAL_FILE_NAME
(2));
162 WHEN USE_ERROR | NAME_ERROR
=>
163 NOT_APPLICABLE
("USE_ERROR | NAME_ERROR RAISED " &
164 "ON CREATE - CHARACTER");
167 FAILED
("UNEXPECTED ERROR RAISED ON " &
168 "CREATE - CHARACTER");
173 CHR
: CHARACTER := 'C';
174 ITEM_CHR
: CHARACTER;
175 ONE_CHR
: POSITIVE_COUNT
:= 1;
176 TWO_CHR
: POSITIVE_COUNT
:= 2;
179 WRITE
(FILE_CHR
,CHR
);
182 FAILED
("EXCEPTION RAISED ON WRITE FOR " &
187 WRITE
(FILE_CHR
,CHR
,TWO_CHR
);
190 FAILED
("EXCEPTION RAISED ON WRITE FOR " &
195 IF SIZE
(FILE_CHR
) /= TWO_CHR
THEN
196 FAILED
("SIZE FOR TYPE CHARACTER");
198 IF NOT END_OF_FILE
(FILE_CHR
) THEN
199 FAILED
("WRONG END_OF_FILE VALUE FOR TYPE " &
202 SET_INDEX
(FILE_CHR
,ONE_CHR
);
203 IF INDEX
(FILE_CHR
) /= ONE_CHR
THEN
204 FAILED
("WRONG INDEX VALUE FOR TYPE " &
212 OPEN
(FILE_CHR
, IN_FILE
, LEGAL_FILE_NAME
(2));
215 NOT_APPLICABLE
("OPEN FOR IN_FILE MODE " &
216 "NOT SUPPORTED - 2");
221 READ
(FILE_CHR
,ITEM_CHR
);
222 IF ITEM_CHR
/= CHR
THEN
223 FAILED
("INCORRECT CHR VALUE READ - 1");
227 FAILED
("READ WITHOUT FROM FOR " &
232 READ
(FILE_CHR
,ITEM_CHR
,ONE_CHR
);
233 IF ITEM_CHR
/= CHR
THEN
234 FAILED
("INCORRECT CHR VALUE READ - 2");
238 FAILED
("READ WITH FROM FOR " &
256 PACKAGE DIR_INT
IS NEW DIRECT_IO
(INTEGER);
258 FILE_INT
: FILE_TYPE
;
261 CREATE
(FILE_INT
, INOUT_FILE
, LEGAL_FILE_NAME
(3));
263 WHEN USE_ERROR | NAME_ERROR
=>
264 NOT_APPLICABLE
("USE_ERROR | NAME_ERROR RAISED " &
265 "ON CREATE - INTEGER");
268 FAILED
("UNEXPECTED ERROR RAISED ON " &
274 INT
: INTEGER := IDENT_INT
(33);
276 ONE_INT
: POSITIVE_COUNT
:= 1;
277 TWO_INT
: POSITIVE_COUNT
:= 2;
280 WRITE
(FILE_INT
,INT
);
283 FAILED
("EXCEPTION RAISED ON WRITE FOR " &
288 WRITE
(FILE_INT
,INT
,TWO_INT
);
291 FAILED
("EXCEPTION RAISED ON WRITE FOR " &
296 IF SIZE
(FILE_INT
) /= TWO_INT
THEN
297 FAILED
("SIZE FOR TYPE INTEGER");
299 IF NOT END_OF_FILE
(FILE_INT
) THEN
300 FAILED
("WRONG END_OF_FILE VALUE FOR TYPE " &
303 SET_INDEX
(FILE_INT
, ONE_INT
);
304 IF INDEX
(FILE_INT
) /= ONE_INT
THEN
305 FAILED
("WRONG INDEX VALUE FOR TYPE INTEGER");
312 OPEN
(FILE_INT
, IN_FILE
, LEGAL_FILE_NAME
(3));
315 NOT_APPLICABLE
("OPEN FOR IN_FILE MODE " &
316 "NOT SUPPORTED - 3");
321 READ
(FILE_INT
,ITEM_INT
);
322 IF ITEM_INT
/= INT
THEN
323 FAILED
("INCORRECT INT VALUE READ - 1");
327 FAILED
("READ WITHOUT FROM FOR " &
332 READ
(FILE_INT
,ITEM_INT
,ONE_INT
);
333 IF ITEM_INT
/= INT
THEN
334 FAILED
("INCORRECT INT VALUE READ - 2");
338 FAILED
("READ WITH FROM FOR " &