1-- CZ1103A.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-- 26-- OBJECTIVE: 27-- CHECK THAT THE PROCEDURE CHECK_FILE WORKS CORRECTLY, IN 28-- PARTICULAR, THAT IT WILL REPORT INCORRECT FILE CONTENTS 29-- AS TEST FAILURES. 30 31-- THIS TEST INTENTIONALLY CONTAINS MISMATCHES BETWEEN FILE 32-- CONTENTS AND THE 'CONTENTS' STRING PARAMETER OF PROCEDURE 33-- CHECK_FILE. 34 35-- PASS/FAIL CRITERIA: 36-- IF AN IMPLEMENTATION SUPPORTS EXTERNAL FILES, IT PASSES THIS TEST 37-- IF TEST EXECUTION REPORTS THE FOLLOWING FOUR FAILURES, REPORTS AN 38-- INTERMEDIATE "FAILED" RESULT, REPORTS A FINAL "TENTATIVELY PASSED" 39-- RESULT, AND REPORTS NO OTHER FAILURES. 40-- * CZ1103A FROM CHECK_FILE: END OF LINE EXPECTED - E 41-- ENCOUNTERED. 42-- * CZ1103A FROM CHECK_FILE: END_OF_PAGE NOT WHERE EXPECTED. 43-- * CZ1103A FROM CHECK_FILE: END_OF_FILE NOT WHERE EXPECTED. 44-- * CZ1103A FROM CHECK_FILE: FILE DOES NOT CONTAIN CORRECT 45-- OUTPUT - EXPECTED C - GOT I. 46-- 47-- IF AN IMPLEMENTATION DOES NOT SUPPORT EXTERNAL FILES, IT PASSES THIS 48-- TEST IF TEST EXECUTION REPORTS NINE FAILURES FOR INCOMPLETE SUBTESTS 49-- SIMILAR TO THE SAMPLE BELOW, REPORTS AN INTERMEDIATE "FAILED" RESULT, 50-- REPORTS A FINAL "TENTATIVELY PASSED" RESULT, AND REPORTS NO OTHER 51-- FAILURES. 52-- * CZ1103A TEST WITH EMPTY FILE INCOMPLETE. 53 54-- HISTORY: 55-- SPS 12/09/82 CREATED ORIGINAL TEST. 56-- JRK 11/18/85 ADDED COMMENTS ABOUT PASS/FAIL CRITERIA. 57-- JET 01/13/88 UPDATED HEADER FORMAT, ADDED FINAL CALL TO 58-- SPECIAL_ACTION. 59-- PWB 06/24/88 CORRECTED PASS/FAIL CRITERIA TO INDICATE THE 60-- EXPECTED RESULT (TENTATIVELY PASSED). 61-- RLB 03/20/00 CORRECTED PASS/FAIL CRITERIA TO REFLECT PROPER RESULT 62-- FOR AN IMPLEMENTATION THAT DOES NOT SUPPORT EXTERNAL FILES. 63 64WITH REPORT; USE REPORT; 65WITH TEXT_IO; USE TEXT_IO; 66WITH CHECK_FILE; 67 68PROCEDURE CZ1103A IS 69 70 NULL_FILE : FILE_TYPE; 71 FILE_WITH_BLANK_LINES : FILE_TYPE; 72 FILE_WITH_BLANK_PAGES : FILE_TYPE; 73 FILE_WITH_TRAILING_BLANKS : FILE_TYPE; 74 FILE_WITHOUT_TRAILING_BLANKS : FILE_TYPE; 75 FILE_WITH_END_OF_LINE_ERROR : FILE_TYPE; 76 FILE_WITH_END_OF_PAGE_ERROR : FILE_TYPE; 77 FILE_WITH_END_OF_FILE_ERROR : FILE_TYPE; 78 FILE_WITH_DATA_ERROR : FILE_TYPE; 79 80BEGIN 81 82 TEST ("CZ1103A", "CHECK THAT PROCEDURE CHECK_FILE WORKS"); 83 84-- THIS SECTION TESTS CHECK_FILE WITH AN EMPTY FILE. 85 86 BEGIN 87 COMMENT ("BEGIN TEST WITH AN EMPTY FILE"); 88 CREATE (NULL_FILE, OUT_FILE); 89 CHECK_FILE (NULL_FILE, "#@%"); 90 CLOSE (NULL_FILE); 91 EXCEPTION 92 WHEN OTHERS => 93 FAILED ("TEST WITH EMPTY FILE INCOMPLETE"); 94 95 END; 96 97-- THIS SECTION TESTS CHECK_FILE WITH A FILE WITH BLANK LINES. 98 99 BEGIN 100 COMMENT ("BEGIN TEST WITH A FILE WITH BLANK LINES"); 101 CREATE (FILE_WITH_BLANK_LINES, OUT_FILE); 102 NEW_LINE (FILE_WITH_BLANK_LINES, 20); 103 CHECK_FILE (FILE_WITH_BLANK_LINES, "####################@%"); 104 CLOSE (FILE_WITH_BLANK_LINES); 105 EXCEPTION 106 WHEN OTHERS => 107 FAILED ("TEST WITH FILE WITH BLANK LINES INCOMPLETE"); 108 END; 109 110-- THIS SECTION TESTS CHECK_FILE WITH A FILE WITH BLANK LINES AND PAGES. 111 112 BEGIN 113 COMMENT ("BEGIN TEST WITH A FILE WITH BLANK LINES " & 114 "AND PAGES"); 115 CREATE (FILE_WITH_BLANK_PAGES, OUT_FILE); 116 NEW_LINE (FILE_WITH_BLANK_PAGES, 3); 117 NEW_PAGE (FILE_WITH_BLANK_PAGES); 118 NEW_LINE (FILE_WITH_BLANK_PAGES, 2); 119 NEW_PAGE (FILE_WITH_BLANK_PAGES); 120 NEW_PAGE (FILE_WITH_BLANK_PAGES); 121 CHECK_FILE (FILE_WITH_BLANK_PAGES, "###@##@#@%"); 122 CLOSE (FILE_WITH_BLANK_PAGES); 123 EXCEPTION 124 WHEN OTHERS => 125 FAILED ("TEST WITH FILE WITH BLANK PAGES INCOMPLETE"); 126 END; 127 128-- THIS SECTION TESTS CHECK_FILE WITH A FILE WITH TRAILING BLANKS. 129 130 BEGIN 131 COMMENT ("BEGIN TEST WITH A FILE WITH TRAILING BLANKS"); 132 CREATE (FILE_WITH_TRAILING_BLANKS, OUT_FILE); 133 FOR I IN 1 .. 3 LOOP 134 PUT_LINE (FILE_WITH_TRAILING_BLANKS, 135 "LINE WITH TRAILING BLANKS "); 136 END LOOP; 137 CHECK_FILE(FILE_WITH_TRAILING_BLANKS, "LINE WITH TRAILING" & 138 " BLANKS#LINE WITH TRAILING BLANKS#LINE" & 139 " WITH TRAILING BLANKS#@%"); 140 CLOSE (FILE_WITH_TRAILING_BLANKS); 141 EXCEPTION 142 WHEN OTHERS => 143 FAILED ("TEST WITH FILE WITH TRAILING BLANKS " & 144 "INCOMPLETE"); 145 END; 146 147-- THIS SECTION TESTS CHECK_FILE WITH A FILE WITHOUT TRAILING BLANKS. 148 149 BEGIN 150 COMMENT ("BEGIN TEST WITH A FILE WITHOUT TRAILING BLANKS"); 151 CREATE (FILE_WITHOUT_TRAILING_BLANKS, OUT_FILE); 152 FOR I IN 1 .. 3 LOOP 153 PUT_LINE (FILE_WITHOUT_TRAILING_BLANKS, 154 "LINE WITHOUT TRAILING BLANKS"); 155 END LOOP; 156 CHECK_FILE(FILE_WITHOUT_TRAILING_BLANKS, "LINE WITHOUT " & 157 "TRAILING BLANKS#LINE WITHOUT TRAILING BLANKS#" & 158 "LINE WITHOUT TRAILING BLANKS#@%"); 159 CLOSE (FILE_WITHOUT_TRAILING_BLANKS); 160 EXCEPTION 161 WHEN OTHERS => 162 FAILED ("TEST WITH FILE WITHOUT TRAILING BLANKS " & 163 "INCOMPLETE"); 164 END; 165 166-- THIS SECTION TESTS CHECK_FILE WITH A FILE WITH AN END OF LINE ERROR. 167 168 BEGIN 169 COMMENT ("BEGIN TEST WITH A FILE WITH AN END OF LINE ERROR"); 170 CREATE (FILE_WITH_END_OF_LINE_ERROR, OUT_FILE); 171 PUT_LINE (FILE_WITH_END_OF_LINE_ERROR, "THIS LINE WILL " & 172 "CONTAIN AN END OF LINE IN THE WRONG PLACE"); 173 CHECK_FILE (FILE_WITH_END_OF_LINE_ERROR, "THIS LINE WILL " & 174 "CONTAIN AN # IN THE WRONG PLACE#@%"); 175 CLOSE (FILE_WITH_END_OF_LINE_ERROR); 176 EXCEPTION 177 WHEN OTHERS => 178 FAILED ("TEST WITH END_OF_LINE ERROR INCOMPLETE"); 179 END; 180 181-- THIS SECTION TESTS CHECK_FILE WITH A FILE WITH AN END OF PAGE ERROR. 182 183 BEGIN 184 COMMENT ("BEGIN TEST WITH FILE WITH END OF PAGE ERROR"); 185 CREATE (FILE_WITH_END_OF_PAGE_ERROR, OUT_FILE); 186 PUT_LINE (FILE_WITH_END_OF_PAGE_ERROR, "THIS LINE WILL " & 187 "CONTAIN AN END OF PAGE IN THE WRONG PLACE"); 188 CHECK_FILE (FILE_WITH_END_OF_PAGE_ERROR, "THIS LINE WILL " & 189 "CONTAIN AN @ IN THE WRONG PLACE#@%"); 190 CLOSE (FILE_WITH_END_OF_PAGE_ERROR); 191 EXCEPTION 192 WHEN OTHERS => 193 FAILED ("TEST WITH END_OF_PAGE ERROR INCOMPLETE"); 194 END; 195 196-- THIS SECTION TESTS CHECK_FILE WITH A FILE WITH AN END OF FILE ERROR. 197 198 BEGIN 199 COMMENT ("BEGIN TEST WITH FILE WITH END OF FILE ERROR"); 200 CREATE (FILE_WITH_END_OF_FILE_ERROR, OUT_FILE); 201 PUT_LINE (FILE_WITH_END_OF_FILE_ERROR, "THIS LINE WILL " & 202 "CONTAIN AN END OF FILE IN THE WRONG PLACE"); 203 CHECK_FILE (FILE_WITH_END_OF_FILE_ERROR, "THIS LINE WILL " & 204 "CONTAIN AN % IN THE WRONG PLACE#@%"); 205 CLOSE (FILE_WITH_END_OF_FILE_ERROR); 206 EXCEPTION 207 WHEN OTHERS => 208 FAILED ("TEST WITH END_OF_FILE ERROR INCOMPLETE"); 209 END; 210 211-- THIS SECTION TESTS CHECK_FILE WITH A FILE WITH INCORRECT DATA. 212 213 BEGIN 214 COMMENT ("BEGIN TEST WITH FILE WITH INCORRECT DATA"); 215 CREATE (FILE_WITH_DATA_ERROR, OUT_FILE); 216 PUT_LINE (FILE_WITH_DATA_ERROR, "LINE WITH INCORRECT " & 217 "DATA"); 218 CHECK_FILE (FILE_WITH_DATA_ERROR, "LINE WITH CORRECT " & 219 "DATA#@%"); 220 CLOSE (FILE_WITH_DATA_ERROR); 221 EXCEPTION 222 WHEN OTHERS => 223 FAILED ("TEST WITH INCORRECT DATA INCOMPLETE"); 224 END; 225 226 RESULT; 227 228 TEST ("CZ1103A", "THE LINE ABOVE SHOULD REPORT FAILURE"); 229 SPECIAL_ACTION ("COMPARE THIS OUTPUT TO THE EXPECTED RESULT"); 230 RESULT; 231 232END CZ1103A; 233