WITH REPORT; USE REPORT;
WITH DIRECT_IO;
PROCEDURE CE2102B IS
PACKAGE DIR_IO IS NEW DIRECT_IO(INTEGER);
USE DIR_IO;
TEST_FILE_ONE : DIR_IO.FILE_TYPE;
BEGIN
TEST ("CE2102B", "CHECK THAT STATUS_ERROR IS RAISED WHEN " &
"PERFORMING ILLEGAL OPERATIONS ON FILES " &
"OF TYPE DIRECT_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
OPEN (TEST_FILE_ONE, INOUT_FILE, LEGAL_FILE_NAME);
FAILED ("STATUS_ERROR NOT RAISED WHEN FILE IS " &
"ALREADY OPEN - 3");
EXCEPTION
WHEN STATUS_ERROR =>
NULL;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED ON OPEN - 3");
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
CREATE (TEST_FILE_ONE, INOUT_FILE, LEGAL_FILE_NAME);
FAILED ("STATUS_ERROR NOT RAISED WHEN AN OPEN " &
"FILE IS USED IN A CREATE - 3");
EXCEPTION
WHEN STATUS_ERROR =>
NULL;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED ON CREATE - 3");
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 CE2102B;