annotate gcc/testsuite/ada/acats/tests/c3/c34005u.ada @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 -- C34005U.ADA
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 -- Grant of Unlimited Rights
kono
parents:
diff changeset
4 --
kono
parents:
diff changeset
5 -- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
kono
parents:
diff changeset
6 -- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
kono
parents:
diff changeset
7 -- unlimited rights in the software and documentation contained herein.
kono
parents:
diff changeset
8 -- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
kono
parents:
diff changeset
9 -- this public release, the Government intends to confer upon all
kono
parents:
diff changeset
10 -- recipients unlimited rights equal to those held by the Government.
kono
parents:
diff changeset
11 -- These rights include rights to use, duplicate, release or disclose the
kono
parents:
diff changeset
12 -- released technical data and computer software in whole or in part, in
kono
parents:
diff changeset
13 -- any manner and for any purpose whatsoever, and to have or permit others
kono
parents:
diff changeset
14 -- to do so.
kono
parents:
diff changeset
15 --
kono
parents:
diff changeset
16 -- DISCLAIMER
kono
parents:
diff changeset
17 --
kono
parents:
diff changeset
18 -- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
kono
parents:
diff changeset
19 -- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
kono
parents:
diff changeset
20 -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
kono
parents:
diff changeset
21 -- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
kono
parents:
diff changeset
22 -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
kono
parents:
diff changeset
23 -- PARTICULAR PURPOSE OF SAID MATERIAL.
kono
parents:
diff changeset
24 --*
kono
parents:
diff changeset
25 -- OBJECTIVE:
kono
parents:
diff changeset
26 -- FOR DERIVED MULTI-DIMENSIONAL ARRAY TYPES WHOSE COMPONENT TYPE IS
kono
parents:
diff changeset
27 -- A LIMITED TYPE:
kono
parents:
diff changeset
28
kono
parents:
diff changeset
29 -- CHECK THAT ALL VALUES OF THE PARENT (BASE) TYPE ARE PRESENT
kono
parents:
diff changeset
30 -- FOR THE DERIVED (BASE) TYPE WHEN THE DERIVED TYPE DEFINITION
kono
parents:
diff changeset
31 -- IS CONSTRAINED.
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33 -- CHECK THAT ANY CONSTRAINT IMPOSED ON THE PARENT SUBTYPE IS
kono
parents:
diff changeset
34 -- ALSO IMPOSED ON THE DERIVED SUBTYPE.
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 -- HISTORY:
kono
parents:
diff changeset
37 -- JRK 08/21/87 CREATED ORIGINAL TEST.
kono
parents:
diff changeset
38
kono
parents:
diff changeset
39 WITH REPORT; USE REPORT;
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 PROCEDURE C34005U IS
kono
parents:
diff changeset
42
kono
parents:
diff changeset
43 PACKAGE PKG_L IS
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 TYPE LP IS LIMITED PRIVATE;
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 FUNCTION CREATE (X : INTEGER) RETURN LP;
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 FUNCTION VALUE (X : LP) RETURN INTEGER;
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 FUNCTION EQUAL (X, Y : LP) RETURN BOOLEAN;
kono
parents:
diff changeset
52
kono
parents:
diff changeset
53 PROCEDURE ASSIGN (X : OUT LP; Y : LP);
kono
parents:
diff changeset
54
kono
parents:
diff changeset
55 C1 : CONSTANT LP;
kono
parents:
diff changeset
56 C2 : CONSTANT LP;
kono
parents:
diff changeset
57 C3 : CONSTANT LP;
kono
parents:
diff changeset
58 C4 : CONSTANT LP;
kono
parents:
diff changeset
59 C5 : CONSTANT LP;
kono
parents:
diff changeset
60 C6 : CONSTANT LP;
kono
parents:
diff changeset
61 C7 : CONSTANT LP;
kono
parents:
diff changeset
62 C8 : CONSTANT LP;
kono
parents:
diff changeset
63
kono
parents:
diff changeset
64 PRIVATE
kono
parents:
diff changeset
65
kono
parents:
diff changeset
66 TYPE LP IS NEW INTEGER;
kono
parents:
diff changeset
67
kono
parents:
diff changeset
68 C1 : CONSTANT LP := 1;
kono
parents:
diff changeset
69 C2 : CONSTANT LP := 2;
kono
parents:
diff changeset
70 C3 : CONSTANT LP := 3;
kono
parents:
diff changeset
71 C4 : CONSTANT LP := 4;
kono
parents:
diff changeset
72 C5 : CONSTANT LP := 5;
kono
parents:
diff changeset
73 C6 : CONSTANT LP := 6;
kono
parents:
diff changeset
74 C7 : CONSTANT LP := 7;
kono
parents:
diff changeset
75 C8 : CONSTANT LP := 8;
kono
parents:
diff changeset
76
kono
parents:
diff changeset
77 END PKG_L;
kono
parents:
diff changeset
78
kono
parents:
diff changeset
79 USE PKG_L;
kono
parents:
diff changeset
80
kono
parents:
diff changeset
81 SUBTYPE COMPONENT IS LP;
kono
parents:
diff changeset
82
kono
parents:
diff changeset
83 PACKAGE PKG_P IS
kono
parents:
diff changeset
84
kono
parents:
diff changeset
85 FIRST : CONSTANT := 0;
kono
parents:
diff changeset
86 LAST : CONSTANT := 10;
kono
parents:
diff changeset
87
kono
parents:
diff changeset
88 SUBTYPE INDEX IS INTEGER RANGE FIRST .. LAST;
kono
parents:
diff changeset
89
kono
parents:
diff changeset
90 TYPE PARENT IS ARRAY (INDEX RANGE <>, INDEX RANGE <>) OF
kono
parents:
diff changeset
91 COMPONENT;
kono
parents:
diff changeset
92
kono
parents:
diff changeset
93 FUNCTION CREATE ( F1, L1 : INDEX;
kono
parents:
diff changeset
94 F2, L2 : INDEX;
kono
parents:
diff changeset
95 C : COMPONENT;
kono
parents:
diff changeset
96 DUMMY : PARENT -- TO RESOLVE OVERLOADING.
kono
parents:
diff changeset
97 ) RETURN PARENT;
kono
parents:
diff changeset
98
kono
parents:
diff changeset
99 FUNCTION EQUAL (X, Y : PARENT) RETURN BOOLEAN;
kono
parents:
diff changeset
100
kono
parents:
diff changeset
101 FUNCTION AGGR (A, B, C, D, E, F, G, H : COMPONENT)
kono
parents:
diff changeset
102 RETURN PARENT;
kono
parents:
diff changeset
103
kono
parents:
diff changeset
104 END PKG_P;
kono
parents:
diff changeset
105
kono
parents:
diff changeset
106 USE PKG_P;
kono
parents:
diff changeset
107
kono
parents:
diff changeset
108 TYPE T IS NEW PARENT (IDENT_INT (4) .. IDENT_INT (5),
kono
parents:
diff changeset
109 IDENT_INT (6) .. IDENT_INT (8));
kono
parents:
diff changeset
110
kono
parents:
diff changeset
111 SUBTYPE SUBPARENT IS PARENT (4 .. 5, 6 .. 8);
kono
parents:
diff changeset
112
kono
parents:
diff changeset
113 TYPE S IS NEW SUBPARENT;
kono
parents:
diff changeset
114
kono
parents:
diff changeset
115 X : T;
kono
parents:
diff changeset
116 Y : S;
kono
parents:
diff changeset
117
kono
parents:
diff changeset
118 PACKAGE BODY PKG_L IS
kono
parents:
diff changeset
119
kono
parents:
diff changeset
120 FUNCTION CREATE (X : INTEGER) RETURN LP IS
kono
parents:
diff changeset
121 BEGIN
kono
parents:
diff changeset
122 RETURN LP (IDENT_INT (X));
kono
parents:
diff changeset
123 END CREATE;
kono
parents:
diff changeset
124
kono
parents:
diff changeset
125 FUNCTION VALUE (X : LP) RETURN INTEGER IS
kono
parents:
diff changeset
126 BEGIN
kono
parents:
diff changeset
127 RETURN INTEGER (X);
kono
parents:
diff changeset
128 END VALUE;
kono
parents:
diff changeset
129
kono
parents:
diff changeset
130 FUNCTION EQUAL (X, Y : LP) RETURN BOOLEAN IS
kono
parents:
diff changeset
131 BEGIN
kono
parents:
diff changeset
132 RETURN X = Y;
kono
parents:
diff changeset
133 END EQUAL;
kono
parents:
diff changeset
134
kono
parents:
diff changeset
135 PROCEDURE ASSIGN (X : OUT LP; Y : LP) IS
kono
parents:
diff changeset
136 BEGIN
kono
parents:
diff changeset
137 X := Y;
kono
parents:
diff changeset
138 END ASSIGN;
kono
parents:
diff changeset
139
kono
parents:
diff changeset
140 END PKG_L;
kono
parents:
diff changeset
141
kono
parents:
diff changeset
142 PACKAGE BODY PKG_P IS
kono
parents:
diff changeset
143
kono
parents:
diff changeset
144 FUNCTION CREATE
kono
parents:
diff changeset
145 ( F1, L1 : INDEX;
kono
parents:
diff changeset
146 F2, L2 : INDEX;
kono
parents:
diff changeset
147 C : COMPONENT;
kono
parents:
diff changeset
148 DUMMY : PARENT
kono
parents:
diff changeset
149 ) RETURN PARENT
kono
parents:
diff changeset
150 IS
kono
parents:
diff changeset
151 A : PARENT (F1 .. L1, F2 .. L2);
kono
parents:
diff changeset
152 B : COMPONENT;
kono
parents:
diff changeset
153 BEGIN
kono
parents:
diff changeset
154 ASSIGN (B, C);
kono
parents:
diff changeset
155 FOR I IN F1 .. L1 LOOP
kono
parents:
diff changeset
156 FOR J IN F2 .. L2 LOOP
kono
parents:
diff changeset
157 ASSIGN (A (I, J), B);
kono
parents:
diff changeset
158 ASSIGN (B, CREATE (VALUE (B) + 1));
kono
parents:
diff changeset
159 END LOOP;
kono
parents:
diff changeset
160 END LOOP;
kono
parents:
diff changeset
161 RETURN A;
kono
parents:
diff changeset
162 END CREATE;
kono
parents:
diff changeset
163
kono
parents:
diff changeset
164 FUNCTION EQUAL (X, Y : PARENT) RETURN BOOLEAN IS
kono
parents:
diff changeset
165 BEGIN
kono
parents:
diff changeset
166 IF X'LENGTH /= Y'LENGTH OR
kono
parents:
diff changeset
167 X'LENGTH(2) /= Y'LENGTH(2) THEN
kono
parents:
diff changeset
168 RETURN FALSE;
kono
parents:
diff changeset
169 ELSE FOR I IN X'RANGE LOOP
kono
parents:
diff changeset
170 FOR J IN X'RANGE(2) LOOP
kono
parents:
diff changeset
171 IF NOT EQUAL (X (I, J),
kono
parents:
diff changeset
172 Y (I - X'FIRST + Y'FIRST,
kono
parents:
diff changeset
173 J - X'FIRST(2) +
kono
parents:
diff changeset
174 Y'FIRST(2))) THEN
kono
parents:
diff changeset
175 RETURN FALSE;
kono
parents:
diff changeset
176 END IF;
kono
parents:
diff changeset
177 END LOOP;
kono
parents:
diff changeset
178 END LOOP;
kono
parents:
diff changeset
179 END IF;
kono
parents:
diff changeset
180 RETURN TRUE;
kono
parents:
diff changeset
181 END EQUAL;
kono
parents:
diff changeset
182
kono
parents:
diff changeset
183 FUNCTION AGGR (A, B, C, D, E, F, G, H : COMPONENT)
kono
parents:
diff changeset
184 RETURN PARENT IS
kono
parents:
diff changeset
185 X : PARENT (INDEX'FIRST .. INDEX'FIRST + 3,
kono
parents:
diff changeset
186 INDEX'FIRST .. INDEX'FIRST + 1);
kono
parents:
diff changeset
187 BEGIN
kono
parents:
diff changeset
188 ASSIGN (X (INDEX'FIRST , INDEX'FIRST ), A);
kono
parents:
diff changeset
189 ASSIGN (X (INDEX'FIRST , INDEX'FIRST + 1), B);
kono
parents:
diff changeset
190 ASSIGN (X (INDEX'FIRST + 1, INDEX'FIRST ), C);
kono
parents:
diff changeset
191 ASSIGN (X (INDEX'FIRST + 1, INDEX'FIRST + 1), D);
kono
parents:
diff changeset
192 ASSIGN (X (INDEX'FIRST + 2, INDEX'FIRST ), E);
kono
parents:
diff changeset
193 ASSIGN (X (INDEX'FIRST + 2, INDEX'FIRST + 1), F);
kono
parents:
diff changeset
194 ASSIGN (X (INDEX'FIRST + 3, INDEX'FIRST ), G);
kono
parents:
diff changeset
195 ASSIGN (X (INDEX'FIRST + 3, INDEX'FIRST + 1), H);
kono
parents:
diff changeset
196 RETURN X;
kono
parents:
diff changeset
197 END AGGR;
kono
parents:
diff changeset
198
kono
parents:
diff changeset
199 END PKG_P;
kono
parents:
diff changeset
200
kono
parents:
diff changeset
201 PROCEDURE ASSIGN (X : IN OUT T; Y : T) IS
kono
parents:
diff changeset
202 BEGIN
kono
parents:
diff changeset
203 FOR I IN X'RANGE LOOP
kono
parents:
diff changeset
204 FOR J IN X'RANGE(2) LOOP
kono
parents:
diff changeset
205 ASSIGN (X (I, J), Y (I, J));
kono
parents:
diff changeset
206 END LOOP;
kono
parents:
diff changeset
207 END LOOP;
kono
parents:
diff changeset
208 END ASSIGN;
kono
parents:
diff changeset
209
kono
parents:
diff changeset
210 PROCEDURE ASSIGN (X : IN OUT S; Y : S) IS
kono
parents:
diff changeset
211 BEGIN
kono
parents:
diff changeset
212 FOR I IN X'RANGE LOOP
kono
parents:
diff changeset
213 FOR J IN X'RANGE(2) LOOP
kono
parents:
diff changeset
214 ASSIGN (X (I, J), Y (I, J));
kono
parents:
diff changeset
215 END LOOP;
kono
parents:
diff changeset
216 END LOOP;
kono
parents:
diff changeset
217 END ASSIGN;
kono
parents:
diff changeset
218
kono
parents:
diff changeset
219 BEGIN
kono
parents:
diff changeset
220 TEST ("C34005U", "CHECK THAT ALL VALUES OF THE PARENT (BASE) " &
kono
parents:
diff changeset
221 "TYPE ARE PRESENT FOR THE DERIVED (BASE) TYPE " &
kono
parents:
diff changeset
222 "WHEN THE DERIVED TYPE DEFINITION IS " &
kono
parents:
diff changeset
223 "CONSTRAINED. ALSO CHECK THAT ANY CONSTRAINT " &
kono
parents:
diff changeset
224 "IMPOSED ON THE PARENT SUBTYPE IS ALSO IMPOSED " &
kono
parents:
diff changeset
225 "ON THE DERIVED SUBTYPE. CHECK FOR DERIVED " &
kono
parents:
diff changeset
226 "MULTI-DIMENSIONAL ARRAY TYPES WHOSE COMPONENT " &
kono
parents:
diff changeset
227 "TYPE IS A LIMITED TYPE");
kono
parents:
diff changeset
228
kono
parents:
diff changeset
229 FOR I IN X'RANGE LOOP
kono
parents:
diff changeset
230 FOR J IN X'RANGE(2) LOOP
kono
parents:
diff changeset
231 ASSIGN (X (I, J), C2);
kono
parents:
diff changeset
232 ASSIGN (Y (I, J), C2);
kono
parents:
diff changeset
233 END LOOP;
kono
parents:
diff changeset
234 END LOOP;
kono
parents:
diff changeset
235
kono
parents:
diff changeset
236 -- CHECK THAT BASE TYPE VALUES NOT IN THE SUBTYPE ARE PRESENT.
kono
parents:
diff changeset
237 BEGIN
kono
parents:
diff changeset
238 IF NOT EQUAL (CREATE (6, 9, 2, 3, C1, X),
kono
parents:
diff changeset
239 AGGR (C1, C2, C3, C4, C5, C6, C7, C8)) OR
kono
parents:
diff changeset
240 NOT EQUAL (CREATE (6, 9, 2, 3, C1, Y),
kono
parents:
diff changeset
241 AGGR (C1, C2, C3, C4, C5, C6, C7, C8)) THEN
kono
parents:
diff changeset
242 FAILED ("CAN'T CREATE BASE TYPE VALUES OUTSIDE THE " &
kono
parents:
diff changeset
243 "SUBTYPE");
kono
parents:
diff changeset
244 END IF;
kono
parents:
diff changeset
245 EXCEPTION
kono
parents:
diff changeset
246 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
247 FAILED ("CONSTRAINT_ERROR WHEN TRYING TO CREATE BASE " &
kono
parents:
diff changeset
248 "TYPE VALUES OUTSIDE THE SUBTYPE");
kono
parents:
diff changeset
249 WHEN OTHERS =>
kono
parents:
diff changeset
250 FAILED ("EXCEPTION WHEN TRYING TO CREATE BASE TYPE " &
kono
parents:
diff changeset
251 "VALUES OUTSIDE THE SUBTYPE");
kono
parents:
diff changeset
252 END;
kono
parents:
diff changeset
253
kono
parents:
diff changeset
254 IF AGGR (C1, C2, C3, C4, C5, C6, C7, C8) IN T OR
kono
parents:
diff changeset
255 AGGR (C1, C2, C3, C4, C5, C6, C7, C8) IN S THEN
kono
parents:
diff changeset
256 FAILED ("INCORRECT ""IN""");
kono
parents:
diff changeset
257 END IF;
kono
parents:
diff changeset
258
kono
parents:
diff changeset
259 -- CHECK THE DERIVED SUBTYPE CONSTRAINT.
kono
parents:
diff changeset
260
kono
parents:
diff changeset
261 IF T'FIRST /= 4 OR T'LAST /= 5 OR
kono
parents:
diff changeset
262 S'FIRST /= 4 OR S'LAST /= 5 OR
kono
parents:
diff changeset
263 T'FIRST (2) /= 6 OR T'LAST (2) /= 8 OR
kono
parents:
diff changeset
264 S'FIRST (2) /= 6 OR S'LAST (2) /= 8 THEN
kono
parents:
diff changeset
265 FAILED ("INCORRECT 'FIRST OR 'LAST");
kono
parents:
diff changeset
266 END IF;
kono
parents:
diff changeset
267
kono
parents:
diff changeset
268 BEGIN
kono
parents:
diff changeset
269 ASSIGN (X, CREATE (4, 5, 6, 8, C1, X));
kono
parents:
diff changeset
270 ASSIGN (Y, CREATE (4, 5, 6, 8, C1, Y));
kono
parents:
diff changeset
271 IF NOT EQUAL (PARENT (X), PARENT (Y)) THEN -- USE X AND Y.
kono
parents:
diff changeset
272 FAILED ("INCORRECT CONVERSION TO PARENT");
kono
parents:
diff changeset
273 END IF;
kono
parents:
diff changeset
274 EXCEPTION
kono
parents:
diff changeset
275 WHEN OTHERS =>
kono
parents:
diff changeset
276 FAILED ("EXCEPTION RAISED BY OK ASSIGN CALL");
kono
parents:
diff changeset
277 END;
kono
parents:
diff changeset
278
kono
parents:
diff changeset
279 BEGIN
kono
parents:
diff changeset
280 ASSIGN (X, CREATE (4, 4, 6, 8, C1, X));
kono
parents:
diff changeset
281 FAILED ("CONSTRAINT_ERROR NOT RAISED -- " &
kono
parents:
diff changeset
282 "ASSIGN (X, CREATE (4, 4, 6, 8, C1, X))");
kono
parents:
diff changeset
283 IF EQUAL (X, CREATE (4, 4, 6, 8, C1, X)) THEN -- USE X.
kono
parents:
diff changeset
284 COMMENT ("X ALTERED -- " &
kono
parents:
diff changeset
285 "ASSIGN (X, CREATE (4, 4, 6, 8, C1, X))");
kono
parents:
diff changeset
286 END IF;
kono
parents:
diff changeset
287 EXCEPTION
kono
parents:
diff changeset
288 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
289 NULL;
kono
parents:
diff changeset
290 WHEN OTHERS =>
kono
parents:
diff changeset
291 FAILED ("WRONG EXCEPTION RAISED -- " &
kono
parents:
diff changeset
292 "ASSIGN (X, CREATE (4, 4, 6, 8, C1, X))");
kono
parents:
diff changeset
293 END;
kono
parents:
diff changeset
294
kono
parents:
diff changeset
295 BEGIN
kono
parents:
diff changeset
296 ASSIGN (X, CREATE (4, 6, 6, 8, C1, X));
kono
parents:
diff changeset
297 FAILED ("CONSTRAINT_ERROR NOT RAISED -- " &
kono
parents:
diff changeset
298 "ASSIGN (X, CREATE (4, 6, 6, 8, C1, X))");
kono
parents:
diff changeset
299 IF EQUAL (X, CREATE (4, 6, 6, 8, C1, X)) THEN -- USE X.
kono
parents:
diff changeset
300 COMMENT ("X ALTERED -- " &
kono
parents:
diff changeset
301 "ASSIGN (X, CREATE (4, 6, 6, 8, C1, X))");
kono
parents:
diff changeset
302 END IF;
kono
parents:
diff changeset
303 EXCEPTION
kono
parents:
diff changeset
304 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
305 NULL;
kono
parents:
diff changeset
306 WHEN OTHERS =>
kono
parents:
diff changeset
307 FAILED ("WRONG EXCEPTION RAISED -- " &
kono
parents:
diff changeset
308 "ASSIGN (X, CREATE (4, 6, 6, 8, C1, X))");
kono
parents:
diff changeset
309 END;
kono
parents:
diff changeset
310
kono
parents:
diff changeset
311 BEGIN
kono
parents:
diff changeset
312 ASSIGN (X, CREATE (4, 5, 6, 7, C1, X));
kono
parents:
diff changeset
313 FAILED ("CONSTRAINT_ERROR NOT RAISED -- " &
kono
parents:
diff changeset
314 "ASSIGN (X, CREATE (4, 5, 6, 7, C1, X))");
kono
parents:
diff changeset
315 IF EQUAL (X, CREATE (4, 5, 6, 7, C1, X)) THEN -- USE X.
kono
parents:
diff changeset
316 COMMENT ("X ALTERED -- " &
kono
parents:
diff changeset
317 "ASSIGN (X, CREATE (4, 5, 6, 7, C1, X))");
kono
parents:
diff changeset
318 END IF;
kono
parents:
diff changeset
319 EXCEPTION
kono
parents:
diff changeset
320 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
321 NULL;
kono
parents:
diff changeset
322 WHEN OTHERS =>
kono
parents:
diff changeset
323 FAILED ("WRONG EXCEPTION RAISED -- " &
kono
parents:
diff changeset
324 "ASSIGN (X, CREATE (4, 5, 6, 7, C1, X))");
kono
parents:
diff changeset
325 END;
kono
parents:
diff changeset
326
kono
parents:
diff changeset
327 BEGIN
kono
parents:
diff changeset
328 ASSIGN (X, CREATE (4, 5, 6, 9, C1, X));
kono
parents:
diff changeset
329 FAILED ("CONSTRAINT_ERROR NOT RAISED -- " &
kono
parents:
diff changeset
330 "ASSIGN (X, CREATE (4, 5, 6, 9, C1, X))");
kono
parents:
diff changeset
331 IF EQUAL (X, CREATE (4, 5, 6, 9, C1, X)) THEN -- USE X.
kono
parents:
diff changeset
332 COMMENT ("X ALTERED -- " &
kono
parents:
diff changeset
333 "ASSIGN (X, CREATE (4, 5, 6, 9, C1, X))");
kono
parents:
diff changeset
334 END IF;
kono
parents:
diff changeset
335 EXCEPTION
kono
parents:
diff changeset
336 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
337 NULL;
kono
parents:
diff changeset
338 WHEN OTHERS =>
kono
parents:
diff changeset
339 FAILED ("WRONG EXCEPTION RAISED -- " &
kono
parents:
diff changeset
340 "ASSIGN (X, CREATE (4, 5, 6, 9, C1, X))");
kono
parents:
diff changeset
341 END;
kono
parents:
diff changeset
342
kono
parents:
diff changeset
343 BEGIN
kono
parents:
diff changeset
344 ASSIGN (Y, CREATE (4, 4, 6, 8, C1, Y));
kono
parents:
diff changeset
345 FAILED ("CONSTRAINT_ERROR NOT RAISED -- " &
kono
parents:
diff changeset
346 "ASSIGN (Y, CREATE (4, 4, 6, 8, C1, Y))");
kono
parents:
diff changeset
347 IF EQUAL (Y, CREATE (4, 4, 6, 8, C1, Y)) THEN -- USE Y.
kono
parents:
diff changeset
348 COMMENT ("Y ALTERED -- " &
kono
parents:
diff changeset
349 "ASSIGN (Y, CREATE (4, 4, 6, 8, C1, Y))");
kono
parents:
diff changeset
350 END IF;
kono
parents:
diff changeset
351 EXCEPTION
kono
parents:
diff changeset
352 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
353 NULL;
kono
parents:
diff changeset
354 WHEN OTHERS =>
kono
parents:
diff changeset
355 FAILED ("WRONG EXCEPTION RAISED -- " &
kono
parents:
diff changeset
356 "ASSIGN (Y, CREATE (4, 4, 6, 8, C1, Y))");
kono
parents:
diff changeset
357 END;
kono
parents:
diff changeset
358
kono
parents:
diff changeset
359 BEGIN
kono
parents:
diff changeset
360 ASSIGN (Y, CREATE (4, 6, 6, 8, C1, Y));
kono
parents:
diff changeset
361 FAILED ("CONSTRAINT_ERROR NOT RAISED -- " &
kono
parents:
diff changeset
362 "ASSIGN (Y, CREATE (4, 6, 6, 8, C1, Y))");
kono
parents:
diff changeset
363 IF EQUAL (Y, CREATE (4, 6, 6, 8, C1, Y)) THEN -- USE Y.
kono
parents:
diff changeset
364 COMMENT ("Y ALTERED -- " &
kono
parents:
diff changeset
365 "ASSIGN (Y, CREATE (4, 6, 6, 8, C1, Y))");
kono
parents:
diff changeset
366 END IF;
kono
parents:
diff changeset
367 EXCEPTION
kono
parents:
diff changeset
368 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
369 NULL;
kono
parents:
diff changeset
370 WHEN OTHERS =>
kono
parents:
diff changeset
371 FAILED ("WRONG EXCEPTION RAISED -- " &
kono
parents:
diff changeset
372 "ASSIGN (Y, CREATE (4, 6, 6, 8, C1, Y))");
kono
parents:
diff changeset
373 END;
kono
parents:
diff changeset
374
kono
parents:
diff changeset
375 BEGIN
kono
parents:
diff changeset
376 ASSIGN (Y, CREATE (4, 5, 6, 7, C1, Y));
kono
parents:
diff changeset
377 FAILED ("CONSTRAINT_ERROR NOT RAISED -- " &
kono
parents:
diff changeset
378 "ASSIGN (Y, CREATE (4, 5, 6, 7, C1, Y))");
kono
parents:
diff changeset
379 IF EQUAL (Y, CREATE (4, 5, 6, 7, C1, Y)) THEN -- USE Y.
kono
parents:
diff changeset
380 COMMENT ("Y ALTERED -- " &
kono
parents:
diff changeset
381 "ASSIGN (Y, CREATE (4, 5, 6, 7, C1, Y))");
kono
parents:
diff changeset
382 END IF;
kono
parents:
diff changeset
383 EXCEPTION
kono
parents:
diff changeset
384 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
385 NULL;
kono
parents:
diff changeset
386 WHEN OTHERS =>
kono
parents:
diff changeset
387 FAILED ("WRONG EXCEPTION RAISED -- " &
kono
parents:
diff changeset
388 "ASSIGN (Y, CREATE (4, 5, 6, 7, C1, Y))");
kono
parents:
diff changeset
389 END;
kono
parents:
diff changeset
390
kono
parents:
diff changeset
391 BEGIN
kono
parents:
diff changeset
392 ASSIGN (Y, CREATE (4, 5, 6, 9, C1, Y));
kono
parents:
diff changeset
393 FAILED ("CONSTRAINT_ERROR NOT RAISED -- " &
kono
parents:
diff changeset
394 "ASSIGN (Y, CREATE (4, 5, 6, 9, C1, Y))");
kono
parents:
diff changeset
395 IF EQUAL (Y, CREATE (4, 5, 6, 9, C1, Y)) THEN -- USE Y.
kono
parents:
diff changeset
396 COMMENT ("Y ALTERED -- " &
kono
parents:
diff changeset
397 "ASSIGN (Y, CREATE (4, 5, 6, 9, C1, Y))");
kono
parents:
diff changeset
398 END IF;
kono
parents:
diff changeset
399 EXCEPTION
kono
parents:
diff changeset
400 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
401 NULL;
kono
parents:
diff changeset
402 WHEN OTHERS =>
kono
parents:
diff changeset
403 FAILED ("WRONG EXCEPTION RAISED -- " &
kono
parents:
diff changeset
404 "ASSIGN (Y, CREATE (4, 5, 6, 9, C1, Y))");
kono
parents:
diff changeset
405 END;
kono
parents:
diff changeset
406
kono
parents:
diff changeset
407 RESULT;
kono
parents:
diff changeset
408 END C34005U;