1-- CE2408B.ADA
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-- OBJECTIVE:
26--     CHECK THAT WRITE DOES NOT CAUSE AN EXCEPTION WHEN THE TO
27--     PARAMETER IS GREATER THAN THE END POSITION.
28
29--          2) FILE MODE IS INOUT_FILE.
30
31-- APPLICABILITY CRITERIA:
32--     THIS TEST IS APPLICABLE ONLY TO IMPLEMENTATIONS WHICH SUPPORT
33--     CREATION OF DIRECT FILES WITH MODE INOUT_FILE.
34
35-- HISTORY:
36--     GMT 08/05/87  CREATED ORIGINAL TEST.
37
38WITH REPORT; USE REPORT;
39WITH DIRECT_IO;
40
41PROCEDURE CE2408B IS
42
43     PACKAGE DIR_IO IS NEW DIRECT_IO (INTEGER);
44     USE DIR_IO;
45
46     DIR_FILE   : FILE_TYPE;
47     INCOMPLETE : EXCEPTION;
48
49BEGIN
50     TEST ("CE2408B", "FOR FILES OF MODE INOUT_FILE, CHECK THAT " &
51                      "WRITE DOES NOT CAUSE AN EXCEPTION WHEN THE " &
52                      """TO"" PARAMETER IS GREATER THAN THE END " &
53                      "POSITION");
54     BEGIN
55          CREATE (DIR_FILE, INOUT_FILE, LEGAL_FILE_NAME);
56     EXCEPTION
57          WHEN USE_ERROR =>
58               NOT_APPLICABLE ("USE_ERROR RAISED ON CREATE WITH " &
59                               "MODE INOUT_FILE FOR DIR_IO - 1");
60               RAISE INCOMPLETE;
61          WHEN NAME_ERROR =>
62               NOT_APPLICABLE ("NAME_ERROR RAISED ON CREATE WITH " &
63                               "MODE INOUT_FILE FOR DIR_IO - 2");
64               RAISE INCOMPLETE;
65          WHEN OTHERS =>
66               FAILED ("UNEXPECTED EXCEPTION RAISED ON CREATE WITH " &
67                       "MODE INOUT_FILE FOR DIR_IO - 3");
68               RAISE INCOMPLETE;
69     END;
70
71     -- FILL UP FILE
72
73     WRITE (DIR_FILE, 3);
74     WRITE (DIR_FILE, 4);
75     WRITE (DIR_FILE, 5);
76     WRITE (DIR_FILE, 6);
77
78     -- WRITE WHERE TO IS LARGER THAN END OF FILE
79
80     BEGIN
81          WRITE (DIR_FILE, 9, 7);
82     EXCEPTION
83          WHEN OTHERS =>
84               FAILED ("WRITE RAISED EXCEPTION WHEN TO " &
85                       "PARAMETER WAS BEYOND END - 4");
86     END;
87
88     BEGIN
89          SET_INDEX (DIR_FILE, 11);
90          WRITE (DIR_FILE, 10);
91     EXCEPTION
92          WHEN OTHERS =>
93               FAILED ("SET_INDEX/WRITE RAISED EXCEPTION WHEN TO " &
94                       "PARAMETER EXCEEDS THE END POSITION - 5");
95     END;
96
97     -- DELETE TEST FILE
98
99     BEGIN
100          DELETE (DIR_FILE);
101     EXCEPTION
102          WHEN USE_ERROR =>
103               NULL;
104     END;
105
106     RESULT;
107
108EXCEPTION
109     WHEN INCOMPLETE =>
110          RESULT;
111
112END CE2408B;
113