blob: d8f65084ce5fbdc05146e3992342abbebab7f590 [file] [log] [blame]
-- C74407B.ADA
-- Grant of Unlimited Rights
--
-- 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
-- unlimited rights in the software and documentation contained herein.
-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
-- this public release, the Government intends to confer upon all
-- recipients unlimited rights equal to those held by the Government.
-- These rights include rights to use, duplicate, release or disclose the
-- 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
-- to do so.
--
-- DISCLAIMER
--
-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
-- PARTICULAR PURPOSE OF SAID MATERIAL.
--*
-- OBJECTIVE:
-- CHECK, FOR A LIMITED PRIVATE TYPE, THAT PRE-DEFINED EQUALITY AND
-- ASSIGNMENT ARE DEFINED AND AVAILABLE WITHIN THE PRIVATE PART AND
-- THE BODY OF A PACKAGE, AFTER THE FULL DECLARATION, IF THE FULL
-- DECLARATION IS NOT LIMITED.
-- HISTORY:
-- BCB 07/15/88 CREATED ORIGINAL TEST.
WITH REPORT; USE REPORT;
PROCEDURE C74407B IS
PACKAGE PP IS
TYPE PRIV IS PRIVATE;
C1 : CONSTANT PRIV;
C2 : CONSTANT PRIV;
PRIVATE
TYPE PRIV IS (ONE, TWO, THREE, FOUR, FIVE, SIX);
C1 : CONSTANT PRIV := ONE;
C2 : CONSTANT PRIV := TWO;
END PP;
USE PP;
PACKAGE P IS
TYPE INT IS LIMITED PRIVATE;
TYPE COMP IS LIMITED PRIVATE;
TYPE DER IS LIMITED PRIVATE;
PRIVATE
TYPE INT IS RANGE 1 .. 100;
TYPE COMP IS ARRAY(1..5) OF INTEGER;
TYPE DER IS NEW PRIV;
D, E : INT := 10;
F : INT := 20;
CONS_INT1 : CONSTANT INT := 30;
G : BOOLEAN := D = E;
H : BOOLEAN := D /= F;
CONS_BOOL1 : CONSTANT BOOLEAN := D = E;
CONS_BOOL2 : CONSTANT BOOLEAN := D /= F;
I : COMP := (1,2,3,4,5);
CONS_COMP1 : CONSTANT COMP := (6,7,8,9,10);
J : DER := DER(C1);
CONS_DER1 : CONSTANT DER := DER(C2);
END P;
PACKAGE BODY P IS
A, B, C : INT;
X, Y, Z : COMP;
L, M, N : DER;
CONS_INT2 : CONSTANT INT := 10;
CONS_COMP2 : CONSTANT COMP := (1,2,3,4,5);
CONS_DER2 : CONSTANT DER := DER(C1);
BEGIN
TEST ("C74407B", "CHECK, FOR A LIMITED PRIVATE TYPE, THAT " &
"PRE-DEFINED EQUALITY AND ASSIGNMENT ARE " &
"DEFINED AND AVAILABLE WITHIN THE PRIVATE " &
"PART AND THE BODY OF A PACKAGE, AFTER " &
"THE FULL DECLARATION, IF THE FULL " &
"DECLARATION IS NOT LIMITED");
A := 10;
B := 10;
C := 20;
IF A = C THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
"OPERATION WITHIN THE PACKAGE BODY - 1");
END IF;
IF A /= B THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
"OPERATION WITHIN THE PACKAGE BODY - 1");
END IF;
IF CONS_INT2 = C THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
"OPERATION WITHIN THE PACKAGE BODY - 2");
END IF;
IF CONS_INT2 /= B THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
"OPERATION WITHIN THE PACKAGE BODY - 2");
END IF;
IF NOT G THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
"OPERATION WITHIN THE PRIVATE PART OF THE " &
"PACKAGE - 1");
END IF;
IF NOT H THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
"OPERATION WITHIN THE PRIVATE PART OF THE " &
"PACKAGE - 1");
END IF;
IF NOT CONS_BOOL1 THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
"OPERATION WITHIN THE PRIVATE PART OF THE " &
"PACKAGE - 2");
END IF;
IF NOT CONS_BOOL2 THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
"OPERATION WITHIN THE PRIVATE PART OF THE " &
"PACKAGE - 2");
END IF;
X := (1,2,3,4,5);
Y := (1,2,3,4,5);
Z := (5,4,3,2,1);
IF X = Z THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
"OPERATION WITHIN THE PACKAGE BODY - 3");
END IF;
IF X /= Y THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
"OPERATION WITHIN THE PACKAGE BODY - 3");
END IF;
IF CONS_COMP2 = Z THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
"OPERATION WITHIN THE PACKAGE BODY - 4");
END IF;
IF CONS_COMP2 /= Y THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
"OPERATION WITHIN THE PACKAGE BODY - 4");
END IF;
L := DER(C1);
M := DER(C1);
N := DER(C2);
IF L = N THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
"OPERATION WITHIN THE PACKAGE BODY - 5");
END IF;
IF L /= M THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
"OPERATION WITHIN THE PACKAGE BODY - 5");
END IF;
IF CONS_DER2 = N THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
"OPERATION WITHIN THE PACKAGE BODY - 6");
END IF;
IF CONS_DER2 /= M THEN
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
"OPERATION WITHIN THE PACKAGE BODY - 6");
END IF;
RESULT;
END P;
USE P;
BEGIN
NULL;
END C74407B;