1-- CE3107B.ADA
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 THAT IS_OPEN RETURNS THE PROPER VALUES FOR FILES OF
27--     TYPE TEXT_IO.
28
29-- APPLICABILITY CRITERIA:
30--     THIS TEST IS APPLICABLE ONLY TO IMPLEMENTATIONS WHICH SUPPORT
31--     CREATION WITH OUT_FILE MODE FOR TEXT FILES.
32
33-- HISTORY:
34--     DWC 08/17/87  CREATED ORIGINAL TEST.
35
36WITH REPORT; USE REPORT;
37WITH TEXT_IO; USE TEXT_IO;
38
39PROCEDURE CE3107B IS
40
41     TEST_FILE_ONE : FILE_TYPE;
42     TEST_FILE_TWO : FILE_TYPE;
43     VAL : BOOLEAN;
44
45     INCOMPLETE : EXCEPTION;
46
47BEGIN
48
49     TEST("CE3107B", "CHECK THAT IS_OPEN RETURNS THE " &
50                     "PROPER VALUES FOR FILES OF TYPE TEXT_IO");
51
52-- FOLLOWING A CREATE
53
54     BEGIN
55          VAL := FALSE;
56          CREATE(TEST_FILE_ONE, OUT_FILE, LEGAL_FILE_NAME);
57          VAL := IS_OPEN(TEST_FILE_ONE);
58          IF VAL = FALSE THEN
59               FAILED("IS_OPEN RETURNS FALSE AFTER CREATE");
60          END IF;
61     EXCEPTION
62          WHEN USE_ERROR =>
63               NOT_APPLICABLE ("USE_ERROR RAISED ON CREATE");
64               RAISE INCOMPLETE;
65          WHEN NAME_ERROR =>
66               NOT_APPLICABLE ("NAME_ERROR RAISED ON CREATE");
67               RAISE INCOMPLETE;
68     END;
69
70-- FOLLOWING CLOSE
71
72     VAL := TRUE;
73     IF IS_OPEN(TEST_FILE_ONE) = TRUE THEN
74          CLOSE(TEST_FILE_ONE);
75     END IF;
76     VAL := IS_OPEN(TEST_FILE_ONE);
77     IF VAL = TRUE THEN
78          FAILED("IS_OPEN RETURNS TRUE AFTER CLOSE");
79     END IF;
80
81-- FOLLOWING OPEN
82
83     BEGIN
84          VAL := FALSE;
85          BEGIN
86               OPEN (TEST_FILE_TWO, IN_FILE, LEGAL_FILE_NAME);
87          EXCEPTION
88               WHEN USE_ERROR =>
89                    IF IS_OPEN (TEST_FILE_TWO) /= FALSE THEN
90                         FAILED ("FILE OPEN AFTER USE_ERROR " &
91                                 "DURING OPEN");
92                    END IF;
93                    RAISE INCOMPLETE;
94          END;
95          VAL := IS_OPEN(TEST_FILE_TWO);
96          IF VAL = FALSE THEN
97               FAILED("IS_OPEN RETURNS FALSE AFTER OPEN");
98          END IF;
99
100-- AFTER RESET
101
102          BEGIN
103               VAL := FALSE;
104               RESET(TEST_FILE_TWO);
105               VAL := IS_OPEN(TEST_FILE_TWO);
106               IF VAL = FALSE THEN
107                    FAILED("IS_OPEN RETURNS FALSE AFTER RESET");
108               END IF;
109          EXCEPTION
110               WHEN USE_ERROR =>
111                    COMMENT("IMPLEMENTATION DOES NOT SUPPORT RESET");
112          END;
113     EXCEPTION
114          WHEN INCOMPLETE =>
115               NULL;
116     END;
117
118-- AFTER DELETE
119
120     BEGIN
121          VAL := TRUE;
122          DELETE(TEST_FILE_TWO);
123          VAL := IS_OPEN(TEST_FILE_TWO);
124          IF VAL = TRUE THEN
125               FAILED("IS_OPEN RETURNS TRUE AFTER DELETE");
126          END IF;
127     EXCEPTION
128          WHEN USE_ERROR =>
129               IF IS_OPEN (TEST_FILE_TWO) /= FALSE THEN
130                    FAILED ("FILE OPEN AFTER USE_ERROR " &
131                            "DURING DELETE");
132               END IF;
133     END;
134
135     RESULT;
136
137EXCEPTION
138     WHEN INCOMPLETE =>
139          RESULT;
140
141END CE3107B;
142