cxaf001.a

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

A
200
字号
-- CXAF001.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 an implementation supports the functionality defined--      in Package Ada.Command_Line.---- TEST DESCRIPTION:--      This test verifies that an implementation supports the subprograms--      contained in package Ada.Command_Line.  Each of the subprograms--      is exercised in a general sense, to ensure that it is available,--      and that it provides the prescribed results in a known test --      environment.  Function Argument_Count must return zero, or the --      number of arguments passed to the program calling it.  Function--      Argument is called with a parameter value one greater than the--      actual number of arguments passed to the executing program, which--      must result in Constraint_Error being raised.  Function Command_Name--      should return the name of the executing program that called it--      (specifically, this test name).  Function Set_Exit_Status is called--      with two different parameter values, the constants Failure and --      Success defined in package Ada.Command_Line.----      The setting of the variable TC_Verbose allows for some additional--      output to be displayed during the running of the test as an aid in--      tracing the processing flow of the test.---- APPLICABILITY CRITERIA: --      This test is applicable to implementations that support the --      declaration of package Command_Line as defined in the Ada Reference --      manual. --      An alternative declaration is allowed for package Command_Line if --      different functionality is appropriate for the external execution--      environment.----       -- CHANGE HISTORY:--      10 Jul 95   SAIC    Initial prerelease version.--      02 May 96   SAIC    Incorporated reviewer comments for ACVC 2.1.--      05 AUG 98   EDS     Allow Null string result to be returned from--                          Function Command--!with Ada.Command_Line;with Ada.Exceptions;with Report;procedure CXAF001 isbegin   Report.Test ("CXAF001", "Check that an implementation supports the " &                           "functionality defined in Package "          &                           "Ada.Command_Line");   Test_Block:   declare      use Ada.Exceptions;      type String_Access is access all String;      TC_Verbose           : Boolean := False;      Number_Of_Arguments  : Natural := Natural'Last;      Name_Of_Command      : String_Access;   begin      -- Check the result of function Argument_Count.      -- Note: If the external environment does not support passing arguments      --       to the program invoking the function, the function result      --       will be zero.      Number_Of_Arguments := Ada.Command_Line.Argument_Count;      if Number_Of_Arguments = Natural'Last then         Report.Failed("Argument_Count did not provide a return result");      end if;      if TC_Verbose then         Report.Comment           ("Argument_Count = " & Integer'Image(Number_Of_Arguments));      end if;      -- Check that the result of Function Argument is Constraint_Error      -- when the Number argument is outside the range of 1..Argument_Count.      Test_Function_Argument_1 :      begin         declare            -- Define a value that will be outside the range of             -- 1..Argument_Count.             -- Note: If the external execution environment does not support            --       passing arguments to a program, then Argument(N) for             --       any N will raise Constraint_Error, since             --       Argument_Count = 0;            Arguments_Plus_One : Positive :=               Ada.Command_Line.Argument_Count + 1;            -- Using the above value in a call to Argument must result in            -- the raising of Constraint_Error.            Argument_String    : constant String :=               Ada.Command_Line.Argument(Arguments_Plus_One);         begin            Report.Failed("Constraint_Error not raised by Function "  &                          "Argument when provided a Number argument " &                          "out of range");         end;      exception         when Constraint_Error => null;  -- OK, expected exception.            if TC_Verbose then              Report.Comment ("Argument_Count raised Constraint_Error");            end if;         when others =>             Report.Failed ("Unexpected exception raised by Argument " &                           "in Test_Function_Argument_1 block");      end Test_Function_Argument_1;      -- Check that Function Argument returns a string result.      Test_Function_Argument_2 :      begin         if Ada.Command_Line.Argument_Count > 0 then            Report.Comment              ("Last argument is: " &               Ada.Command_Line.Argument(Ada.Command_Line.Argument_Count));         elsif TC_Verbose then            Report.Comment("Argument_Count is zero, no test of Function " &                           "Argument for string result");         end if;      exception         when others =>             Report.Failed ("Unexpected exception raised by Argument " &                           "in Test_Function_Argument_2 block");      end Test_Function_Argument_2;      -- Check the result of Function Command_Name.      Name_Of_Command := new String'(Ada.Command_Line.Command_Name);      if Name_Of_Command = null  then         Report.Failed("Null string pointer returned from Function Command");      elsif Name_Of_Command.all = "" then         Report.Comment("Null string result returned from Function Command");      elsif TC_Verbose then         Report.Comment("Invoking command is " & Name_Of_Command.all);      end if;      -- Check that procedure Set_Exit_Status is available.      -- Note: If the external execution environment does not support      --       returning an exit value from a program, then Set_Exit_Status      --       does nothing.            Ada.Command_Line.Set_Exit_Status(Ada.Command_Line.Failure);      if TC_Verbose then         Report.Comment("Exit status set to Failure");      end if;      Ada.Command_Line.Set_Exit_Status(Ada.Command_Line.Success);      if TC_Verbose then         Report.Comment("Exit status set to Success");      end if;   exception      when The_Error : others =>          Report.Failed ("The following exception was raised in the " &                        "Test_Block: " & Exception_Name(The_Error));   end Test_Block;   Report.Result;end CXAF001;

⌨️ 快捷键说明

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