diff options
Diffstat (limited to 'gcc/testsuite/ada/acats/tests/cxa/cxac004.a')
-rw-r--r-- | gcc/testsuite/ada/acats/tests/cxa/cxac004.a | 310 |
1 files changed, 0 insertions, 310 deletions
diff --git a/gcc/testsuite/ada/acats/tests/cxa/cxac004.a b/gcc/testsuite/ada/acats/tests/cxa/cxac004.a deleted file mode 100644 index 9cc88b93cfb..00000000000 --- a/gcc/testsuite/ada/acats/tests/cxa/cxac004.a +++ /dev/null @@ -1,310 +0,0 @@ --- CXAC004.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 Stream_Access type and Stream function found in package --- Ada.Text_IO.Text_Streams allows a text file to be processed with the --- functionality of streams. --- --- TEST DESCRIPTION: --- This test verifies that the package Ada.Text_IO.Text_Streams is --- available and that the functionality it contains allows a text file to --- be manipulated as a stream. --- The test defines data objects of a variety of types that can be stored --- in a text file. A text file and associated text stream are then --- defined, and the 'Write attribute is used to enter the individual data --- items into the text stream. Once all the individual data items have --- been written to the stream, the 'Output attribute is used to write --- arrays of these same data objects to the stream. --- The text file is reset to serve as an input file, and the 'Read --- attribute is used to extract the individual data items from the --- stream. These items are then verified against the data originally --- written to the stream. Finally, the 'Input attribute is used to --- extract the data arrays from the stream. These arrays are then --- verified against the original data written to the stream. --- --- APPLICABILITY CRITERIA: --- Applicable to implementations that support external text files. --- --- CHANGE HISTORY: --- 06 Jul 95 SAIC Initial prerelease version. --- 26 Feb 97 PWB.CTA Allowed for non-support of some IO operations; --- removed requirement for support of decimal types. ---! - -with Report; -with Ada.Text_IO; -with Ada.Text_IO.Text_Streams; -with Ada.Characters.Latin_1; -with Ada.Strings.Unbounded; - -procedure CXAC004 is - - Data_File : Ada.Text_IO.File_Type; - Data_Filename : constant String := - Report.Legal_File_Name ( Nam => "CXAC004" ); - Incomplete : exception; - -begin - - Report.Test ("CXAC004", "Check that the Stream_Access type and Stream " & - "function found in package " & - "Ada.Text_IO.Text_Streams allows a text file to " & - "be processed with the functionality of streams"); - - Test_for_IO_Support: - begin - - -- Check for Text_IO support in creating the data file. If the - -- implementation does not support external files, Name_Error or - -- Use_Error will be raised at the point of the following call to - -- Create, resulting in a Not_Applicable test result. - - Ada.Text_IO.Create(Data_File, Ada.Text_IO.Out_File, Data_Filename); - - exception - - when Ada.Text_IO.Use_Error | Ada.Text_IO.Name_Error => - Report.Not_Applicable - ( "Files not supported - Create as Out_File for Text_IO" ); - raise Incomplete; - - end Test_for_IO_Support; - - Test_Block: - declare - use Ada.Characters.Latin_1, Ada.Strings.Unbounded; - TC_Items : constant := 3; - - -- Declare types and objects that will be used as data values to be - -- written to and read from the text file/stream. - - type Enum_Type is (Red, Yellow, Green, Blue, Indigo); - type Fixed_Type is delta 0.125 range 0.0..255.0; - type Float_Type is digits 7 range 0.0..1.0E5; - type Modular_Type is mod 256; - subtype Str_Type is String(1..4); - - type Char_Array_Type is array (1..TC_Items) of Character; - type Enum_Array_Type is array (1..TC_Items) of Enum_Type; - type Fixed_Array_Type is array (1..TC_Items) of Fixed_Type; - type Float_Array_Type is array (1..TC_Items) of Float_Type; - type Int_Array_Type is array (1..TC_Items) of Integer; - type Mod_Array_Type is array (1..TC_Items) of Modular_Type; - type Str_Array_Type is array (1..TC_Items) of Str_Type; - type Unb_Str_Array_Type is array (1..TC_Items) of Unbounded_String; - - Char_Array : Char_Array_Type := ('A', 'z', Yen_Sign); - TC_Char_Array_1, - TC_Char_Array_2 : Char_Array_Type := (others => Space); - - Enum_Array : Enum_Array_Type := (Blue, Yellow, Indigo); - TC_Enum_Array_1, - TC_Enum_Array_2 : Enum_Array_Type := (others => Red); - - Fix_Array : Fixed_Array_Type := (0.125, 123.5, 250.750); - TC_Fix_Array_1, - TC_Fix_Array_2 : Fixed_Array_Type := (others => 0.0); - - Flt_Array : Float_Array_Type := (1.0, 150.0, 1500.0); - TC_Flt_Array_1, - TC_Flt_Array_2 : Float_Array_Type := (others => 0.0); - - Int_Array : Int_Array_Type := (124, 2349, -24_001); - TC_Int_Array_1, - TC_Int_Array_2 : Int_Array_Type := (others => -99); - - Mod_Array : Mod_Array_Type := (10, 127, 255); - TC_Mod_Array_1, - TC_Mod_Array_2 : Mod_Array_Type := (others => 0); - - Str_Array : Str_Array_Type := ("abcd", "klmn", "wxyz"); - TC_Str_Array_1, - TC_Str_Array_2 : Str_Array_Type := (others => " "); - - UStr_Array : Unb_Str_Array_Type := - (To_Unbounded_String("cat"), - To_Unbounded_String("testing"), - To_Unbounded_String("ACVC")); - TC_UStr_Array_1, - TC_UStr_Array_2 : Unb_Str_Array_Type := - (others => Null_Unbounded_String); - - -- Create a stream access object pointing to the data file. - - Data_Stream : Ada.Text_IO.Text_Streams.Stream_Access := - Ada.Text_IO.Text_Streams.Stream(File => Data_File); - - begin - - -- Use the 'Write attribute to enter the three sets of data items - -- into the data stream. - -- Note that the data will be mixed within the text file. - - for i in 1..TC_Items loop - Character'Write (Data_Stream, Char_Array(i)); - Enum_Type'Write (Data_Stream, Enum_Array(i)); - Fixed_Type'Write (Data_Stream, Fix_Array(i)); - Float_Type'Write (Data_Stream, Flt_Array(i)); - Integer'Write (Data_Stream, Int_Array(i)); - Modular_Type'Write (Data_Stream, Mod_Array(i)); - Str_Type'Write (Data_Stream, Str_Array(i)); - Unbounded_String'Write(Data_Stream, UStr_Array(i)); - end loop; - - -- Use the 'Output attribute to enter the entire arrays of each - -- type of data items into the data stream. - -- Note that the array bounds will be written to the stream as part - -- of the action of the 'Output attribute. - - Char_Array_Type'Output (Data_Stream, Char_Array); - Enum_Array_Type'Output (Data_Stream, Enum_Array); - Fixed_Array_Type'Output (Data_Stream, Fix_Array); - Float_Array_Type'Output (Data_Stream, Flt_Array); - Int_Array_Type'Output (Data_Stream, Int_Array); - Mod_Array_Type'Output (Data_Stream, Mod_Array); - Str_Array_Type'Output (Data_Stream, Str_Array); - Unb_Str_Array_Type'Output (Data_Stream, UStr_Array); - - -- Reset the data file to mode In_File. The data file will now serve - -- as the source of data which will be compared to the original data - -- written to the file above. - Reset1: - begin - Ada.Text_IO.Reset (File => Data_File, Mode => Ada.Text_IO.In_File); - exception - when Ada.Text_IO.Use_Error => - Report.Not_Applicable - ( "Reset to In_File not supported for Text_IO" ); - raise Incomplete; - end Reset1; - - -- Extract and validate all the single data items from the stream. - - for i in 1..TC_Items loop - Character'Read (Data_Stream, TC_Char_Array_1(i)); - Enum_Type'Read (Data_Stream, TC_Enum_Array_1(i)); - Fixed_Type'Read (Data_Stream, TC_Fix_Array_1(i)); - Float_Type'Read (Data_Stream, TC_Flt_Array_1(i)); - Integer'Read (Data_Stream, TC_Int_Array_1(i)); - Modular_Type'Read (Data_Stream, TC_Mod_Array_1(i)); - Str_Type'Read (Data_Stream, TC_Str_Array_1(i)); - Unbounded_String'Read (Data_Stream, TC_UStr_Array_1(i)); - end loop; - - if TC_Char_Array_1 /= Char_Array then - Report.Failed("Character values do not match"); - end if; - if TC_Enum_Array_1 /= Enum_Array then - Report.Failed("Enumeration values do not match"); - end if; - if TC_Fix_Array_1 /= Fix_Array then - Report.Failed("Fixed point values do not match"); - end if; - if TC_Flt_Array_1 /= Flt_Array then - Report.Failed("Floating point values do not match"); - end if; - if TC_Int_Array_1 /= Int_Array then - Report.Failed("Integer values do not match"); - end if; - if TC_Mod_Array_1 /= Mod_Array then - Report.Failed("Modular values do not match"); - end if; - if TC_Str_Array_1 /= Str_Array then - Report.Failed("String values do not match"); - end if; - if TC_UStr_Array_1 /= UStr_Array then - Report.Failed("Unbounded_String values do not match"); - end if; - - -- Extract and validate all data arrays from the data stream. - -- Note that the 'Input attribute denotes a function, whereas the - -- other stream oriented attributes in this test denote procedures. - - TC_Char_Array_2 := Char_Array_Type'Input(Data_Stream); - TC_Enum_Array_2 := Enum_Array_Type'Input(Data_Stream); - TC_Fix_Array_2 := Fixed_Array_Type'Input(Data_Stream); - TC_Flt_Array_2 := Float_Array_Type'Input(Data_Stream); - TC_Int_Array_2 := Int_Array_Type'Input(Data_Stream); - TC_Mod_Array_2 := Mod_Array_Type'Input(Data_Stream); - TC_Str_Array_2 := Str_Array_Type'Input(Data_Stream); - TC_UStr_Array_2 := Unb_Str_Array_Type'Input(Data_Stream); - - if TC_Char_Array_2 /= Char_Array then - Report.Failed("Character array values do not match"); - end if; - if TC_Enum_Array_2 /= Enum_Array then - Report.Failed("Enumeration array values do not match"); - end if; - if TC_Fix_Array_2 /= Fix_Array then - Report.Failed("Fixed point array values do not match"); - end if; - if TC_Flt_Array_2 /= Flt_Array then - Report.Failed("Floating point array values do not match"); - end if; - if TC_Int_Array_2 /= Int_Array then - Report.Failed("Integer array values do not match"); - end if; - if TC_Mod_Array_2 /= Mod_Array then - Report.Failed("Modular array values do not match"); - end if; - if TC_Str_Array_2 /= Str_Array then - Report.Failed("String array values do not match"); - end if; - if TC_UStr_Array_2 /= UStr_Array then - Report.Failed("Unbounded_String array values do not match"); - end if; - - exception - when Incomplete => - raise; - when others => Report.Failed ("Exception raised in Test_Block"); - end Test_Block; - - Deletion: - begin - -- Delete the data file. - if not Ada.Text_IO.Is_Open(Data_File) then - Ada.Text_IO.Open(Data_File, Ada.Text_IO.In_File, Data_Filename); - end if; - Ada.Text_IO.Delete(Data_File); - - exception - when others => - Report.Failed - ( "Delete not properly implemented for Text_IO" ); - - end Deletion; - - Report.Result; - -exception - when Incomplete => - Report.Result; - when others => - Report.Failed ( "Unexpected exception" ); - Report.Result; - -end CXAC004; |