view gcc/testsuite/ada/acats/tests/cxf/cxf3a01.a @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
line wrap: on
line source

-- CXF3A01.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 function Ada.Text_IO.Editing.Valid returns False if
--         a) Pic_String is not a well-formed Picture string, or
--         b) the length of Pic_String exceeds Max_Picture_Length, or
--         c) Blank_When_Zero is True and Pic_String contains '*';
--      Check that Valid otherwise returns True.
--
-- TEST DESCRIPTION:
--      This test validates the results of function Editing.Valid under a 
--      variety of conditions.  Both valid and invalid picture strings are
--      provided as input parameters to the function.  The use of the 
--      Blank_When_Zero parameter is evaluated with strings that contain the
--      zero suppression character '*'.
--
-- TEST FILES:
--      The following files comprise this test:
--
--         FXF3A00.A   (foundation code)
--      => CXF3A01.A
--
--       
-- CHANGE HISTORY:
--      06 Dec 94   SAIC    ACVC 2.0
--
--!

with FXF3A00;
with Ada.Text_IO.Editing;
with Report;

procedure CXF3A01 is
begin

   Report.Test ("CXF3A01", "Check that the Valid function from package "    &
                           "Ada.Text_IO.Editing returns False for strings " &
                           "that fail to comply with the composition "      &
                           "constraints defined for picture strings. "      &
                           "Check that the Valid function returns True "    &
                           "for strings that conform to the composition "   &
                           "constraints defined for picture strings");

   Test_Block:
   declare
      use FXF3A00;
      use Ada.Text_IO;
   begin

      -- Use a series of picture strings that conform to the composition
      -- constraints to validate the Ada.Text_IO.Editing.Valid function.
      -- The result for each of these calls should be True.
      -- In all the following cases, the default value of the Blank_When_Zero
      -- parameter is used.

      for i in 1..FXF3A00.Number_Of_Valid_Strings loop

         if not Editing.Valid(Pic_String => FXF3A00.Valid_Strings(i).all) 
         then
            Report.Failed("Incorrect result from Function Valid using " &
                          "Valid_String = " & FXF3A00.Valid_Strings(i).all); 
         end if;

      end loop;


      for i in 1..FXF3A00.Number_Of_Foreign_Strings loop

         if not Editing.Valid(Pic_String => FXF3A00.Foreign_Strings(i).all) 
         then
            Report.Failed("Incorrect result from Function Valid using " &
                          "Foreign_String = " & 
                          FXF3A00.Foreign_Strings(i).all);
         end if;

      end loop;


      -- Use a series of picture strings that violate one or more of the 
      -- composition constraints to validate the Ada.Text_IO.Editing.Valid
      -- function.  The result for each of these calls should be False.
      -- In all the following cases, the default value of the Blank_When_Zero
      -- parameter is used.

      for i in 1..FXF3A00.Number_Of_Invalid_Strings loop

         if Editing.Valid(Pic_String => FXF3A00.Invalid_Strings(i).all) 
         then
            Report.Failed("Incorrect result from Function Valid using " &
                          "Invalid_String = " & 
                          FXF3A00.Invalid_Strings(i).all);
         end if;

      end loop;


      -- In all the following cases, the default value of the Blank_When_Zero
      -- parameter is overridden with a True actual parameter value.  Using
      -- valid picture strings that contain the '*' zero suppression character 
      -- when this parameter value is True must result in a False result
      -- from function Valid.  Valid picture strings that do not contain the
      -- '*' character should return a function result of True with True
      -- provided as the actual parameter to Blank_When_Zero.

      -- Check entries 1, 2, 25, 36 from the Valid_Strings array, all of
      -- which contain the '*' zero suppression character.

      if Editing.Valid(Valid_Strings(1).all,  Blank_When_Zero => True) or
         Editing.Valid(Valid_Strings(2).all,  Blank_When_Zero => True) or
         Editing.Valid(Valid_Strings(25).all, Blank_When_Zero => True) or
         Editing.Valid(Valid_Strings(36).all, Blank_When_Zero => True) 
      then
         Report.Failed
           ("Incorrect result from Function Valid when setting "   &
            "the value of the Blank_When_Zero parameter to True, " &
            "and using picture strings with the '*' character");
      end if;


      -- Check entries from the Valid_Strings array, none of
      -- which contain the '*' zero suppression character.

      for i in 3..24 loop

         if not Editing.Valid(Pic_String      => Valid_Strings(i).all,  
                              Blank_When_Zero => True)
         then
            Report.Failed("Incorrect result from Function Valid when "    &
                          "setting the value of the Blank_When_Zero "     &
                          "parameter to True, and using picture strings " &
                          "without the '*' character, Valid_String = "    &
                          FXF3A00.Valid_Strings(i).all);
         end if;

      end loop;


   exception
      when others => Report.Failed ("Exception raised in Test_Block");
   end Test_Block;

   Report.Result;

end CXF3A01;