-- CD2A91C.TST
|
-- CD2A91C.TST
|
|
|
-- Grant of Unlimited Rights
|
-- Grant of Unlimited Rights
|
--
|
--
|
-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
|
-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
|
-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
|
-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
|
-- unlimited rights in the software and documentation contained herein.
|
-- unlimited rights in the software and documentation contained herein.
|
-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
|
-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
|
-- this public release, the Government intends to confer upon all
|
-- this public release, the Government intends to confer upon all
|
-- recipients unlimited rights equal to those held by the Government.
|
-- recipients unlimited rights equal to those held by the Government.
|
-- These rights include rights to use, duplicate, release or disclose the
|
-- These rights include rights to use, duplicate, release or disclose the
|
-- released technical data and computer software in whole or in part, in
|
-- released technical data and computer software in whole or in part, in
|
-- any manner and for any purpose whatsoever, and to have or permit others
|
-- any manner and for any purpose whatsoever, and to have or permit others
|
-- to do so.
|
-- to do so.
|
--
|
--
|
-- DISCLAIMER
|
-- DISCLAIMER
|
--
|
--
|
-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
|
-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
|
-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
|
-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
|
-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
|
-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
|
-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
|
-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
|
-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
|
-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
|
-- PARTICULAR PURPOSE OF SAID MATERIAL.
|
-- PARTICULAR PURPOSE OF SAID MATERIAL.
|
--*
|
--*
|
-- OBJECTIVE:
|
-- OBJECTIVE:
|
-- CHECK THAT A SIZE SPECIFICATION FOR A TASK TYPE CAN BE GIVEN IN
|
-- CHECK THAT A SIZE SPECIFICATION FOR A TASK TYPE CAN BE GIVEN IN
|
-- THE VISIBLE OR PRIVATE PART OF A PACKAGE.
|
-- THE VISIBLE OR PRIVATE PART OF A PACKAGE.
|
|
|
-- MACRO SUBSTITUTION:
|
-- MACRO SUBSTITUTION:
|
-- $TASK_SIZE IS THE NUMBER OF BITS NEEDED BY THE IMPLEMENTATION TO
|
-- $TASK_SIZE IS THE NUMBER OF BITS NEEDED BY THE IMPLEMENTATION TO
|
-- HOLD ANY POSSIBLE OBJECT OF THE TASK TYPE "BASIC_TYPE".
|
-- HOLD ANY POSSIBLE OBJECT OF THE TASK TYPE "BASIC_TYPE".
|
|
|
-- HISTORY:
|
-- HISTORY:
|
-- BCB 09/08/87 CREATED ORIGINAL TEST.
|
-- BCB 09/08/87 CREATED ORIGINAL TEST.
|
-- RJW 05/12/89 MODIFIED CHECKS INVOLVING 'SIZE ATTRIBUTE.
|
-- RJW 05/12/89 MODIFIED CHECKS INVOLVING 'SIZE ATTRIBUTE.
|
-- REMOVED APPLICABILTY CRITERIA.
|
-- REMOVED APPLICABILTY CRITERIA.
|
-- DTN 11/20/91 DELETED SUBPARTS (B and C).
|
-- DTN 11/20/91 DELETED SUBPARTS (B and C).
|
|
|
WITH REPORT; USE REPORT;
|
WITH REPORT; USE REPORT;
|
PROCEDURE CD2A91C IS
|
PROCEDURE CD2A91C IS
|
|
|
BASIC_SIZE : CONSTANT := $TASK_SIZE;
|
BASIC_SIZE : CONSTANT := $TASK_SIZE;
|
|
|
VAL : INTEGER := 1;
|
VAL : INTEGER := 1;
|
|
|
TASK TYPE BASIC_TYPE IS
|
TASK TYPE BASIC_TYPE IS
|
ENTRY HERE(NUM : IN OUT INTEGER);
|
ENTRY HERE(NUM : IN OUT INTEGER);
|
END BASIC_TYPE;
|
END BASIC_TYPE;
|
|
|
FOR BASIC_TYPE'SIZE USE BASIC_SIZE;
|
FOR BASIC_TYPE'SIZE USE BASIC_SIZE;
|
|
|
BASIC_TASK : BASIC_TYPE;
|
BASIC_TASK : BASIC_TYPE;
|
|
|
PACKAGE P IS
|
PACKAGE P IS
|
TASK TYPE TASK_IN_P IS
|
TASK TYPE TASK_IN_P IS
|
ENTRY HERE(NUM : IN OUT INTEGER);
|
ENTRY HERE(NUM : IN OUT INTEGER);
|
END TASK_IN_P;
|
END TASK_IN_P;
|
FOR TASK_IN_P'SIZE USE BASIC_SIZE;
|
FOR TASK_IN_P'SIZE USE BASIC_SIZE;
|
TASK TYPE ALT_TASK_IN_P IS
|
TASK TYPE ALT_TASK_IN_P IS
|
ENTRY HERE(NUM : IN OUT INTEGER);
|
ENTRY HERE(NUM : IN OUT INTEGER);
|
END ALT_TASK_IN_P;
|
END ALT_TASK_IN_P;
|
PRIVATE
|
PRIVATE
|
FOR ALT_TASK_IN_P'SIZE USE BASIC_SIZE;
|
FOR ALT_TASK_IN_P'SIZE USE BASIC_SIZE;
|
END P;
|
END P;
|
|
|
USE P;
|
USE P;
|
|
|
ALT_TASK : ALT_TASK_IN_P;
|
ALT_TASK : ALT_TASK_IN_P;
|
IN_TASK : TASK_IN_P;
|
IN_TASK : TASK_IN_P;
|
|
|
TASK BODY BASIC_TYPE IS
|
TASK BODY BASIC_TYPE IS
|
BEGIN
|
BEGIN
|
SELECT
|
SELECT
|
ACCEPT HERE(NUM : IN OUT INTEGER) DO
|
ACCEPT HERE(NUM : IN OUT INTEGER) DO
|
NUM := 0;
|
NUM := 0;
|
END HERE;
|
END HERE;
|
OR
|
OR
|
TERMINATE;
|
TERMINATE;
|
END SELECT;
|
END SELECT;
|
END BASIC_TYPE;
|
END BASIC_TYPE;
|
|
|
PACKAGE BODY P IS
|
PACKAGE BODY P IS
|
TASK BODY TASK_IN_P IS
|
TASK BODY TASK_IN_P IS
|
BEGIN
|
BEGIN
|
SELECT
|
SELECT
|
ACCEPT HERE(NUM : IN OUT INTEGER) DO
|
ACCEPT HERE(NUM : IN OUT INTEGER) DO
|
NUM := 0;
|
NUM := 0;
|
END HERE;
|
END HERE;
|
OR
|
OR
|
TERMINATE;
|
TERMINATE;
|
END SELECT;
|
END SELECT;
|
END TASK_IN_P;
|
END TASK_IN_P;
|
TASK BODY ALT_TASK_IN_P IS
|
TASK BODY ALT_TASK_IN_P IS
|
BEGIN
|
BEGIN
|
SELECT
|
SELECT
|
ACCEPT HERE(NUM : IN OUT INTEGER) DO
|
ACCEPT HERE(NUM : IN OUT INTEGER) DO
|
NUM := 0;
|
NUM := 0;
|
END HERE;
|
END HERE;
|
OR
|
OR
|
TERMINATE;
|
TERMINATE;
|
END SELECT;
|
END SELECT;
|
END ALT_TASK_IN_P;
|
END ALT_TASK_IN_P;
|
END P;
|
END P;
|
|
|
BEGIN
|
BEGIN
|
TEST ("CD2A91C", "CHECK THAT A SIZE SPECIFICATION FOR A TASK " &
|
TEST ("CD2A91C", "CHECK THAT A SIZE SPECIFICATION FOR A TASK " &
|
"TYPE CAN BE GIVEN IN THE VISIBLE OR PRIVATE " &
|
"TYPE CAN BE GIVEN IN THE VISIBLE OR PRIVATE " &
|
"PART OF A PACKAGE");
|
"PART OF A PACKAGE");
|
|
|
BASIC_TASK.HERE(VAL);
|
BASIC_TASK.HERE(VAL);
|
|
|
IF VAL /= IDENT_INT (0) THEN
|
IF VAL /= IDENT_INT (0) THEN
|
FAILED ("INCORRECT RESULTS FROM ENTRY CALL - 1");
|
FAILED ("INCORRECT RESULTS FROM ENTRY CALL - 1");
|
END IF;
|
END IF;
|
|
|
VAL := 1;
|
VAL := 1;
|
|
|
ALT_TASK.HERE(VAL);
|
ALT_TASK.HERE(VAL);
|
|
|
IF VAL /= IDENT_INT (0) THEN
|
IF VAL /= IDENT_INT (0) THEN
|
FAILED ("INCORRECT RESULTS FROM ENTRY CALL - 2");
|
FAILED ("INCORRECT RESULTS FROM ENTRY CALL - 2");
|
END IF;
|
END IF;
|
|
|
VAL := 1;
|
VAL := 1;
|
|
|
IN_TASK.HERE(VAL);
|
IN_TASK.HERE(VAL);
|
|
|
IF VAL /= IDENT_INT (0) THEN
|
IF VAL /= IDENT_INT (0) THEN
|
FAILED ("INCORRECT RESULTS FROM ENTRY CALL - 3");
|
FAILED ("INCORRECT RESULTS FROM ENTRY CALL - 3");
|
END IF;
|
END IF;
|
|
|
|
|
RESULT;
|
RESULT;
|
END CD2A91C;
|
END CD2A91C;
|
|
|