c761001.a

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

A
118
字号
-- C761001.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 controlled objects declared immediately within a library--      package are finalized following the completion of the environment--      task (and prior to termination of the program).---- TEST DESCRIPTION:--      This test derives a type from Ada.Finalization.Controlled, and--      declares an object of that type in the body of a library package.--      The dispatching procedure Finalize is redefined for the derived--      type to perform a check that it has been called only once, and in--      turn calls Report.Result.  This test may fail by not calling--      Report.Result.  This test may also fail by calling Report.Result--      twice, the first call will report a false pass.------ CHANGE HISTORY:--      06 Dec 94   SAIC    ACVC 2.0--      13 Nov 95   SAIC    Updated for ACVC 2.0.1----!with Ada.Finalization;package C761001_0 is  type Global is new Ada.Finalization.Controlled with null record;  procedure Finalize( It: in out Global );end C761001_0;package C761001_1 is  task Library_Task is    entry Never_Called;  end Library_Task;end C761001_1;with Report;with C761001_1;package body C761001_0 is  My_Object : Global;  Done : Boolean := False;  procedure Finalize( It: in out Global ) is  begin    if not C761001_1.Library_Task'Terminated then      Report.Failed("Library task not terminated before finalize");    end if;    if Done then  -- checking included "just in case"      Report.Comment("Test FAILED, even if previously reporting passed");      Report.Failed("Unwarranted multiple call to finalize");    end if;    Report.Result;    Done := True;  end Finalize;end C761001_0;with Report;package body C761001_1 is  task body Library_Task is  begin    if Report.Ident_Int( 1 ) /= 1 then      Report.Failed( "Baseline failure in Library_Task");    end if;  end Library_Task;end C761001_1;with Report;with C761001_0;procedure C761001 isbegin  -- Main test procedure.  Report.Test ("C761001", "Check that controlled objects declared "                        & "immediately within a library package are "                        & "finalized following the completion of the "                        & "environment task (and prior to termination "                        & "of the program)");  -- note that if the test DOES call report twice, the first will report a  -- false pass, the second call will correctly fail the test.  -- not calling Report.Result;  -- Result is called as part of the finalization of C761001_0.My_Object.end C761001;

⌨️ 快捷键说明

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