WITH REPORT;
USE REPORT;
WITH TEXT_IO;
USE TEXT_IO;
PROCEDURE CE3102D IS
INCOMPLETE : EXCEPTION;
FILE : FILE_TYPE;
FT : FILE_TYPE;
BEGIN
TEST ("CE3102D" , "CHECK THAT STATUS_ERROR IS RAISED " &
"APPROPRIATELY FOR TEXT FILES");
BEGIN
CREATE (FT);
CLOSE (FT);
EXCEPTION
WHEN USE_ERROR =>
NULL;
WHEN OTHERS =>
FAILED ("OTHER EXCEPTION RAISED FOR CREATE");
END;
BEGIN
RESET (FT);
FAILED ("STATUS_ERROR NOT RAISED FOR RESET");
EXCEPTION
WHEN STATUS_ERROR =>
NULL;
WHEN USE_ERROR =>
FAILED ("USE_ERROR RAISED FOR RESET OF CLOSED FILE");
WHEN OTHERS =>
FAILED ("OTHER EXCEPTION RAISED FOR RESET");
END;
BEGIN
DECLARE
MD : FILE_MODE := MODE (FT);
BEGIN
FAILED ("STATUS_ERROR NOT RAISED FOR MODE");
END;
EXCEPTION
WHEN STATUS_ERROR =>
NULL;
WHEN USE_ERROR =>
FAILED ("USE_ERROR RAISED FOR MODE OF CLOSED FILE");
WHEN OTHERS =>
FAILED ("OTHER EXCEPTION RAISED FOR MODE");
END;
BEGIN
DECLARE
NM : CONSTANT STRING := NAME (FT);
BEGIN
FAILED ("STATUS_ERROR NOT RAISED FOR NAME");
END;
EXCEPTION
WHEN STATUS_ERROR =>
NULL;
WHEN USE_ERROR =>
FAILED ("USE_ERROR RAISED FOR NAME OF CLOSED FILE");
WHEN OTHERS =>
FAILED ("OTHER EXCEPTION RAISED FOR NAME");
END;
BEGIN
DECLARE
FM : CONSTANT STRING := FORM (FT);
BEGIN
FAILED ("STATUS_ERROR NOT RAISED FOR FORM");
END;
EXCEPTION
WHEN STATUS_ERROR =>
NULL;
WHEN USE_ERROR =>
FAILED ("USE_ERROR RAISED FOR FORM OF CLOSED FILE");
WHEN OTHERS =>
FAILED ("OTHER EXCEPTION RAISED FOR FORM");
END;
BEGIN
CLOSE (FT);
FAILED ("STATUS_ERROR NOT RAISED FOR CLOSE");
EXCEPTION
WHEN STATUS_ERROR =>
NULL;
WHEN USE_ERROR =>
FAILED ("USE_ERROR RAISED WHEN CLOSING CLOSED FILE");
WHEN OTHERS =>
FAILED ("OTHER EXCEPTION RAISED FOR CLOSE");
END;
BEGIN
DELETE (FT);
FAILED ("STATUS_ERROR NOT RAISED FOR DELETE");
EXCEPTION
WHEN STATUS_ERROR =>
NULL;
WHEN USE_ERROR =>
FAILED ("USE_ERROR RAISED FOR DELETE OF CLOSED FILE");
WHEN OTHERS =>
FAILED ("OTHER EXCEPTION RAISED FOR DELETE");
END;
RESULT;
EXCEPTION
WHEN INCOMPLETE =>
RESULT;
END CE3102D;