WITH REPORT; USE REPORT;
WITH DIRECT_IO;
PROCEDURE CE2103D IS
PACKAGE DIR_IO IS NEW DIRECT_IO(CHARACTER);
USE DIR_IO;
INCOMPLETE : EXCEPTION;
TEST_FILE_ONE : DIR_IO.FILE_TYPE;
VAL : BOOLEAN;
BEGIN
TEST ("CE2103D", "CHECK THAT IS_OPEN RETURNS THE PROPER " &
"VALUES FOR FILES OF TYPE DIRECT_IO");
VAL := FALSE;
BEGIN
CREATE (TEST_FILE_ONE, OUT_FILE, LEGAL_FILE_NAME);
EXCEPTION
WHEN USE_ERROR =>
NOT_APPLICABLE ("USE_ERROR RAISED ON CREATE WITH " &
"OUT_FILE MODE");
RAISE INCOMPLETE;
WHEN NAME_ERROR =>
NOT_APPLICABLE ("NAME_ERROR RAISED ON CREATE WITH " &
"OUT_FILE MODE");
RAISE INCOMPLETE;
END;
VAL := IS_OPEN (TEST_FILE_ONE);
IF VAL = FALSE THEN
FAILED ("IS_OPEN RETURNS FALSE AFTER CREATE");
END IF;
VAL := TRUE;
CLOSE (TEST_FILE_ONE);
VAL := IS_OPEN (TEST_FILE_ONE);
IF VAL = TRUE THEN
FAILED ("IS_OPEN RETURNS TRUE AFTER CLOSE");
END IF;
VAL := FALSE;
BEGIN
OPEN (TEST_FILE_ONE, IN_FILE, LEGAL_FILE_NAME);
EXCEPTION
WHEN USE_ERROR =>
IF IS_OPEN (TEST_FILE_ONE) /= FALSE THEN
FAILED ("IS_OPEN GIVES TRUE ON " &
"UNSUCCESSFUL OPEN");
END IF;
RAISE INCOMPLETE;
END;
VAL := IS_OPEN (TEST_FILE_ONE);
IF VAL = FALSE THEN
FAILED ("IS_OPEN RETURNS FALSE AFTER OPEN");
END IF;
VAL := FALSE;
BEGIN
RESET (TEST_FILE_ONE);
EXCEPTION
WHEN USE_ERROR =>
NULL;
END;
VAL := IS_OPEN (TEST_FILE_ONE);
IF VAL = FALSE THEN
FAILED ("IS_OPEN RETURNS FALSE AFTER RESET");
END IF;
VAL := TRUE;
BEGIN
DELETE (TEST_FILE_ONE);
EXCEPTION
WHEN USE_ERROR =>
IF IS_OPEN (TEST_FILE_ONE) /= FALSE THEN
FAILED ("IS_OPEN GIVES TRUE ON UNSUCCESSFUL " &
"DELETE");
END IF;
RAISE INCOMPLETE;
END;
VAL := IS_OPEN (TEST_FILE_ONE);
IF VAL = TRUE THEN
FAILED ("IS_OPEN RETURNS TRUE AFTER DELETE");
END IF;
RESULT;
EXCEPTION
WHEN INCOMPLETE =>
RESULT;
END CE2103D;