diff options
Diffstat (limited to 'gcc/testsuite/ada/acats/tests/cxf/cxf3a06.a')
-rw-r--r-- | gcc/testsuite/ada/acats/tests/cxf/cxf3a06.a | 302 |
1 files changed, 0 insertions, 302 deletions
diff --git a/gcc/testsuite/ada/acats/tests/cxf/cxf3a06.a b/gcc/testsuite/ada/acats/tests/cxf/cxf3a06.a deleted file mode 100644 index 7b769ba96bf..00000000000 --- a/gcc/testsuite/ada/acats/tests/cxf/cxf3a06.a +++ /dev/null @@ -1,302 +0,0 @@ --- CXF3A06.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 Ada.Text_IO.Editing.Put and Ada.Text_IO.Put have the same --- effect. --- --- TEST DESCRIPTION: --- This test is structured using tables of data, consisting of --- numerical values, picture strings, and expected image --- result strings. These data tables are found in package FXF3A00. --- --- The testing approach used in this test is that of writing edited --- output data to a text file, using two different approaches. First, --- Ada.Text_IO.Put is used, with a call to an instantiated version of --- Function Image supplied as the actual for parameter Item. The --- second approach is to use a version of Function Put from an --- instantiation of Ada.Text_IO.Editing.Decimal_Output, with the --- appropriate parameters for decimal data, picture, and format --- specific parameters. A call to New_Line follows each Put, so that --- each entry is placed on a separate line in the text file. --- --- Edited output for decimal data with two decimal places is in the --- first loop, and once the data has been written to the file, the --- text file is closed, then opened in In_File mode. The edited --- output data is read from the file, and data on successive lines --- is compared with the expected edited output result. The edited --- output data produced by both of the Put procedures should be --- identical. --- --- This process is repeated for decimal data with no decimal places. --- The file is reopened in Append_File mode, and the edited output --- data is added to the file in the same manner as described above. --- The file is closed, and reopened to verify the data written. --- The data written above (with two decimal places) is skipped, then --- the data to be verified is extracted as above and verified against --- the expected edited output string values. --- --- APPLICABILITY CRITERIA: --- This test is applicable only to implementations that support --- external text files. --- --- TEST FILES: --- The following files comprise this test: --- --- FXF3A00.A (foundation code) --- => CXF3A06.A --- --- --- CHANGE HISTORY: --- 26 JAN 95 SAIC Initial prerelease version. --- 26 FEB 97 PWB.CTA Made input buffers sufficiently long --- and removed code depending on shorter buffers ---! - -with FXF3A00; -with Ada.Text_IO.Editing; -with Report; - -procedure CXF3A06 is - use Ada; -begin - - Report.Test ("CXF3A06", "Check that Ada.Text_IO.Editing.Put and " & - "Ada.Text_IO.Put have the same effect"); - - Test_for_Text_IO_Support: - declare - Text_File : Ada.Text_IO.File_Type; - Text_Filename : constant String := Report.Legal_File_Name(1); - begin - - -- Use_Error will be raised if Text_IO operations or external files - -- are not supported. - - Text_IO.Create (Text_File, Text_IO.Out_File, Text_Filename); - - Test_Block: - declare - use Ada.Text_IO; - - -- Instantiate the Decimal_Output generic package for two - -- different decimal data types. - - package Pack_2DP is -- Uses decimal type with delta 0.01. - new Editing.Decimal_Output(FXF3A00.Decimal_Type_2DP); - - package Pack_NDP is -- Uses decimal type with delta 1.0. - new Editing.Decimal_Output(Num => FXF3A00.Decimal_Type_NDP, - Default_Currency => "$", - Default_Fill => '*', - Default_Separator => ',', - Default_Radix_Mark => '.'); - - TC_Picture : Editing.Picture; - TC_Start_Loop : constant := 1; - TC_End_Loop_1 : constant := FXF3A00.Number_Of_2DP_Items - -- 20-10 - FXF3A00.Number_Of_Foreign_Strings; - TC_End_Loop_2 : constant := FXF3A00.Number_Of_NDP_Items; -- 12 - TC_Offset : constant := FXF3A00.Number_Of_2DP_Items; -- 20 - - TC_String_1, TC_String_2 : String(1..255) := (others => ' '); - TC_Last_1, TC_Last_2 : Natural := 0; - - begin - - -- Use the two versions of Put, for data with two decimal points, - -- to write edited output strings to the text file. Use a separate - -- line for each string entry. - - for i in TC_Start_Loop..TC_End_Loop_1 loop -- 1..10 - - -- Create the picture object from the picture string. - - TC_Picture := Editing.To_Picture(FXF3A00.Valid_Strings(i).all); - - -- Use the Text_IO version of Put to place an edited output - -- string into a text file. Use default parameters in the call - -- to Image for Currency, Fill, Separator, and Radix_Mark. - - Text_IO.Put(Text_File, - Pack_2DP.Image(Item => FXF3A00.Data_With_2DP(i), - Pic => TC_Picture)); - Text_IO.New_Line(Text_File); - - -- Use the version of Put from the instantiation of - -- Decimal_Output to place an edited output string on a separate - -- line of the Text_File. Use default parameters for Currency, - -- Fill, Separator, and Radix_Mark. - - Pack_2DP.Put(File => Text_File, - Item => FXF3A00.Data_With_2DP(i), - Pic => TC_Picture); - Text_IO.New_Line(Text_File); - - end loop; - - Text_IO.Close(Text_File); - - -- Reopen the text file in In_File mode, and verify the edited - -- output found on consecutive lines of the file. - - Text_IO.Open(Text_File, Text_IO.In_File, Text_Filename); - - for i in TC_Start_Loop..TC_End_Loop_1 loop - -- Read successive lines in the text file. - Text_IO.Get_Line(Text_File, TC_String_1, TC_Last_1); - Text_IO.Get_Line(Text_File, TC_String_2, TC_Last_2); - - -- Compare the two strings for equality with the expected edited - -- output result. Failure results if strings don't match, or if - -- a reading error occurred from the attempted Get_Line resulting - -- from an improperly formed edited output string. - - if TC_String_1(1..TC_Last_1) /= FXF3A00.Edited_Output(i).all or - TC_String_2(1..TC_Last_2) /= FXF3A00.Edited_Output(i).all - then - Report.Failed("Failed comparison of two edited output " & - "strings from data with two decimal points " & - ", loop number = " & Integer'Image(i)); - end if; - end loop; - - Text_IO.Close(Text_File); - - -- Reopen the text file in Append_File mode. - -- Use the two versions of Put, for data with no decimal points, - -- to write edited output strings to the text file. Use a separate - -- line for each string entry. - - Text_IO.Open(Text_File, Text_IO.Append_File, Text_Filename); - - for i in TC_Start_Loop..TC_End_Loop_2 loop -- 1..12 - - -- Create the picture object from the picture string specific to - -- data with no decimal points. Use appropriate offset into the - -- Valid_Strings array to account for the string data used above. - - TC_Picture := - Editing.To_Picture(FXF3A00.Valid_Strings(i+TC_End_Loop_1).all); - - -- Use the Text_IO version of Put to place an edited output - -- string into a text file. Use non-default parameters in the - -- call to Image for Currency, Fill, Separator, and Radix_Mark. - - Text_IO.Put(Text_File, - Pack_NDP.Image(Item => FXF3A00.Data_With_NDP(i), - Pic => TC_Picture, - Currency => "$", - Fill => '*', - Separator => ',', - Radix_Mark => '.')); - Text_IO.New_Line(Text_File); - - -- Use the version of Put from the instantiation of - -- Decimal_Output to place an edited output string on a separate - -- line of the Text_File. Use non-default parameters for - -- Currency, Fill, Separator, and Radix_Mark. - - Pack_NDP.Put(File => Text_File, - Item => FXF3A00.Data_With_NDP(i), - Pic => TC_Picture, - Currency => "$", - Fill => '*', - Separator => ',', - Radix_Mark => '.'); - Text_IO.New_Line(Text_File); - - end loop; - - Text_IO.Close(Text_File); - - -- Reopen the text file in In_File mode, and verify the edited - -- output found on consecutive lines of the file. - - Text_IO.Open(Text_File, Text_IO.In_File, Text_Filename); - - -- Read past data that has been verified above, skipping two lines - -- of the data file for each loop. - - for i in TC_Start_Loop..TC_End_Loop_1 loop -- 1..10 - Text_IO.Skip_Line(Text_File, 2); - end loop; - - -- Verify the last data set that was written to the file. - - for i in TC_Start_Loop..TC_End_Loop_2 loop -- 1..12 - Text_IO.Get_Line(Text_File, TC_String_1, TC_Last_1); - Text_IO.Get_Line(Text_File, TC_String_2, TC_Last_2); - - -- Compare the two strings for equality with the expected edited - -- output result. Failure results if strings don't match, or if - -- a reading error occurred from the attempted Get_Line resulting - -- from an improperly formed edited output string. - - if TC_String_1(1..TC_Last_1) /= - FXF3A00.Edited_Output(i+TC_Offset).all or - TC_String_2(1..TC_Last_2) /= - FXF3A00.Edited_Output(i+TC_Offset).all - then - Report.Failed("Failed comparison of two edited output " & - "strings from data with no decimal points " & - ", loop number = " & - Integer'Image(i)); - end if; - - end loop; - - exception - when others => Report.Failed("Exception raised in Test_Block"); - end Test_Block; - - -- Delete the external file. - if Text_IO.Is_Open (Text_File) then - Text_IO.Delete (Text_File); - else - Text_IO.Open (Text_File, Text_IO.In_File, Text_Filename); - Text_IO.Delete (Text_File); - end if; - - exception - - -- Since Use_Error can be raised if, for the specified mode, - -- the environment does not support Text_IO operations, the - -- following handlers are included: - - when Text_IO.Use_Error => - Report.Not_Applicable ("Use_Error raised on Text_IO Create"); - - when Text_IO.Name_Error => - Report.Not_Applicable ("Name_Error raised on Text_IO Create"); - - when others => - Report.Failed ("Unexpected exception raised in Create block"); - - end Test_for_Text_IO_Support; - - Report.Result; - -end CXF3A06; |