aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/ada/acats/tests/c3/c392a01.a
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/ada/acats/tests/c3/c392a01.a')
-rw-r--r--gcc/testsuite/ada/acats/tests/c3/c392a01.a265
1 files changed, 0 insertions, 265 deletions
diff --git a/gcc/testsuite/ada/acats/tests/c3/c392a01.a b/gcc/testsuite/ada/acats/tests/c3/c392a01.a
deleted file mode 100644
index 8ad78914231..00000000000
--- a/gcc/testsuite/ada/acats/tests/c3/c392a01.a
+++ /dev/null
@@ -1,265 +0,0 @@
--- C392A01.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 the use of a class-wide formal parameter allows for the
- -- proper dispatching of objects to the appropriate implementation of
- -- a primitive operation. Check this for the root tagged type defined
- -- in a package, and the extended type is defined in that same package.
- --
- -- TEST DESCRIPTION:
- -- Declare a root tagged type, and some associated primitive operations.
- -- Extend the root type, and override one or more primitive operations,
- -- inheriting the other primitive operations from the root type.
- -- Derive from the extended type, again overriding some primitive
- -- operations and inheriting others (including some that the parent
- -- inherited).
- -- Define a subprogram with a class-wide parameter, inside of which is a
- -- call on a dispatching primitive operation. These primitive operations
- -- modify global variables (the class-wide parameter has mode IN).
- --
- --
- --
- -- The following hierarchy of tagged types and primitive operations is
- -- utilized in this test:
- --
- -- type Bank_Account (root)
- -- |
- -- | Operations
- -- | Increment_Bank_Reserve
- -- | Assign_Representative
- -- | Increment_Counters
- -- | Open
- -- |
- -- type Savings_Account (extended from Bank_Account)
- -- |
- -- | Operations
- -- | (Increment_Bank_Reserve) (inherited)
- -- | Assign_Representative (overridden)
- -- | Increment_Counters (overridden)
- -- | Open (overridden)
- -- |
- -- type Preferred_Account (extended from Savings_Account)
- -- |
- -- | Operations
- -- | (Increment_Bank_Reserve) (inherited twice - Bank_Acct.)
- -- | (Assign_Representative) (inherited - Savings_Acct.)
- -- | Increment_Counters (overridden)
- -- | Open (overridden)
- --
- --
- -- In this test, we are concerned with the following selection of dispatching
- -- calls, accomplished with the use of a Bank_Account'Class IN procedure
- -- parameter :
- --
- -- \ Type
- -- Prim. Op \ Bank_Account Savings_Account Preferred_Account
- -- \------------------------------------------------
- -- Increment_Bank_Reserve| X X X
- -- Assign_Representative | X
- -- Increment_Counters | X X X
- --
- --
- --
- -- The location of the declaration and derivation of the root and extended
- -- types will be varied over a series of tests. Locations of declaration
- -- and derivation for a particular test are marked with an asterisk (*).
- --
- -- Root type:
- --
- -- * Declared in package.
- -- Declared in generic package.
- --
- -- Extended types:
- --
- -- * Derived in parent location.
- -- Derived in a nested package.
- -- Derived in a nested subprogram.
- -- Derived in a nested generic package.
- -- Derived in a separate package.
- -- Derived in a separate visible child package.
- -- Derived in a separate private child package.
- --
- -- Primitive Operations:
- --
- -- * Procedures with same parameter profile.
- -- Procedures with different parameter profile.
- -- Functions with same parameter profile.
- -- Functions with different parameter profile.
- -- Mixture of Procedures and Functions.
- --
- --
- -- TEST FILES:
- -- This test depends on the following foundation code:
- --
- -- F392A00.A
- --
- -- The following files comprise this test:
- --
- -- => C392A01.A
- --
- --
--- CHANGE HISTORY:
--- 06 Dec 94 SAIC ACVC 2.0
---
- --!
-
- with F392A00; -- package Accounts
- with Report;
-
- procedure C392A01 is
-
- package Accounts renames F392A00;
-
- -- Declare account objects.
-
- B_Account : Accounts.Bank_Account;
- S_Account : Accounts.Savings_Account;
- P_Account : Accounts.Preferred_Account;
-
- -- Procedures to operate on accounts.
- -- Each uses a class-wide IN parameter, as well as a call to a
- -- dispatching operation.
-
- -- Procedure Tabulate_Account performs a dispatching call on a primitive
- -- operation that has been overridden for each of the extended types.
-
- procedure Tabulate_Account (Acct : in Accounts.Bank_Account'Class) is
- begin
- Accounts.Increment_Counters (Acct); -- Dispatch according to tag.
- end Tabulate_Account;
-
-
- -- Procedure Accumulate_Reserve performs a dispatching call on a
- -- primitive operation that has been defined for the root type and
- -- inherited by each derived type.
-
- procedure Accumulate_Reserve (Acct : in Accounts.Bank_Account'Class) is
- begin
- Accounts.Increment_Bank_Reserve (Acct); -- Dispatch according to tag.
- end Accumulate_Reserve;
-
-
- -- Procedure Resolve_Dispute performs a dispatching call on a primitive
- -- operation that has been defined in the root type, overridden in the
- -- first derived extended type, and inherited by the subsequent extended
- -- type.
-
- procedure Resolve_Dispute (Acct : in Accounts.Bank_Account'Class) is
- begin
- Accounts.Assign_Representative (Acct); -- Dispatch according to tag.
- end Resolve_Dispute;
-
-
-
- begin -- Main test procedure.
-
- Report.Test ("C392A01", "Check that the use of a class-wide parameter " &
- "allows for proper dispatching where root type " &
- "and extended types are declared in the same " &
- "package" );
-
- Bank_Account_Subtest:
- declare
- use Accounts;
- begin
- Accounts.Open (B_Account);
-
- -- Demonstrate class-wide parameter allowing dispatch by a primitive
- -- operation that has been defined for this specific type.
- Accumulate_Reserve (Acct => B_Account);
- Tabulate_Account (B_Account);
-
- if (Accounts.Bank_Reserve /= Accounts.Opening_Balance) or
- (Accounts.Number_Of_Accounts (Bank) /= 1) or
- (Accounts.Number_Of_Accounts (Total) /= 1)
- then
- Report.Failed ("Failed in Bank_Account_Subtest");
- end if;
-
- end Bank_Account_Subtest;
-
-
- Savings_Account_Subtest:
- declare
- use Accounts;
- begin
- Accounts.Open (Acct => S_Account);
-
- -- Demonstrate class-wide parameter allowing dispatch by a primitive
- -- operation that has been inherited by this extended type.
- Accumulate_Reserve (Acct => S_Account);
-
- -- Demonstrate class-wide parameter allowing dispatch by a primitive
- -- operation that has been overridden for this extended type.
- Resolve_Dispute (Acct => S_Account);
- Tabulate_Account (S_Account);
-
- if Accounts.Bank_Reserve /= (3.0 * Accounts.Opening_Balance) or
- Accounts.Daily_Representative /= Accounts.Manager or
- Accounts.Number_Of_Accounts (Savings) /= 1 or
- Accounts.Number_Of_Accounts (Total) /= 2
- then
- Report.Failed ("Failed in Savings_Account_Subtest");
- end if;
-
- end Savings_Account_Subtest;
-
-
- Preferred_Account_Subtest:
- declare
- use Accounts;
- begin
- Accounts.Open (P_Account);
-
- -- Verify that the correct implementation of Open (overridden) was
- -- used for the Preferred_Account object.
- if not Accounts.Verify_Open (P_Account) then
- Report.Failed ("Incorrect values for init. Preferred Acct object");
- end if;
-
- -- Demonstrate class-wide parameter allowing dispatch by a primitive
- -- operation that has been twice inherited by this extended type.
- Accumulate_Reserve (Acct => P_Account);
-
- -- Demonstrate class-wide parameter allowing dispatch by a primitive
- -- operation that has been overridden for this extended type (the
- -- operation was overridden by its parent type as well).
- Tabulate_Account (P_Account);
-
- if Accounts.Bank_Reserve /= 1300.00 or
- Accounts.Number_Of_Accounts (Preferred) /= 1 or
- Accounts.Number_Of_Accounts (Total) /= 3
- then
- Report.Failed ("Failed in Preferred_Account_Subtest");
- end if;
-
- end Preferred_Account_Subtest;
-
-
- Report.Result;
-
- end C392A01;
-