with Impdef;
WITH REPORT; USE REPORT;
PROCEDURE C95008A IS
C_E_NOT_RAISED : BOOLEAN;
WRONG_EXC_RAISED : BOOLEAN;
BEGIN
TEST ("C95008A", "OUT-OF-RANGE ENTRY FAMILY INDICES IN " &
"ACCEPT_STATEMENTS AND ENTRY_CALLS");
C_E_NOT_RAISED := FALSE;
WRONG_EXC_RAISED := FALSE;
DECLARE
TASK T IS
ENTRY E (1..10);
ENTRY CONTINUE;
END T;
TASK BODY T IS
BEGIN
ACCEPT CONTINUE;
SELECT
ACCEPT E (0);
OR
DELAY 1.0 * Impdef.One_Second;
END SELECT;
C_E_NOT_RAISED := TRUE;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
NULL;
WHEN OTHERS =>
WRONG_EXC_RAISED := TRUE;
END T;
BEGIN
SELECT
T.E (0);
OR
DELAY 15.0 * Impdef.One_Second;
END SELECT;
FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
"ENTRY_CALL - (A)");
T.CONTINUE;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
T.CONTINUE;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED IN " &
"ENTRY_CALL - (A)");
T.CONTINUE;
END;
IF C_E_NOT_RAISED THEN
FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
"ACCEPT_STATEMENT - (A)");
END IF;
IF WRONG_EXC_RAISED THEN
FAILED ("WRONG EXCEPTION RAISED IN " &
"ACCEPT_STATEMENT - (A)");
END IF;
C_E_NOT_RAISED := FALSE;
WRONG_EXC_RAISED := FALSE;
DECLARE
TASK T IS
ENTRY E (CHARACTER RANGE 'A'..'Y');
ENTRY CONTINUE;
END T;
TASK BODY T IS
BEGIN
ACCEPT CONTINUE;
SELECT
ACCEPT E (IDENT_CHAR('Z'));
OR
DELAY 1.0 * Impdef.One_Second;
END SELECT;
C_E_NOT_RAISED := TRUE;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
NULL;
WHEN OTHERS =>
WRONG_EXC_RAISED := TRUE;
END T;
BEGIN
SELECT
T.E (IDENT_CHAR('Z'));
OR
DELAY 15.0 * Impdef.One_Second;
END SELECT;
FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
"ENTRY_CALL - (B)");
T.CONTINUE;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
T.CONTINUE;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED IN " &
"ENTRY_CALL - (B)");
T.CONTINUE;
END;
IF C_E_NOT_RAISED THEN
FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
"ACCEPT_STATEMENT - (B)");
END IF;
IF WRONG_EXC_RAISED THEN
FAILED ("WRONG EXCEPTION RAISED IN " &
"ACCEPT_STATEMENT - (B)");
END IF;
C_E_NOT_RAISED := FALSE;
WRONG_EXC_RAISED := FALSE;
DECLARE
TASK T IS
ENTRY E (TRUE..FALSE);
ENTRY CONTINUE;
END T;
TASK BODY T IS
BEGIN
ACCEPT CONTINUE;
SELECT
ACCEPT E (FALSE);
OR
DELAY 1.0 * Impdef.One_Second;
END SELECT;
C_E_NOT_RAISED := TRUE;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
NULL;
WHEN OTHERS =>
WRONG_EXC_RAISED := TRUE;
END T;
BEGIN
SELECT
T.E (TRUE);
OR
DELAY 15.0 * Impdef.One_Second;
END SELECT;
FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
"ENTRY_CALL - (C)");
T.CONTINUE;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
T.CONTINUE;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED IN " &
"ENTRY_CALL - (C)");
T.CONTINUE;
END;
IF C_E_NOT_RAISED THEN
FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
"ACCEPT_STATEMENT - (C)");
END IF;
IF WRONG_EXC_RAISED THEN
FAILED ("WRONG EXCEPTION RAISED IN " &
"ACCEPT_STATEMENT - (C)");
END IF;
C_E_NOT_RAISED := FALSE;
WRONG_EXC_RAISED := FALSE;
DECLARE
TYPE ET IS (E0, E1, E2);
DLB : ET := ET'VAL (IDENT_INT(1));
TASK T IS
ENTRY E (ET RANGE DLB..E2) (I : INTEGER);
ENTRY CONTINUE;
END T;
TASK BODY T IS
BEGIN
ACCEPT CONTINUE;
SELECT
ACCEPT E (E0) (I : INTEGER);
OR
DELAY 1.0 * Impdef.One_Second;
END SELECT;
C_E_NOT_RAISED := TRUE;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
NULL;
WHEN OTHERS =>
WRONG_EXC_RAISED := TRUE;
END T;
BEGIN
SELECT
T.E (E0) (0);
OR
DELAY 15.0 * Impdef.One_Second;
END SELECT;
FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
"ENTRY_CALL - (D)");
T.CONTINUE;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
T.CONTINUE;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED IN " &
"ENTRY_CALL - (D)");
T.CONTINUE;
END;
IF C_E_NOT_RAISED THEN
FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
"ACCEPT_STATEMENT - (D)");
END IF;
IF WRONG_EXC_RAISED THEN
FAILED ("WRONG EXCEPTION RAISED IN " &
"ACCEPT_STATEMENT - (D)");
END IF;
C_E_NOT_RAISED := FALSE;
WRONG_EXC_RAISED := FALSE;
DECLARE
TYPE D_I IS NEW INTEGER;
SUBTYPE DI IS D_I RANGE 3 .. D_I(IDENT_INT(2));
TASK T IS
ENTRY E (DI) (I : INTEGER);
ENTRY CONTINUE;
END T;
TASK BODY T IS
BEGIN
ACCEPT CONTINUE;
SELECT
ACCEPT E (D_I(3)) (I : INTEGER);
OR
DELAY 1.0 * Impdef.One_Second;
END SELECT;
C_E_NOT_RAISED := TRUE;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
NULL;
WHEN OTHERS =>
WRONG_EXC_RAISED := TRUE;
END T;
BEGIN
SELECT
T.E (D_I(2)) (0);
OR
DELAY 15.0 * Impdef.One_Second;
END SELECT;
FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
"ENTRY_CALL - (E)");
T.CONTINUE;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
T.CONTINUE;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED IN " &
"ENTRY_CALL - (E)");
T.CONTINUE;
END;
IF C_E_NOT_RAISED THEN
FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
"ACCEPT_STATEMENT - (E)");
END IF;
IF WRONG_EXC_RAISED THEN
FAILED ("WRONG EXCEPTION RAISED IN " &
"ACCEPT_STATEMENT - (E)");
END IF;
C_E_NOT_RAISED := FALSE;
WRONG_EXC_RAISED := FALSE;
DECLARE
TYPE ET IS (E0, E1, E2);
TYPE D_ET IS NEW ET;
TASK T IS
ENTRY E (D_ET RANGE E0..E1) (I : INTEGER);
ENTRY CONTINUE;
END T;
TASK BODY T IS
BEGIN
ACCEPT CONTINUE;
SELECT
ACCEPT E (D_ET'(E2)) (I : INTEGER);
OR
DELAY 1.0 * Impdef.One_Second;
END SELECT;
C_E_NOT_RAISED := TRUE;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
NULL;
WHEN OTHERS =>
WRONG_EXC_RAISED := TRUE;
END T;
BEGIN
SELECT
T.E (D_ET'(E2)) (0);
OR
DELAY 15.0 * Impdef.One_Second;
END SELECT;
FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
"ENTRY_CALL - (F)");
T.CONTINUE;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
T.CONTINUE;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED IN " &
"ENTRY_CALL - (F)");
T.CONTINUE;
END;
IF C_E_NOT_RAISED THEN
FAILED ("CONSTRAINT_ERROR NOT RAISED IN " &
"ACCEPT_STATEMENT - (F)");
END IF;
IF WRONG_EXC_RAISED THEN
FAILED ("WRONG EXCEPTION RAISED IN " &
"ACCEPT_STATEMENT - (F)");
END IF;
RESULT;
END C95008A;