OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [ada/] [acats/] [tests/] [cxa/] [cxaa013.a] - Blame information for rev 720

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 720 jeremybenn
-- CXAA013.A
2
--
3
--                             Grant of Unlimited Rights
4
--
5
--     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
6
--     F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
7
--     unlimited rights in the software and documentation contained herein.
8
--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making
9
--     this public release, the Government intends to confer upon all
10
--     recipients unlimited rights  equal to those held by the Government.
11
--     These rights include rights to use, duplicate, release or disclose the
12
--     released technical data and computer software in whole or in part, in
13
--     any manner and for any purpose whatsoever, and to have or permit others
14
--     to do so.
15
--
16
--                                    DISCLAIMER
17
--
18
--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
19
--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
20
--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
21
--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
22
--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
23
--     PARTICULAR PURPOSE OF SAID MATERIAL.
24
--*
25
--
26
-- OBJECTIVE:
27
--      Check that the exception Mode_Error is raised when an attempt is made
28
--      to skip a line or page using the predefined Skip_Line and Skip_Page
29
--      procedures on a text file with mode Append_File.
30
--
31
-- TEST DESCRIPTION:
32
--      A scenario is created that demonstrates the potential for the
33
--      incorrect usage of predefined text processing subprograms, which
34
--      results in the raising of a Mode_Error exception.
35
--      A count is kept to ensure that each anticipated exception is in fact
36
--      raised and handled properly.
37
--
38
-- APPLICABILITY CRITERIA:
39
--      This test is applicable only to implementations that support text
40
--      files.
41
--
42
--
43
-- CHANGE HISTORY:
44
--      06 Dec 94   SAIC    ACVC 2.0
45
--      28 Feb 97   PWB.CTA Allowed for non-support of some IO operations
46
--!
47
 
48
with Ada.Text_IO;
49
with Report;
50
 
51
procedure CXAA013 is
52
   use Ada;
53
   Text_File     : Text_IO.File_Type;
54
   Text_Filename : constant String :=
55
                              Report.Legal_File_Name ( Nam => "CXAA013" );
56
   Incomplete : exception;
57
 
58
begin
59
 
60
         Report.Test ("CXAA013", "Check that the exception Mode_Error is " &
61
                                 "raised when an attempt is made to skip " &
62
                                 "a line or page using the predefined "    &
63
                                 "Skip_Line and Skip_Page procedures on "  &
64
                                 "a text file with mode Append_File");
65
 
66
         Test_for_Text_IO_Support:
67
         begin
68
 
69
-- An application creates a text file with mode Append_File.
70
-- Use_Error will be raised if Text_IO operations or external files are not
71
-- supported.
72
 
73
            Text_IO.Create (Text_File, Text_IO.Append_File, Text_Filename);
74
 
75
   exception
76
 
77
       when Text_IO.Use_Error | Text_IO.Name_Error =>
78
          Report.Not_Applicable
79
             ( "Files not supported - Create as Append_File for Text_IO" );
80
          raise Incomplete;
81
 
82
   end Test_for_Text_IO_Support;
83
 
84
-- The application writes some amount of data to the file.
85
 
86
   Text_IO.Put_Line (Text_File, "Data entered into the file");
87
 
88
   Operational_Test_Block:
89
   declare
90
      TC_Number_Of_Forced_Mode_Errors : constant Natural := 2;
91
      TC_Mode_Errors : Natural := 0;
92
   begin
93
 
94
      Test_for_Skip_Line:
95
      declare
96
         TC_Spacing : constant Text_IO.Count := 3;
97
      begin
98
 
99
-- During the course of its processing, the application may attempt to
100
-- invoke the Skip_Line procedure on a file that is currently in Append_File
101
-- mode (instead of the anticipated In_File mode).  This results in the
102
-- raising of Mode_Error.
103
 
104
         Text_IO.Skip_Line (Text_File, TC_Spacing);
105
         Report.Failed ("Exception not raised by Skip_Line");
106
 
107
-- An exception handler present within the application handles the exception
108
-- and processing can continue.
109
 
110
      exception
111
         when Text_IO.Mode_Error =>
112
            TC_Mode_Errors := TC_Mode_Errors + 1;
113
         when others =>
114
            Report.Failed("Exception in Skip_Line processing");
115
      end Test_for_Skip_Line;
116
 
117
      Test_for_Skip_Page:
118
      begin
119
 
120
-- Again, during the course of its processing, the application incorrectly
121
-- assumes that the file mode is In_File, this time attempting to call the
122
-- Skip_Page procedure for the file (that is currently in Append_File mode).
123
 
124
         Text_IO.Skip_Page (Text_File);
125
         Report.Failed ("Exception not raised by Skip_Page");
126
 
127
-- Once again, an exception handler present within the application handles
128
-- the exception and processing continues.
129
 
130
      exception
131
         when Text_IO.Mode_Error =>
132
            TC_Mode_Errors := TC_Mode_Errors + 1;
133
         when others =>
134
            Report.Failed("Exception in Skip_Page processing");
135
      end Test_for_Skip_Page;
136
 
137
      if (TC_Mode_Errors /= TC_Number_Of_Forced_Mode_Errors) then
138
         Report.Failed ("Incorrect number of exceptions handled");
139
      end if;
140
 
141
   end Operational_Test_Block;
142
 
143
   Deletion:
144
   begin
145
      -- Delete the external file.
146
      if Text_IO.Is_Open (Text_File) then
147
         Text_IO.Delete (Text_File);
148
      else
149
         Text_IO.Open (Text_File, Text_IO.In_File, Text_Filename);
150
         Text_IO.Delete (Text_File);
151
      end if;
152
   exception
153
      when others =>
154
         Report.Failed
155
            ( "Delete not properly implemented for Text_IO" );
156
   end Deletion;
157
 
158
   Report.Result;
159
 
160
exception
161
   when Incomplete =>
162
      Report.Result;
163
   when others     =>
164
      Report.Failed ( "Unexpected exception" );
165
      Report.Result;
166
 
167
end CXAA013;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.