blob: 800ed8aaed739dd1e9146866b7dc43b3bb1410f3 [file] [log] [blame]
-- CA110042.AM
--
-- 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 that the private part of a child library unit package can
-- utilize its parent unit's visible definitions.
--
-- TEST DESCRIPTION:
-- Declare a public library unit package and child package, with the
-- child package having a private part in the specification. Within
-- this child private part, make use of components that are declared in
-- the visible part of the parent.
--
-- Demonstrate visibility to the following parent components in the
-- child private part:
-- Parent
-- Type X
-- Constant X
-- Object X
-- Subprogram X
-- Exception X
--
--
-- TEST FILES:
-- The following files comprise this test:
--
-- CA110040.A
-- CA110041.A
-- => CA110042.AM
--
--
-- CHANGE HISTORY:
-- 06 Dec 94 SAIC ACVC 2.0
--
--!
with Report;
with CA110040.CA110041;
procedure CA110042 is
package System_Manager renames CA110040.CA110041;
use CA110040;
User1, User2, User3 : System_Manager.User_Account;
begin
Report.Test ("CA110042", "Check that the private part of a child " &
"library unit package can utilize its " &
"parent unit's visible definitions");
Assign_New_Accounts: -- This code simulates the entering of new
-- user accounts into a computer system.
-- It also simulates the processing that
-- could occur when the limit on system
-- accounts has been exceeded.
-- This processing block demonstrates the
-- use of child package functionality that
-- takes advantage of components declared in
-- the parent package.
begin
if Total_Accounts /= 2 then
Report.Failed ("Incorrect number of accounts currently allocated");
end if; -- At this point, both
-- System_Account and
-- Auditor_Account have
-- been declared and
-- initialized in package
-- CA110040.CA110041.
System_Manager.Initialize_User_Account (User1); -- User_ID has been
-- set to 3.
System_Manager.Initialize_User_Account (User2); -- User_ID has been
-- set to 4, which
-- is the last value
-- defined for the
-- CA110040.ID_Type
-- range.
System_Manager.Initialize_User_Account (User3); -- This final call will
-- result in an
-- Account_Limit_Exceeded
-- exception being raised.
Report.Failed ("Control should have transferred with exception");
exception
when Account_Limit_Exceeded =>
if (not (Administrator_Account.User_ID = ID_Type'First)) or
(User2.User_ID /= CA110040.ID_Type'Last)
then
Report.Failed ("Account initialization failure");
end if;
when others =>
Report.Failed ("Unexpected exception raised");
end Assign_New_Accounts;
if (User1.User_ID /= 3) or (User2.User_ID /= 4) then
Report.Failed ("Improper initialization of user accounts");
end if;
Report.Result;
end CA110042;