1-- CE3602B.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 GET (FOR CHARACTER AND STRINGS) PROPERLY SETS THE 27-- PAGE, LINE, AND COLUMN NUMBERS AFTER EACH OPERATION. 28 29-- APPLICABILITY CRITERIA: 30-- THIS TEST IS APPLICABLE ONLY TO IMPLEMENTATIONS WHICH SUPPORT 31-- TEXT FILES. 32 33-- HISTORY: 34-- SPS 08/30/82 35-- SPS 12/17/82 36-- JBG 02/22/84 CHANGED TO .ADA TEST 37-- RJW 11/04/86 REVISED TEST TO OUTPUT A NON_APPLICABLE 38-- RESULT WHEN FILES ARE NOT SUPPORTED. 39-- JLH 09/04/87 REMOVED DEPENDENCE ON UNBOUNDED LINE LENGTH AND 40-- CORRECTED EXCEPTION HANDLING. 41-- BCB 11/13/87 GAVE SET_LINE_LENGTH PROCEDURE THE FILE VARIABLE 42-- AS A PARAMETER. REMOVED LINE WHICH SAVED AND 43-- RESTORED THE LINE LENGTH. 44 45 46WITH REPORT; USE REPORT; 47WITH TEXT_IO; USE TEXT_IO; 48WITH CHECK_FILE; 49 50PROCEDURE CE3602B IS 51 INCOMPLETE : EXCEPTION; 52 53BEGIN 54 55 TEST ("CE3602B", "CHECK THAT GET PROPERLY SETS PAGE, LINE, AND " & 56 "COLUMN NUMBERS"); 57 58 DECLARE 59 FILE1 : FILE_TYPE; 60 LINE1 : CONSTANT STRING := "LINE ONE OF TEST DATA FILE"; 61 LINE2 : CONSTANT STRING := "LINE TWO"; 62 LINE3 : CONSTANT STRING := "LINE THREE"; 63 CN, LN : POSITIVE_COUNT; 64 CH : CHARACTER; 65 ST: STRING (1 .. 5); 66 ORIGINAL_LINE_LENGTH : COUNT; 67 68 BEGIN 69 70-- CREATE AND INITIALIZE TEST DATA FILE 71 72 BEGIN 73 CREATE (FILE1, OUT_FILE, LEGAL_FILE_NAME); 74 EXCEPTION 75 WHEN USE_ERROR => 76 NOT_APPLICABLE ("USE_ERROR RAISED ON TEXT CREATE " & 77 "WITH OUT_FILE MODE"); 78 RAISE INCOMPLETE; 79 WHEN NAME_ERROR => 80 NOT_APPLICABLE ("NAME_ERROR RAISED ON TEXT " & 81 "CREATE WITH OUT_FILE MODE"); 82 RAISE INCOMPLETE; 83 WHEN OTHERS => 84 FAILED ("UNEXPECTED EXCEPTION RAISED ON " & 85 "TEXT CREATE"); 86 RAISE INCOMPLETE; 87 END; 88 89 ORIGINAL_LINE_LENGTH := LINE_LENGTH; 90 SET_LINE_LENGTH (FILE1, LINE1'LENGTH); 91 92 PUT (FILE1, LINE1); 93 SET_LINE_LENGTH (FILE1, LINE2'LENGTH); 94 PUT (FILE1, LINE2); 95 NEW_LINE (FILE1, 2); 96 NEW_PAGE (FILE1); 97 SET_LINE_LENGTH (FILE1, LINE3'LENGTH); 98 PUT (FILE1, LINE3); 99 CLOSE (FILE1); 100 101-- BEGIN TEST 102 103 BEGIN 104 OPEN (FILE1, IN_FILE, LEGAL_FILE_NAME); 105 EXCEPTION 106 WHEN USE_ERROR => 107 NOT_APPLICABLE ("USE_ERROR RAISED ON TEXT OPEN " & 108 "WITH IN_FILE MODE"); 109 RAISE INCOMPLETE; 110 END; 111 112 IF COL (FILE1) /= 1 THEN 113 FAILED ("COLUMN NUMBER NOT INITIALLY ONE"); 114 END IF; 115 116 IF LINE (FILE1) /= 1 THEN 117 FAILED ("LINE NUMBER NOT INITIALLY ONE"); 118 END IF; 119 120 IF PAGE (FILE1) /= 1 THEN 121 FAILED ("PAGE NUMBER NOT INITIALLY ONE"); 122 END IF; 123 124-- TEST COLUMN NUMBER FOR CHARACTER 125 126 GET (FILE1, CH); 127 IF CH /= 'L' THEN 128 FAILED ("CHARACTER NOT EQUAL TO L - 1"); 129 END IF; 130 CN := COL (FILE1); 131 IF CN /= 2 THEN 132 FAILED ("COLUMN NUMBER NOT SET CORRECTLY " & 133 "- GET CHARACTER. COL NUMBER IS" & 134 COUNT'IMAGE(CN)); 135 END IF; 136 137-- TEST COLUMN NUMBER FOR STRING 138 139 GET (FILE1, ST); 140 CN := COL (FILE1); 141 IF CN /= 7 THEN 142 FAILED ("COLUMN NUMBER NOT SET CORRECTLY " & 143 "- GET STRING. COL NUMBER IS" & 144 COUNT'IMAGE(CN)); 145 END IF; 146 147-- POSITION CURRENT INDEX TO END OF LINE 148 149 WHILE NOT END_OF_LINE (FILE1) LOOP 150 GET (FILE1, CH); 151 END LOOP; 152 153 IF CH /= 'E' THEN 154 FAILED ("CHARACTER NOT EQUAL TO E"); 155 END IF; 156 157-- TEST LINE NUMBER FOR CHARACTER 158 159 GET(FILE1, CH); 160 IF CH /= 'L' THEN 161 FAILED ("CHARACTER NOT EQUAL TO L - 2"); 162 END IF; 163 LN := LINE (FILE1); 164 IF LN /= 2 THEN 165 FAILED ("LINE NUMBER NOT SET CORRECTLY " & 166 "- GET CHARACTER. LINE NUMBER IS" & 167 COUNT'IMAGE(LN)); 168 END IF; 169 IF PAGE (FILE1) /= POSITIVE_COUNT(IDENT_INT(1)) THEN 170 FAILED ("PAGE NUMBER NOT CORRECT - 1. PAGE IS" & 171 COUNT'IMAGE(PAGE(FILE1))); 172 END IF; 173 174-- TEST LINE NUMBER FOR STRING 175 176 WHILE NOT END_OF_LINE (FILE1) LOOP 177 GET (FILE1, CH); 178 END LOOP; 179 GET (FILE1, ST); 180 IF ST /= "LINE " THEN 181 FAILED ("INCORRECT VALUE READ - ST"); 182 END IF; 183 LN := LINE (FILE1); 184 CN := COL (FILE1); 185 IF CN /= 6 THEN 186 FAILED ("COLUMN NUMBER NOT SET CORRECTLY " & 187 "- GET STRING. COL NUMBER IS" & 188 COUNT'IMAGE(CN)); 189 END IF; 190 IF LN /= 1 THEN 191 FAILED ("LINE NUMBER NOT SET CORRECTLY " & 192 "- GET STRING. LINE NUMBER IS" & 193 COUNT'IMAGE(LN)); 194 END IF; 195 IF PAGE (FILE1) /= POSITIVE_COUNT(IDENT_INT(2)) THEN 196 FAILED ("PAGE NUMBER NOT CORRECT - 2. PAGE IS" & 197 COUNT'IMAGE(PAGE(FILE1))); 198 END IF; 199 200 BEGIN 201 DELETE (FILE1); 202 EXCEPTION 203 WHEN USE_ERROR => 204 NULL; 205 END; 206 207 EXCEPTION 208 WHEN INCOMPLETE => 209 NULL; 210 211 END; 212 213 RESULT; 214 215END CE3602B; 216