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 INDEX RETURNS THE CORRECT INDEX POSITION AND THAT
27 -- SET_INDEX CORRECTLY SETS THE INDEX POSITION IN A DIRECT FILE.
29 -- APPLICABILITY CRITERIA:
30 -- THIS TEST IS ONLY APPLICABLE TO IMPLEMENTATIONS WHICH SUPPORT
35 -- JLH 08/07/87 REVISED EXTERNAL FILE NAME, REMOVED CHECK FOR
36 -- NAME_ERROR ON OPEN CALLS, AND REMOVED
40 WITH REPORT
; USE REPORT
;
43 PACKAGE DIR_IO
IS NEW DIRECT_IO
(INTEGER);
47 INCOMPLETE
: EXCEPTION;
50 TEST
("CE2411A", "CHECK THAT INDEX RETURNS THE CORRECT INDEX " &
51 "POSITION AND THAT SET_INDEX CORRECTLY SETS " &
52 "THE INDEX POSITION IN A DIRECT FILE");
55 -- INITIALIZE TEST FILE
58 CREATE
(FILE1
, OUT_FILE
, LEGAL_FILE_NAME
);
61 NOT_APPLICABLE
("NAME_ERROR RAISED DURING CREATE " &
62 "WITH OUT_FILE MODE FOR DIR_IO");
65 NOT_APPLICABLE
("USE_ERROR RAISED DURING CREATE " &
66 "WITH OUT_FILE MODE FOR DIR_IO");
69 FAILED
("UNKNOWN EXCEPTION RAISED DURING CREATE");
74 IF INDEX
(FILE1
) /= 1 THEN
75 FAILED
("STARTING INDEX POSITION IS INCORRECT - 1");
81 IF INDEX
(FILE1
) /= 11 THEN
82 FAILED
("INDEX DOES NOT RETURN CORRECT POSITION - 2");
84 WRITE
(FILE1
, 20, 20);
85 IF INDEX
(FILE1
) /= 21 THEN
86 FAILED
("INDEX DOES NOT RETURN CORRECT POSITION - 3");
88 SET_INDEX
(FILE1
, 11);
89 IF INDEX
(FILE1
) /= 11 THEN
90 FAILED
("SET_INDEX DOES NOT CORRECTLY SET POSITION - 4");
93 IF INDEX
(FILE1
) /= 12 THEN
94 FAILED
("INDEX DOES NOT RETURN CORRECT POSITION - 5");
101 OPEN
(FILE1
, IN_FILE
, LEGAL_FILE_NAME
);
104 NOT_APPLICABLE
("USE_ERROR RAISED DURING OPEN INFILE " &
108 FAILED
("UNKNOWN EXCEPTION RAISED DURING OPEN INFILE");
115 IF INDEX
(FILE1
) /= 1 THEN
116 FAILED
("STARTING INDEX POSITION IS INCORRECT - 7");
119 FOR I
IN 1 .. 10 LOOP
122 FAILED
("FILE CONTAINS INCORRECT DATA - 8");
124 IF INDEX
(FILE1
) /= POSITIVE_COUNT
(I
+ 1) THEN
125 FAILED
("INDEX DOES NOT RETURN THE CORRECT " &
129 SET_INDEX
(FILE1
, 20);
130 IF INDEX
(FILE1
) /= 20 THEN
131 FAILED
("SET_INDEX DOES NOT CORRECTLY SET POSITION - " &
134 READ
(FILE1
, NUM
, 20);
136 FAILED
("FILE CONTAINS INCORRECT DATA - 11");
138 IF INDEX
(FILE1
) /= 21 THEN
139 FAILED
("INDEX DOES NOT RETURN CORRECT POSITION - 12");
141 SET_INDEX
(FILE1
, 1);
142 IF INDEX
(FILE1
) /= 1 THEN
143 FAILED
("SET_INDEX DOES NOT CORRECTLY SET POSITION - " &
151 OPEN
(FILE1
, INOUT_FILE
, LEGAL_FILE_NAME
);
154 NOT_APPLICABLE
("USE_ERROR RAISED DURING OPEN " &
155 "INOUT_FILE FOR DIR_IO");
158 FAILED
("UNKNOWN EXCEPTION RAISED DURING OPEN INOUT");
165 IF INDEX
(FILE1
) /= 1 THEN
166 FAILED
("STARTING INDEX POSITION IS INCORRECT - 15");
169 FOR I
IN 1 .. 10 LOOP
172 FAILED
("FILE CONTAINS INCORRECT DATA - 16");
174 IF INDEX
(FILE1
) /= POSITIVE_COUNT
(I
+ 1) THEN
175 FAILED
("INDEX DOES NOT RETURN THE CORRECT " &
179 SET_INDEX
(FILE1
, 20);
180 IF INDEX
(FILE1
) /= 20 THEN
181 FAILED
("SET_INDEX DOES NOT CORRECTLY SET POSITION - " &
184 WRITE
(FILE1
, 12, 12);
185 IF INDEX
(FILE1
) /= 13 THEN
186 FAILED
("INDEX DOES NOT RETURN CORRECT POSITION - 19");
188 SET_INDEX
(FILE1
, 1);
189 IF INDEX
(FILE1
) /= 1 THEN
190 FAILED
("SET_INDEX DOES NOT CORRECTLY SET POSITION - " &