ca13a01.a

来自「linux下编程用 编译软件」· A 代码 · 共 321 行

A
321
字号
-- CA13A01.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 subunits declared in non-generic child units of a public --      parent have the same visibility into its parent, its siblings --      (public and private), and packages on which its parent depends --      as is available at the point of their declaration.---- TEST DESCRIPTION:--      Declare an check system procedure as a subunit in a private child --      package of the basic operation package (FA13A00.A).  This procedure --      has visibility into its parent ancestor and its private sibling.----      Declare an emergency procedure as a subunit in a public child package--      of the basic operation package (FA13A00.A).  This procedure has --      visibility into its parent ancestor and its private sibling. ----      Declare an express procedure as a subunit in a public child subprogram--      of the basic operation package (FA13A00.A).  This procedure has --      visibility into its parent ancestor and its public sibling. ----      In the main program, "with"s the child package and subprogram.  Check --      that subunits perform as expected.  ---- TEST FILES:--      The following files comprise this test:----         FA13A00.A--         CA13A01.A------ CHANGE HISTORY:--      06 Dec 94   SAIC    ACVC 2.0----!-- Private child package of an elevator application.  This package-- provides maintenance operations.private package FA13A00_1.CA13A01_4 is    -- Maintenance operation   One_Floor : Floor_No := 1;             -- Type declared in parent.   procedure Check_System;   -- other type definitions and procedure declarations in real application.end FA13A00_1.CA13A01_4;     --==================================================================---- Context clauses required for visibility needed by separate subunit.with FA13A00_0;                           -- Building Managerwith FA13A00_1.FA13A00_2;                 -- Floor Calculation (private)                                         with FA13A00_1.FA13A00_3;                 -- Move Elevatoruse  FA13A00_0;                           package body FA13A00_1.CA13A01_4 is                 procedure Check_System is separate;end FA13A00_1.CA13A01_4;     --==================================================================--separate (FA13A00_1.CA13A01_4)-- Subunit Check_System declared in Maintenance Operation.procedure Check_System isbegin   -- See if regular power is on.   if Power /= V120 then                  -- Reference package with'ed by      TC_Operation := false;              -- the subunit parent's body.   end if;   -- Test elevator function.   FA13A00_1.FA13A00_3.Move_Elevator      -- Reference public sibling of     (Penthouse, Call_Waiting);           -- the subunit parent's body.   if not Call_Waiting (Penthouse) then   -- Reference private part of the      TC_Operation := false;              -- parent of the subunit package's                                           -- body.   end if;   FA13A00_1.FA13A00_2.Down (One_Floor);  -- Reference private sibling of                                          -- the subunit parent's body.   if Current_Floor /= Floor'pred (Penthouse) then       TC_Operation := false;              -- Reference type declared in the   end if;                                -- parent of the subunit parent's                                          -- body.end Check_System;     --==================================================================---- Public child package of an elevator application.  This package provides-- an emergency operation.package FA13A00_1.CA13A01_5 is            -- Emergency Operation   -- Other type definitions in real application.   procedure Emergency;private   type Bell_Type is (Inactive, Active);end FA13A00_1.CA13A01_5;     --==================================================================---- Context clauses required for visibility needed by separate subunit.with FA13A00_0;                           -- Building Managerwith FA13A00_1.FA13A00_3;                 -- Move Elevatorwith FA13A00_1.CA13A01_4;                 -- Maintenance Operation (private)use  FA13A00_0;package body FA13A00_1.CA13A01_5 is                 procedure Emergency is separate;end FA13A00_1.CA13A01_5;     --==================================================================--separate (FA13A00_1.CA13A01_5)-- Subunit Emergency declared in Maintenance Operation.procedure Emergency is   Bell : Bell_Type;                      -- Reference type declared in the                                           -- subunit parent's body.begin   -- Calls maintenance operation.   FA13A00_1.CA13A01_4.Check_System;      -- Reference private sibling of the                                          -- subunit parent 's body.   -- Clear all calls to the elevator.   Clear_Calls (Call_Waiting);            -- Reference subprogram declared                                          -- in the parent of the subunit                                          -- parent's body.   for I in Floor loop                          if Call_Waiting (I) then            -- Reference private part of the        TC_Operation := false;            -- parent of the subunit parent's      end if;                             -- body.   end loop;   -- Move elevator to the basement.   FA13A00_1.FA13A00_3.Move_Elevator      -- Reference public sibling of the     (Basement, Call_Waiting);            -- subunit parent's body.   if Current_Floor /= Basement then      -- Reference type declared in the      TC_Operation := false;              -- parent of the subunit parent's   end if;                                -- body.   -- Shut off power.   Power := Off;                          -- Reference package with'ed by                                          -- the subunit parent's body.   -- Activate bell.   Bell := Active;                        -- Reference type declared in the                                           -- subunit parent's body. end Emergency;     --==================================================================---- Public child subprogram of an elevator application.  This subprogram -- provides an express operation.procedure FA13A00_1.CA13A01_6;     --==================================================================---- Context clauses required for visibility needed by separate subunit.with FA13A00_0;                           -- Building Managerwith FA13A00_1.FA13A00_2;                 -- Floor Calculation (private)with FA13A00_1.FA13A00_3;                 -- Move Elevatoruse  FA13A00_0;procedure FA13A00_1.CA13A01_6 is          -- Express Operation   -- Other type definitions in real application.   procedure GoTo_Penthouse is separate;begin   GoTo_Penthouse;end FA13A00_1.CA13A01_6;     --==================================================================--separate (FA13A00_1.CA13A01_6)-- Subunit GoTo_Penthouse declared in Express Operation.procedure GoTo_Penthouse isbegin   -- Go faster.   Power := V240;                         -- Reference package with'ed by                                          -- the subunit parent's body.    -- Call elevator.   Call (Penthouse, Call_Waiting);        -- Reference subprogram declared in                                          -- the parent of the subunit                                           -- parent's body.   if not Call_Waiting (Penthouse) then   -- Reference private part of the      TC_Operation := false;              -- parent of the subunit parent's   end if;                                -- body.   -- Move elevator to Penthouse.   FA13A00_1.FA13A00_3.Move_Elevator      -- Reference public sibling of the     (Penthouse, Call_Waiting);           -- subunit parent's body.   if Current_Floor /= Penthouse then     -- Reference type declared in the      TC_Operation := false;              -- parent of the subunit parent's   end if;                                -- body.   -- Return slowly   while Current_Floor /= Floor1 loop     -- Reference type, subprogram       FA13A00_1.FA13A00_2.Down (1);       -- declared in the parent of the                                          -- subunit parent's body.   end loop;   if Current_Floor /= Floor1 then        -- Reference type declared in      TC_Operation := false;              -- the parent of the subunit   end if;                                -- parent's body.   -- Back to normal.                                             Power := V120;                         -- Reference package with'ed by                                          -- the subunit parent's body.end GoTo_Penthouse;     --==================================================================--with FA13A00_1.CA13A01_5;                 -- Emergency Operation                                          -- implicitly with Basic Elevator                                          -- Operationswith FA13A00_1.CA13A01_6;                 -- Express Operationwith Report;procedure CA13A01 isbegin   Report.Test ("CA13A01", "Check that subunits declared in non-generic " &                "child units of a public parent have the same visibility " &                "into its parent, its parent's siblings, and packages on " &                "which its parent depends");   -- Go to Penthouse.   FA13A00_1.CA13A01_6;   -- Call emergency operation.   FA13A00_1.CA13A01_5.Emergency;   if not FA13A00_1.TC_Operation then      Report.Failed ("Incorrect elevator operation");   end if;   Report.Result;end CA13A01;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?