WITH REPORT; USE REPORT;
WITH SEQUENTIAL_IO;
PROCEDURE CE2102A IS
PACKAGE SEQ_IO IS NEW SEQUENTIAL_IO(INTEGER);
USE SEQ_IO;
TEST_FILE_ONE : SEQ_IO.FILE_TYPE;
BEGIN
TEST ("CE2102A", "CHECK THAT STATUS_ERROR IS RAISED WHEN " &
"PERFORMING ILLEGAL OPERATIONS ON OPENED FILES " &
"OF TYPE SEQUENTIAL_IO");
BEGIN
CREATE (TEST_FILE_ONE, OUT_FILE, LEGAL_FILE_NAME);
BEGIN
OPEN (TEST_FILE_ONE, OUT_FILE, LEGAL_FILE_NAME);
FAILED ("STATUS_ERROR NOT RAISED WHEN FILE IS " &
"ALREADY OPEN - 1");
EXCEPTION
WHEN STATUS_ERROR =>
NULL;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED ON OPEN - 1");
END;
BEGIN
OPEN (TEST_FILE_ONE, IN_FILE, LEGAL_FILE_NAME);
FAILED ("STATUS_ERROR NOT RAISED WHEN FILE IS " &
"ALREADY OPEN - 2");
EXCEPTION
WHEN STATUS_ERROR =>
NULL;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED ON OPEN - 2");
END;
BEGIN
CREATE (TEST_FILE_ONE, IN_FILE, LEGAL_FILE_NAME);
FAILED ("STATUS_ERROR NOT RAISED WHEN AN OPEN " &
"FILE IS USED IN A CREATE - 1");
EXCEPTION
WHEN STATUS_ERROR =>
NULL;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED ON CREATE - 1");
END;
BEGIN
CREATE (TEST_FILE_ONE, OUT_FILE, LEGAL_FILE_NAME);
FAILED ("STATUS_ERROR NOT RAISED WHEN AN OPEN " &
"FILE IS USED IN A CREATE - 2");
EXCEPTION
WHEN STATUS_ERROR =>
NULL;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED ON CREATE - 2");
END;
BEGIN
DELETE (TEST_FILE_ONE);
EXCEPTION
WHEN USE_ERROR =>
COMMENT ("DELETION OF EXTERNAL FILE APPEARS NOT " &
"TO BE SUPPORTED");
WHEN OTHERS =>
FAILED ("UNEXPECTED EXCEPTION RAISED " &
"FOR DELETE");
END;
EXCEPTION
WHEN USE_ERROR =>
NOT_APPLICABLE ("USE_ERROR RAISED FOR CREATE " &
"WITH OUT_FILE MODE");
WHEN NAME_ERROR =>
NOT_APPLICABLE ("NAME_ERROR RAISED FOR CREATE " &
"WITH OUT_FILE MODE");
WHEN OTHERS =>
FAILED ("OTHER EXCEPTION RAISED FOR CREATE");
END;
RESULT;
END CE2102A;