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 WHETHER READ, WRITE, AND END_OF_FILE ARE SUPPORTED FOR
27 -- SEQUENTIAL FILES WITH VARIANT RECORDS WITH NON-DEFAULT
30 -- IF I/O IS NOT SUPPORTED, THEN CREATE AND OPEN CAN RAISE USE_ERROR
31 -- OR NAME_ERROR. SEE (AI-00332).
33 -- APPLICABILITY CRITERIA:
34 -- THIS TEST IS NON-APPLICABLE IF THE INSTANTIATION OF
35 -- SEQUENTIAL_IO WITH VARIANT RECORDS HAVING NO DEFAULT
36 -- DISCRIMINANT VALUES IS REJECTED.
41 -- TBN 11/18/85 RENAMED FROM CE2201E.DEP AND MODIFIED COMMENTS.
42 -- SPLIT DEFAULT DISCRIMINANT CASE INTO
44 -- TBN 11/04/86 REVISED TEST TO OUTPUT A NON_APPLICABLE
45 -- RESULT WHEN FILES ARE NOT SUPPORTED.
46 -- THS 03/30/90 RENAMED FROM EE2201E.ADA.
48 WITH REPORT; USE REPORT;
52 INCOMPLETE : EXCEPTION;
56 TEST ("CE2201E", "CHECK WHETHER READ, WRITE, AND END_OF_FILE " &
57 "ARE SUPPORTED FOR SEQUENTIAL FILES WITH " &
58 "UNCONSTRAINED VARIANT RECORD TYPES WITH " &
59 "NON-DEFAULT DISCRIMINANTS.");
62 TYPE VAR_REC (DISCR : BOOLEAN) IS
73 IS NEW SEQUENTIAL_IO (VAR_REC); -- N/A => ERROR.
76 FILE_VAR_REC : FILE_TYPE;
77 ITEM_TRUE : VAR_REC(TRUE);
78 ITEM_FALSE : VAR_REC(FALSE);
83 CREATE (FILE_VAR_REC);
86 NOT_APPLICABLE ("USE_ERROR RAISED; SEQUENTIAL " &
90 NOT_APPLICABLE ("NAME_ERROR RAISED; SEQUENTIAL " &
94 FAILED ("UNEXPECTED EXCEPTION RAISED; SEQUENTIAL " &
100 WRITE (FILE_VAR_REC, (TRUE, -6));
101 WRITE (FILE_VAR_REC, (FALSE, (1..20 => 'C')));
104 FAILED ("WRITE FOR RECORD WITH DISCRIMINANT");
108 RESET (FILE_VAR_REC,IN_FILE);
111 NOT_APPLICABLE ("USE_ERROR FOR RESET");
115 IF END_OF_FILE (FILE_VAR_REC) THEN
116 FAILED ("WRONG END_OF_FILE VALUE FOR RECORD" &
117 "WITH DISCRIMINANT");
121 READ (FILE_VAR_REC,ITEM_TRUE);
123 IF ITEM_TRUE /= (TRUE, IDENT_INT(-6)) THEN
124 FAILED ("READ WRONG VALUE - 1");
127 IF END_OF_FILE (FILE_VAR_REC) THEN
128 FAILED ("PREMATURE END OF FILE");
131 READ (FILE_VAR_REC, ITEM_FALSE);
133 IF ITEM_FALSE /= (FALSE, (1..IDENT_INT(20) => 'C')) THEN
134 FAILED ("READ WRONG VALUE - 2");
137 IF NOT END_OF_FILE(FILE_VAR_REC) THEN
138 FAILED ("NOT AT END OF FILE");
143 FAILED ("READ FOR VARIANT RECORD");
146 CLOSE (FILE_VAR_REC);