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 + -
显示快捷键?