WITH REPORT; USE REPORT;
PROCEDURE C85018A IS
BEGIN
TEST( "C85018A", "CHECK THAT AN ENTRY FAMILY MEMBER CAN BE " &
"RENAMED AND THAT THE NEW NAMES/DEFAULTS ARE " &
"THOSE ASSOCIATED WITH THE RENAMED ENTITY" );
DECLARE
RESULTS : INTEGER;
TYPE TA IS ARRAY(1 .. 5) OF INTEGER;
TASK T IS
ENTRY ENT1 (BOOLEAN)
(A : INTEGER := 1; B : TA := (1 .. 5 => 1));
END T;
PROCEDURE ENTA (C : INTEGER := 1; D : TA := (1 .. 5 => 1))
RENAMES T.ENT1 (TRUE);
PROCEDURE ENTB (B : INTEGER := 1; A : TA := (1 .. 5 => 1))
RENAMES T.ENT1 (TRUE);
PROCEDURE ENTC (A : INTEGER := 2; B : TA := (1, 2, 3, 4, 5))
RENAMES T.ENT1 (TRUE);
PROCEDURE ENTD (C : INTEGER := 2; D : TA := (1, 2, 3, 4, 5))
RENAMES T.ENT1 (TRUE);
TASK BODY T IS
BEGIN
LOOP
SELECT
ACCEPT ENT1 (IDENT_BOOL (TRUE))
(A : INTEGER := 1;
B : TA := (1 .. 5 => 1)) DO
IF A IN 1 .. 5 THEN
RESULTS := B(A);
ELSE
RESULTS := 0;
END IF;
END;
OR
TERMINATE;
END SELECT;
END LOOP;
END T;
BEGIN
T.ENT1 (TRUE);
IF RESULTS /= 1 THEN
FAILED ( "PARAMETERS NOT PROPERLY INITIALIZED" );
END IF;
T.ENT1 (TRUE) (A => 6);
IF RESULTS /= 0 THEN
FAILED ( "INCORRECT RESULTS" );
END IF;
ENTA;
IF RESULTS /= 1 THEN
FAILED ( "CASE 1 : INCORRECT RESULTS (DEFAULT)" );
END IF;
ENTA(D => (5, 4, 3, 2, 1));
IF RESULTS /= 5 THEN
FAILED ( "CASE 1 : INCORRECT RESULTS" );
END IF;
ENTB;
IF RESULTS /= 1 THEN
FAILED ( "CASE 1 : INCORRECT RESULTS (DEFAULT)" );
END IF;
ENTB(A => (5, 4, 3, 2, 1), B => 2);
IF RESULTS /= 4 THEN
FAILED ( "CASE 1 : INCORRECT RESULTS " );
END IF;
ENTC;
IF RESULTS /= 2 THEN
FAILED ( "CASE 2 : INCORRECT RESULTS (DEFAULT)" );
END IF;
ENTC(3);
IF RESULTS /= 3 THEN
FAILED ( "CASE 2 : INCORRECT RESULTS " );
END IF;
ENTD;
IF RESULTS /= 2 THEN
FAILED ( "CASE 2 : INCORRECT RESULTS (DEFAULT)" );
END IF;
ENTD(4);
IF RESULTS /= 4 THEN
FAILED ( "CASE 2 : INCORRECT RESULTS " );
END IF;
END;
RESULT;
END C85018A;