1-- CE3112D.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 AN EXTERNAL TEXT FILE SPECIFIED BY A NON-NULL STRING
27--     NAME IS ACCESSIBLE AFTER THE COMPLETION OF THE MAIN PROGRAM.
28
29--     THIS TEST CHECKS THE CREATION OF A TEXT FILE X3112C, WHICH WAS
30--     CREATED BY CE3112C.ADA.
31
32-- APPLICABILITY CRITERIA:
33--     THIS TEST IS APPLICABLE ONLY TO IMPLEMENTATIONS WHICH SUPPORT
34--     TEXT FILES.
35
36-- HISTORY:
37--     GMT 08/13/87  CREATED ORIGINAL TEST.
38
39WITH REPORT; USE REPORT;
40WITH TEXT_IO;
41
42PROCEDURE CE3112D IS
43
44     INCOMPLETE               : EXCEPTION;
45     CHECK_SUPPORT, FILE_NAME : TEXT_IO.FILE_TYPE;
46     PREVENT_EMPTY_FILE       : STRING (1..5);
47
48BEGIN
49     TEST ("CE3112D", "CHECK THAT AN EXTERNAL TEXT FILE SPECIFIED BY " &
50                      "A NON-NULL STRING NAME IS ACCESSIBLE AFTER " &
51                      "THE COMPLETION OF THE MAIN PROGRAM");
52
53     -- TEST FOR TEXT FILE SUPPORT.
54
55     BEGIN
56          TEXT_IO.CREATE (CHECK_SUPPORT, TEXT_IO.OUT_FILE,
57                          LEGAL_FILE_NAME);
58          BEGIN
59               TEXT_IO.DELETE (CHECK_SUPPORT);
60          EXCEPTION
61               WHEN TEXT_IO.USE_ERROR =>
62                    NULL;
63               WHEN OTHERS =>
64                    FAILED ("UNEXPECTED EXCEPTION RAISED ON " &
65                            "DELETE - 1");
66          END;
67     EXCEPTION
68          WHEN TEXT_IO.USE_ERROR =>
69               NOT_APPLICABLE ("USE_ERROR RAISED ON TEXT CREATE WITH " &
70                               "OUT_FILE MODE - 2");
71               RAISE INCOMPLETE;
72          WHEN TEXT_IO.NAME_ERROR =>
73               NOT_APPLICABLE ("NAME_ERROR RAISED ON TEXT CREATE " &
74                               "WITH OUT_FILE MODE  - 3");
75               RAISE INCOMPLETE;
76          WHEN OTHERS =>
77               FAILED ("UNEXPECTED EXCEPTION RAISED ON TEXT " &
78                       "CREATE - 4");
79               RAISE INCOMPLETE;
80     END;
81
82     -- BEGIN TEST OBJECTIVE.
83
84     BEGIN
85          TEXT_IO.OPEN (FILE_NAME, TEXT_IO.IN_FILE,
86                        LEGAL_FILE_NAME (1, "CE3112C"));
87     EXCEPTION
88          WHEN TEXT_IO.USE_ERROR =>
89               NOT_APPLICABLE("USE_ERROR RAISED ON OPEN FOR TEXT " &
90                              "FILE WITH IN_FILE MODE - 5");
91               RAISE INCOMPLETE;
92     END;
93
94     TEXT_IO.GET (FILE_NAME, PREVENT_EMPTY_FILE);
95
96     IF PREVENT_EMPTY_FILE /= "HELLO" THEN
97          FAILED ("OPENED WRONG FILE OR DATA ERROR - 6");
98     END IF;
99     BEGIN
100          TEXT_IO.DELETE (FILE_NAME);
101     EXCEPTION
102          WHEN TEXT_IO.USE_ERROR =>
103               COMMENT ("IMPLEMENTATION WOULD NOT ALLOW DELETION OF " &
104                        "EXTERNAL FILE - 7");
105     END;
106
107     RESULT;
108
109EXCEPTION
110     WHEN INCOMPLETE =>
111          RESULT;
112END CE3112D;
113