1-- CE3411A.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 COL RETURNS THE VALUE OF THE CURRENT COLUMN NUMBER.
27
28-- APPLICABILITY CRITERIA:
29--     THIS TEST IS APPLICABLE ONLY TO IMPLEMENTATIONS WHICH SUPPORT
30--     TEXT FILES.
31
32-- HISTORY:
33--     SPS 09/29/82
34--     JBG 08/30/83
35--     TBN 11/10/86  REVISED TEST TO OUTPUT A NOT_APPLICABLE
36--                   RESULT WHEN FILES ARE NOT SUPPORTED.
37--     JLH 09/02/87  REMOVED DEPENDENCE ON RESET AND CHECKED FOR
38--                   USE_ERROR ON DELETE.
39
40WITH REPORT;
41USE REPORT;
42WITH TEXT_IO;
43USE TEXT_IO;
44
45PROCEDURE CE3411A IS
46     INCOMPLETE : EXCEPTION;
47
48BEGIN
49
50     TEST ("CE3411A", "CHECK THAT COL RETURNS THE VALUE OF THE " &
51                      "CURRENT COLUMN NUMBER");
52
53     DECLARE
54          FT        : FILE_TYPE;
55          X         : CHARACTER;
56          NUM_CHARS : POSITIVE_COUNT;
57     BEGIN
58
59          BEGIN
60               CREATE (FT, OUT_FILE, LEGAL_FILE_NAME);
61          EXCEPTION
62               WHEN USE_ERROR =>
63                    NOT_APPLICABLE ("USE_ERROR RAISED ON TEXT CREATE " &
64                                    "WITH OUT_FILE MODE");
65                    RAISE INCOMPLETE;
66               WHEN NAME_ERROR =>
67                    NOT_APPLICABLE ("NAME_ERROR RAISED ON TEXT " &
68                                    "CREATE WITH OUT_FILE MODE");
69                    RAISE INCOMPLETE;
70               WHEN OTHERS =>
71                    FAILED ("UNEXPECTED EXCEPTION RAISED ON TEXT " &
72                            "CREATE");
73                    RAISE INCOMPLETE;
74          END;
75
76          PUT (FT, "OUTPUT STRING");
77          IF COL (FT) /= 14 THEN
78               FAILED ("COL INCORRECT AFTER PUT; IS" &
79                       COUNT'IMAGE(COL(FT)));
80          END IF;
81
82          NEW_LINE (FT);
83          IF COL (FT) /= 1 THEN
84               FAILED ("COL INCORRECT AFTER NEW_LINE; IS" &
85                       COUNT'IMAGE(COL(FT)));
86          END IF;
87
88          PUT (FT, "MORE OUTPUT");
89          NEW_PAGE (FT);
90          IF COL (FT) /= 1 THEN
91               FAILED ("COL INCORRECT AFTER NEW_PAGE; IS" &
92                       COUNT'IMAGE(COL(FT)));
93          END IF;
94
95          PUT (FT, "FINAL");
96
97          CLOSE (FT);
98
99          BEGIN
100               OPEN (FT, IN_FILE, LEGAL_FILE_NAME);
101          EXCEPTION
102               WHEN USE_ERROR =>
103                    NOT_APPLICABLE ("USE_ERROR RAISED ON TEXT OPEN " &
104                                    "WITH IN_FILE MODE");
105                    RAISE INCOMPLETE;
106          END;
107
108          IF COL (FT) /= 1 THEN
109               FAILED ("COL INCORRECT AFTER REOPEN; IS" &
110                       COUNT'IMAGE(COL(FT)));
111          END IF;
112
113          FOR I IN 1 .. 4 LOOP
114               GET (FT, X);
115          END LOOP;
116          IF COL (FT) /= 5 THEN
117               FAILED ("COL INCORRECT AFTER GET; IS" &
118                       COUNT'IMAGE(COL(FT)));
119          END IF;
120
121          NUM_CHARS := COL(FT);
122          WHILE NOT END_OF_LINE(FT) LOOP
123               GET (FT, X);
124               NUM_CHARS := NUM_CHARS + 1;
125          END LOOP;
126
127          IF COL(FT) /= NUM_CHARS THEN
128               FAILED ("COL INCORRECT BEFORE END OF LINE; IS" &
129                       COUNT'IMAGE(COL(FT)));
130          END IF;
131
132          SKIP_LINE (FT);
133          IF COL(FT) /= 1 THEN
134               FAILED ("COL INCORRECT AFTER SKIP_LINE; IS" &
135                       COUNT'IMAGE(COL(FT)));
136          END IF;
137
138          SET_COL (FT, 2);
139          IF COL (FT) /= 2 THEN
140               FAILED ("COL INCORRECT AFTER SET_COL; IS" &
141                       COUNT'IMAGE(COL(FT)));
142          END IF;
143
144          SKIP_PAGE (FT);
145          IF COL(FT) /= 1 THEN
146               FAILED ("COL INCORRECT AFTER SKIP_PAGE; IS" &
147                       COUNT'IMAGE(COL(FT)));
148          END IF;
149
150          BEGIN
151               DELETE (FT);
152          EXCEPTION
153               WHEN USE_ERROR =>
154                    NULL;
155          END;
156
157     END;
158
159     RESULT;
160
161EXCEPTION
162     WHEN INCOMPLETE =>
163          RESULT;
164END CE3411A;
165