WITH REPORT; USE REPORT;
WITH TEXT_IO; USE TEXT_IO;
WITH CHECK_FILE;
PROCEDURE CE3605D IS
INCOMPLETE : EXCEPTION;
BEGIN
TEST ("CE3605D", "CHECK THAT LAYOUT_ERROR IS NOT RAISED BY PUT " &
"FOR STRING");
DECLARE
FT : FILE_TYPE;
LC : POSITIVE_COUNT;
BEGIN
BEGIN
CREATE (FT, OUT_FILE, LEGAL_FILE_NAME);
EXCEPTION
WHEN USE_ERROR =>
NOT_APPLICABLE ("USE_ERROR RAISED ON TEXT CREATE " &
"WITH OUT_FILE MODE");
RAISE INCOMPLETE;
WHEN NAME_ERROR =>
NOT_APPLICABLE ("NAME_ERROR RAISED ON TEXT " &
"CREATE WITH OUT_FILE MODE");
RAISE INCOMPLETE;
WHEN OTHERS =>
FAILED ("UNEXPECTED EXCEPTION RAISED ON " &
"TEXT CREATE");
RAISE INCOMPLETE;
END;
SET_LINE_LENGTH (FT, 5);
BEGIN
PUT (FT, "STRING");
IF LINE(FT) /= 2 THEN
FAILED ("LINE COUNT WAS" & COUNT'IMAGE(LINE(FT)) &
" INSTEAD OF 2");
END IF;
IF COL(FT) /= 2 THEN
FAILED ("COLUMN COUNT WAS" & COUNT'IMAGE(COL(FT)) &
" INSTEAD OF 2");
END IF;
EXCEPTION
WHEN LAYOUT_ERROR =>
FAILED ("LAYOUT_ERROR RAISED - 1");
WHEN OTHERS =>
FAILED ("UNEXPECTED EXCEPTION RAISED - 1");
END;
PUT (FT, "NEW");
IF LINE(FT) /= 2 THEN
FAILED ("LINE COUNT WRONG - 2; WAS" &
COUNT'IMAGE(LINE(FT)) &
" INSTEAD OF 2");
END IF;
IF COL(FT) /= 5 THEN
FAILED ("COL COUNT WRONG - 2; WAS" &
COUNT'IMAGE(COL(FT)) &
" INSTEAD OF 5");
END IF;
BEGIN
PUT (FT, "STR");
IF LINE (FT) /= 3 THEN
FAILED ("PUT STRING WHEN IN MIDDLE OF " &
"LINE DOES NOT HAVE EFFECT OF " &
"NEW_LINE; LINE COUNT IS" &
COUNT'IMAGE(LINE(FT)));
END IF;
IF COL(FT) /= 3 THEN
FAILED ("COL COUNT WRONG - 3; WAS" &
COUNT'IMAGE(COL(FT)) &
" INSTEAD OF 3");
END IF;
EXCEPTION
WHEN LAYOUT_ERROR =>
FAILED ("LAYOUT_ERROR RAISED - 2");
WHEN OTHERS =>
FAILED ("UNEXPECTED EXCEPTION RAISED - 2");
END;
PUT (FT, "ING");
IF LINE(FT) /= 3 THEN
FAILED ("LINE COUNT WRONG - 3; WAS" &
COUNT'IMAGE(LINE(FT)) &
" INSTEAD OF 3");
END IF;
IF COL(FT) /= 6 THEN
FAILED ("COL COUNT WRONG - 3; WAS" &
COUNT'IMAGE(COL(FT)) &
" INSTEAD OF 6");
END IF;
BEGIN
PUT (FT, "");
IF LINE(FT) /= 3 THEN
FAILED ("LINE COUNT WRONG - 3; WAS" &
COUNT'IMAGE(LINE(FT)) &
" INSTEAD OF 3");
END IF;
IF COL(FT) /= 6 THEN
FAILED ("COL COUNT WRONG - 3; WAS" &
COUNT'IMAGE(COL(FT)) &
" INSTEAD OF 6");
END IF;
EXCEPTION
WHEN LAYOUT_ERROR =>
FAILED ("LAYOUT_ERROR RAISED - 3");
WHEN OTHERS =>
FAILED ("UNEXPECTED EXCEPTION RAISED - 3");
END;
CHECK_FILE (FT,
"STRIN#" &
"GNEWS#" &
"TRING#@%");
BEGIN
DELETE (FT);
EXCEPTION
WHEN USE_ERROR =>
NULL;
END;
EXCEPTION
WHEN INCOMPLETE =>
NULL;
END;
RESULT;
END CE3605D;