aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/ada/acats/tests/ca/ca11011.a
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/ada/acats/tests/ca/ca11011.a')
-rw-r--r--gcc/testsuite/ada/acats/tests/ca/ca11011.a271
1 files changed, 0 insertions, 271 deletions
diff --git a/gcc/testsuite/ada/acats/tests/ca/ca11011.a b/gcc/testsuite/ada/acats/tests/ca/ca11011.a
deleted file mode 100644
index a75261dd840..00000000000
--- a/gcc/testsuite/ada/acats/tests/ca/ca11011.a
+++ /dev/null
@@ -1,271 +0,0 @@
--- CA11011.A
---
--- 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 a private child package can use entities declared in the
--- private part of the parent unit of its parent unit.
---
--- TEST DESCRIPTION:
--- Declare a parent package containing private types and objects
--- used by the system. Declare a public child package that
--- provides a visible interface to the system functionality.
--- Declare a private grandchild package that uses the visible grandparent
--- components to provide the actual functionality to the system.
---
--- The public child (parent of the private grandchild) uses the
--- functionality of its private child (grandchild package) to provide
--- the visible interface to operations of the system.
---
--- The test itself will utilize the visible interface provided in the
--- public child package to demonstrate a possible solution to file
--- management.
---
---
--- CHANGE HISTORY:
--- 06 Dec 94 SAIC ACVC 2.0
---
---!
-
-package CA11011_0 is -- Package OS.
-
- type File_Descriptor_Type is private;
-
- Default_Descriptor : constant File_Descriptor_Type;
- First_File : constant File_Descriptor_Type;
-
- procedure Verify_Initial_Conditions (Key : in File_Descriptor_Type;
- Status : out Boolean);
-
- function Final_Conditions_Valid (Key : File_Descriptor_Type)
- return Boolean;
-
-
-private
-
- type File_Descriptor_Type is new Integer;
- type File_Name_Type is new String (1 .. 11);
- type Permission_Type is (None, User, System);
- type File_Mode_Type is (Read_Only, Write_Only, Read_Write);
- type File_Status_Type is (Open, Closed);
-
- Default_Descriptor : constant File_Descriptor_Type := 0;
- First_File : constant File_Descriptor_Type := 1;
- Default_Permission : constant Permission_Type := None;
- Default_Mode : constant File_Mode_Type := Read_Only;
- Default_Status : constant File_Status_Type := Closed;
- Default_Filename : constant File_Name_Type := " ";
-
- Init_Permission : constant Permission_Type := User;
- Init_Mode : constant File_Mode_Type := Read_Write;
- Init_Status : constant File_Status_Type := Open;
- An_Ada_File_Name : constant File_Name_Type := "AdaFileName";
-
- Max_Files : constant File_Descriptor_Type := 10;
-
- type File_Type is tagged
- record
- Descriptor : File_Descriptor_Type := Default_Descriptor;
- Name : File_Name_Type := Default_Filename;
- Acct_Access : Permission_Type := Default_Permission;
- Mode : File_Mode_Type := Default_Mode;
- Current_Status : File_Status_Type := Default_Status;
- end record;
-
- type File_Array_Type is array (1 .. Max_Files) of File_Type;
-
- File_Table : File_Array_Type;
- File_Counter : Integer := 0;
-
- --
-
- function Get_File_Name return File_Name_Type;
-
-end CA11011_0; -- Package OS.
-
- --=================================================================--
-
-package body CA11011_0 is -- Package body OS.
-
- function Get_File_Name return File_Name_Type is
- begin
- return (An_Ada_File_Name);
- end Get_File_Name;
- ---------------------------------------------------------------------
- procedure Verify_Initial_Conditions (Key : in File_Descriptor_Type;
- Status : out Boolean) is
- begin
- Status := False;
- if (File_Table(Key).Descriptor = Default_Descriptor) and then
- (File_Table(Key).Name = Default_Filename) and then
- (File_Table(Key).Acct_Access = Default_Permission) and then
- (File_Table(Key).Mode = Default_Mode) and then
- (File_Table(Key).Current_Status = Default_Status)
- then
- Status := True;
- end if;
- end Verify_Initial_Conditions;
- ---------------------------------------------------------------------
- function Final_Conditions_Valid (Key : File_Descriptor_Type)
- return Boolean is
- begin
- if ((File_Table(Key).Descriptor = First_File) and then
- (File_Table(Key).Name = An_Ada_File_Name) and then
- (File_Table(Key).Acct_Access = Init_Permission) and then
- not ((File_Table(Key).Mode = Default_Mode) or else
- (File_Table(Key).Current_Status = Default_Status)))
- then
- return (True);
- else
- return (False);
- end if;
- end Final_Conditions_Valid;
-
-end CA11011_0; -- Package body OS.
-
- --=================================================================--
-
-package CA11011_0.CA11011_1 is -- Package OS.File_Manager
-
- procedure Create_File (File_Key : in File_Descriptor_Type);
-
-end CA11011_0.CA11011_1; -- Package OS.File_Manager
-
- --=================================================================--
-
--- The Subprogram that performs the actual file operations is contained in a
--- private package so that it is not accessible to any client.
--- Default parameters are used in most cases in the subprogram calls, since
--- the caller does not have visibility to these private types.
-
- -- Package OS.File_Manager.Internals
-private package CA11011_0.CA11011_1.CA11011_2 is
-
- Private_File_Counter : Integer renames File_Counter; -- Grandparent
- -- object.
- procedure Create
- (Key : in File_Descriptor_Type;
- File_Name : in File_Name_Type := Get_File_Name; -- Grandparent
- -- prvt type,
- -- prvt functn.
- File_Mode : in File_Mode_Type := Init_Mode; -- Grandparent
- -- prvt type,
- -- prvt const.
- File_Access : in Permission_Type := Init_Permission; -- Grandparent
- -- prvt type,
- -- prvt const.
- File_Status : in File_Status_Type := Init_Status); -- Grandparent
- -- prvt type,
- -- prvt const.
-
-end CA11011_0.CA11011_1.CA11011_2; -- Package OS.File_Manager.Internals
-
- --=================================================================--
-
- -- Package Body OS.File_Manager.Internals
-package body CA11011_0.CA11011_1.CA11011_2 is
-
- procedure Create
- (Key : in File_Descriptor_Type;
- File_Name : in File_Name_Type := Get_File_Name;
- File_Mode : in File_Mode_Type := Init_Mode;
- File_Access : in Permission_Type := Init_Permission;
- File_Status : in File_Status_Type := Init_Status) is
- begin
- Private_File_Counter := Private_File_Counter + 1;
- File_Table(Key).Descriptor := Key; -- Grandparent object.
- File_Table(Key).Name := File_Name;
- File_Table(Key).Mode := File_Mode;
- File_Table(Key).Acct_Access := File_Access;
- File_Table(Key).Current_Status := File_Status;
- end Create;
-
-end CA11011_0.CA11011_1.CA11011_2; -- Package body OS.File_Manager.Internals
-
- --=================================================================--
-
-with CA11011_0.CA11011_1.CA11011_2; -- with Child OS.File_Manager.Internals
-
-package body CA11011_0.CA11011_1 is -- Package body OS.File_Manager
-
- package Internal renames CA11011_0.CA11011_1.CA11011_2;
-
- -- This subprogram utilizes a call to a subprogram contained in a private
- -- child to perform the actual processing.
-
- procedure Create_File (File_Key : in File_Descriptor_Type) is
- begin
- Internal.Create (Key => File_Key); -- Other parameters are defaults,
- -- since they are of private types
- -- from the parent package.
- -- File_Descriptor_Type is private,
- -- but declared in visible part of
- -- parent spec.
- end Create_File;
-
-end CA11011_0.CA11011_1; -- Package body OS.File_Manager
-
- --=================================================================--
-
-with CA11011_0.CA11011_1; -- with public Child Package OS.File_Manager
-with Report;
-
-procedure CA11011 is
-
- package OS renames CA11011_0;
- package File_Manager renames CA11011_0.CA11011_1;
-
- Data_Base_File_Key : OS.File_Descriptor_Type := OS.First_File;
- TC_Status : Boolean := False;
-
-begin
-
- -- This test indicates one approach to file management operations.
- -- It is not intended to demonstrate full functionality, but rather
- -- that the use of a private child package can provide a solution
- -- to a typical user situation.
-
- Report.Test ("CA11011", "Check that a private child package can use " &
- "entities declared in the private part of the " &
- "parent unit of its parent unit");
-
- OS.Verify_Initial_Conditions (Data_Base_File_Key, TC_Status);
-
- if not TC_Status then
- Report.Failed ("Initial condition failure");
- end if;
-
- -- Perform file initializations.
-
- File_Manager.Create_File (File_Key => Data_Base_File_Key);
-
- TC_Status := OS.Final_Conditions_Valid (Data_Base_File_Key);
-
- if not TC_Status then
- Report.Failed ("Bad status return from Create_File");
- end if;
-
- Report.Result;
-
-end CA11011;