WITH REPORT; USE REPORT;
WITH TEXT_IO; USE TEXT_IO;
PROCEDURE CE3107B IS
TEST_FILE_ONE : FILE_TYPE;
TEST_FILE_TWO : FILE_TYPE;
VAL : BOOLEAN;
INCOMPLETE : EXCEPTION;
BEGIN
TEST("CE3107B", "CHECK THAT IS_OPEN RETURNS THE " &
"PROPER VALUES FOR FILES OF TYPE TEXT_IO");
BEGIN
VAL := FALSE;
CREATE(TEST_FILE_ONE, OUT_FILE, LEGAL_FILE_NAME);
VAL := IS_OPEN(TEST_FILE_ONE);
IF VAL = FALSE THEN
FAILED("IS_OPEN RETURNS FALSE AFTER CREATE");
END IF;
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;
VAL := TRUE;
IF IS_OPEN(TEST_FILE_ONE) = TRUE THEN
CLOSE(TEST_FILE_ONE);
END IF;
VAL := IS_OPEN(TEST_FILE_ONE);
IF VAL = TRUE THEN
FAILED("IS_OPEN RETURNS TRUE AFTER CLOSE");
END IF;
BEGIN
VAL := FALSE;
BEGIN
OPEN (TEST_FILE_TWO, IN_FILE, LEGAL_FILE_NAME);
EXCEPTION
WHEN USE_ERROR =>
IF IS_OPEN (TEST_FILE_TWO) /= FALSE THEN
FAILED ("FILE OPEN AFTER USE_ERROR " &
"DURING OPEN");
END IF;
RAISE INCOMPLETE;
END;
VAL := IS_OPEN(TEST_FILE_TWO);
IF VAL = FALSE THEN
FAILED("IS_OPEN RETURNS FALSE AFTER OPEN");
END IF;
BEGIN
VAL := FALSE;
RESET(TEST_FILE_TWO);
VAL := IS_OPEN(TEST_FILE_TWO);
IF VAL = FALSE THEN
FAILED("IS_OPEN RETURNS FALSE AFTER RESET");
END IF;
EXCEPTION
WHEN USE_ERROR =>
COMMENT("IMPLEMENTATION DOES NOT SUPPORT RESET");
END;
EXCEPTION
WHEN INCOMPLETE =>
NULL;
END;
BEGIN
VAL := TRUE;
DELETE(TEST_FILE_TWO);
VAL := IS_OPEN(TEST_FILE_TWO);
IF VAL = TRUE THEN
FAILED("IS_OPEN RETURNS TRUE AFTER DELETE");
END IF;
EXCEPTION
WHEN USE_ERROR =>
IF IS_OPEN (TEST_FILE_TWO) /= FALSE THEN
FAILED ("FILE OPEN AFTER USE_ERROR " &
"DURING DELETE");
END IF;
END;
RESULT;
EXCEPTION
WHEN INCOMPLETE =>
RESULT;
END CE3107B;