1-- CE3403E.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 SKIP_LINE INCREMENTS THE CURRENT LINE NUMBER BY ONE
27--     AND SETS THE CURRENT COLUMN NUMBER TO ONE IF THE LINE TERMINATOR
28--     IS NOT FOLLOWED BY A PAGE TERMINATOR, AND THAT IT SETS BOTH THE
29--     LINE AND COLUMN NUMBERS TO ONE AND INCREMENTS THE CURRENT PAGE
30--     NUMBER BY ONE IF THE LINE TERMINATOR IS FOLLOWED BY A PAGE
31--     TERMINATOR.
32
33-- APPLICABILITY CRITERIA:
34--     THIS TEST IS ONLY APPLICABLE TO IMPLEMENTATIONS WHICH
35--     SUPPORT TEXT FILES.
36
37-- HISTORY:
38--     ABW 08/26/82
39--     SPS 09/20/82
40--     TBN 11/04/86  REVISED TEST TO OUTPUT A NON_APPLICABLE
41--                   RESULT WHEN FILES ARE NOT SUPPORTED.
42--     DWC 09/09/87  REVISED TEST TO USE A FILE NAME, REMOVED
43--                   DEPENDENCE ON RESET, AND ATTEMPTED TO
44--                   DELETE THE FILE.
45
46WITH REPORT;
47USE REPORT;
48WITH TEXT_IO;
49USE TEXT_IO;
50
51PROCEDURE CE3403E IS
52
53     INCOMPLETE : EXCEPTION;
54     FILE : FILE_TYPE;
55     ONE  : POSITIVE_COUNT := POSITIVE_COUNT(IDENT_INT(1));
56     TWO  : POSITIVE_COUNT := POSITIVE_COUNT(IDENT_INT(2));
57     CHAR : CHARACTER := ('C');
58
59BEGIN
60
61     TEST ("CE3403E" , "CHECK THAT SKIP_LINE SETS COLUMN, " &
62                       "LINE, AND PAGE NUMBERS CORRECTLY");
63
64     BEGIN
65          CREATE (FILE, OUT_FILE, LEGAL_FILE_NAME);
66     EXCEPTION
67          WHEN USE_ERROR =>
68               NOT_APPLICABLE ("USE_ERROR RAISED; TEXT CREATE " &
69                               "WITH OUT_FILE MODE");
70               RAISE INCOMPLETE;
71          WHEN NAME_ERROR =>
72               NOT_APPLICABLE ("NAME_ERROR RAISED; TEXT CREATE " &
73                               "WITH OUT_FILE MODE");
74               RAISE INCOMPLETE;
75          WHEN OTHERS =>
76               FAILED ("UNEXPECTED EXCEPTION RAISED; TEXT CREATE");
77               RAISE INCOMPLETE;
78     END;
79
80     PUT (FILE, CHAR);
81     NEW_LINE (FILE);
82     PUT (FILE, CHAR);
83     NEW_PAGE (FILE);
84     PUT (FILE, CHAR);
85
86      CLOSE (FILE);
87
88     BEGIN
89           OPEN (FILE, IN_FILE, LEGAL_FILE_NAME);
90     EXCEPTION
91          WHEN USE_ERROR =>
92               NOT_APPLICABLE ("USE_ERROR RAISED; TEXT OPEN " &
93                               "WITH IN_FILE MODE");
94               RAISE INCOMPLETE;
95     END;
96
97     IF (LINE (FILE) /= ONE) OR (PAGE (FILE) /= ONE) THEN
98          FAILED ("INCORRECT LINE AND PAGE NUMBERS");
99     ELSE
100
101-- LINE TERMINATOR NOT FOLLOWED BY PAGE TERMINATOR
102
103          GET (FILE, CHAR);
104
105          IF CHAR /= 'C' THEN
106               FAILED ("INCORRECT VALUE READ - 1");
107          END IF;
108
109          SKIP_LINE (FILE);
110          IF LINE (FILE) /= TWO THEN
111               FAILED ("FIRST SUBTEST - LINE NOT INCREMENTED");
112          END IF;
113          IF COL (FILE) /= ONE THEN
114               FAILED ("FIRST SUBTEST - COLUMN NOT SET TO ONE");
115          END IF;
116
117-- LINE TERMINATOR FOLLOWED BY PAGE TERMINATOR
118
119          GET (FILE, CHAR);
120
121          IF CHAR /= 'C' THEN
122               FAILED ("INCORRECT VALUE READ - 2");
123          END IF;
124
125          SKIP_LINE (FILE);
126          IF LINE (FILE) /= ONE THEN
127               FAILED ("SECOND SUBTEST - LINE NOT SET TO ONE");
128          END IF;
129          IF COL (FILE) /= ONE THEN
130               FAILED ("SECOND SUBTEST - COLUMN NOT SET TO ONE");
131          END IF;
132          IF PAGE (FILE) /= TWO THEN
133               FAILED ("SECOND SUBTEST - PAGE NOT INCREMENTED");
134          END IF;
135     END IF;
136
137     BEGIN
138          DELETE (FILE);
139     EXCEPTION
140          WHEN USE_ERROR =>
141               NULL;
142     END;
143
144     RESULT;
145
146EXCEPTION
147     WHEN INCOMPLETE =>
148          RESULT;
149
150END CE3403E;
151