WITH REPORT; USE REPORT;
WITH DIRECT_IO;
PROCEDURE CE2111G IS
PACKAGE DIR_IO IS NEW DIRECT_IO (INTEGER);
USE DIR_IO;
DIR_FILE : DIR_IO.FILE_TYPE;
DIR_MODE : DIR_IO.FILE_MODE;
INCOMPLETE : EXCEPTION;
VAR1 : INTEGER := 5;
BEGIN
TEST ("CE2111G", "CHECK THAT A SUPPLIED MODE PARAMETER SETS " &
"THE MODE OF THE GIVEN FILE APPROPRIATELY");
BEGIN
CREATE (DIR_FILE, INOUT_FILE, LEGAL_FILE_NAME);
WRITE (DIR_FILE, VAR1);
EXCEPTION
WHEN USE_ERROR =>
NOT_APPLICABLE ("USE_ERROR RAISED ON CREATE");
RAISE INCOMPLETE;
WHEN NAME_ERROR =>
NOT_APPLICABLE ("NAME_ERROR RAISED ON CREATE");
RAISE INCOMPLETE;
END;
BEGIN
DIR_MODE := OUT_FILE;
RESET (DIR_FILE);
DIR_MODE := MODE (DIR_FILE);
IF DIR_MODE /= INOUT_FILE THEN
FAILED ("DEFAULT RESET CHANGED MODE - DIR");
END IF;
EXCEPTION
WHEN USE_ERROR =>
NOT_APPLICABLE ("RESET NOT SUPPORTED FOR DIR " &
"INOUT_FILES");
END;
BEGIN
DIR_MODE := IN_FILE;
RESET (DIR_FILE, OUT_FILE);
DIR_MODE := MODE (DIR_FILE);
IF DIR_MODE /= OUT_FILE THEN
FAILED ("RESET TO OUT_FILE FAILED - DIR");
END IF;
EXCEPTION
WHEN USE_ERROR =>
NOT_APPLICABLE ("RESET FROM INOUT_FILE TO OUT_FILE " &
"NOT SUPPORTED FOR DIR FILES");
END;
BEGIN
DIR_MODE := OUT_FILE;
RESET (DIR_FILE, IN_FILE);
DIR_MODE := MODE (DIR_FILE);
IF DIR_MODE /= IN_FILE THEN
FAILED ("RESET TO IN_FILE FAILED - DIR");
END IF;
EXCEPTION
WHEN USE_ERROR =>
NOT_APPLICABLE ("RESET FROM OUT_FILE TO IN_FILE NOT " &
"SUPPORTED FOR DIR IN_FILE");
END;
BEGIN
DIR_MODE := OUT_FILE;
RESET (DIR_FILE, INOUT_FILE);
DIR_MODE := MODE (DIR_FILE);
IF DIR_MODE /= INOUT_FILE THEN
FAILED ("RESET TO INOUT_FILE FAILED - DIR");
END IF;
EXCEPTION
WHEN USE_ERROR =>
NOT_APPLICABLE ("RESET FROM IN_FILE TO INOUT_FILE NOT " &
"SUPPORTED FOR DIR INOUT_FILES");
END;
BEGIN
DELETE (DIR_FILE);
EXCEPTION
WHEN USE_ERROR =>
NULL;
END;
RESULT;
EXCEPTION
WHEN INCOMPLETE =>
RESULT;
END CE2111G;