annotate gcc/testsuite/ada/acats/tests/cc/cc3007b.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 -- CC3007B.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 -- CHECK THAT THE NAMES IN A GENERIC INSTANTIATION ARE STATICALLY
kono
parents:
diff changeset
26 -- IDENTIFIED (I.E., BOUND) AT THE TEXTUAL POINT OF THE INSTANTIA-
kono
parents:
diff changeset
27 -- TION, AND ARE BOUND BEFORE BEING "SUBSTITUTED" FOR THE COR-
kono
parents:
diff changeset
28 -- RESPONDING GENERIC FORMAL PARAMETERS IN THE SPECIFICATION AND
kono
parents:
diff changeset
29 -- BODY TEMPLATES.
kono
parents:
diff changeset
30 --
kono
parents:
diff changeset
31 -- SEE AI-00365/05-BI-WJ.
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33 -- HISTORY:
kono
parents:
diff changeset
34 -- EDWARD V. BERARD, 15 AUGUST 1990
kono
parents:
diff changeset
35 -- DAS 08 OCT 90 CHANGED INSTANTIATIONS TO USE VARIABLES
kono
parents:
diff changeset
36 -- M1 AND M2 IN THE FIRST_BLOCK INSTANTIA-
kono
parents:
diff changeset
37 -- TION AND TO ASSIGN THIRD_DATE AND
kono
parents:
diff changeset
38 -- FOURTH_DATE VALUES BEFORE AND AFTER THE
kono
parents:
diff changeset
39 -- SECOND_BLOCK INSTANTIATION.
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 WITH REPORT;
kono
parents:
diff changeset
42
kono
parents:
diff changeset
43 PROCEDURE CC3007B IS
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 INCREMENTED_VALUE : NATURAL := 0;
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 TYPE MONTH_TYPE IS (JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG,
kono
parents:
diff changeset
48 SEP, OCT, NOV, DEC);
kono
parents:
diff changeset
49 TYPE DAY_TYPE IS RANGE 1 .. 31;
kono
parents:
diff changeset
50 TYPE YEAR_TYPE IS RANGE 1904 .. 2050;
kono
parents:
diff changeset
51 TYPE DATE IS RECORD
kono
parents:
diff changeset
52 MONTH : MONTH_TYPE;
kono
parents:
diff changeset
53 DAY : DAY_TYPE;
kono
parents:
diff changeset
54 YEAR : YEAR_TYPE;
kono
parents:
diff changeset
55 END RECORD;
kono
parents:
diff changeset
56
kono
parents:
diff changeset
57 TYPE DATE_ACCESS IS ACCESS DATE;
kono
parents:
diff changeset
58
kono
parents:
diff changeset
59 TODAY : DATE := (MONTH => AUG,
kono
parents:
diff changeset
60 DAY => 8,
kono
parents:
diff changeset
61 YEAR => 1990);
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 CHRISTMAS : DATE := (MONTH => DEC,
kono
parents:
diff changeset
64 DAY => 25,
kono
parents:
diff changeset
65 YEAR => 1948);
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 WALL_DATE : DATE := (MONTH => NOV,
kono
parents:
diff changeset
68 DAY => 9,
kono
parents:
diff changeset
69 YEAR => 1989);
kono
parents:
diff changeset
70
kono
parents:
diff changeset
71 BIRTH_DATE : DATE := (MONTH => OCT,
kono
parents:
diff changeset
72 DAY => 3,
kono
parents:
diff changeset
73 YEAR => 1949);
kono
parents:
diff changeset
74
kono
parents:
diff changeset
75 FIRST_DUE_DATE : DATE := (MONTH => JAN,
kono
parents:
diff changeset
76 DAY => 23,
kono
parents:
diff changeset
77 YEAR => 1990);
kono
parents:
diff changeset
78
kono
parents:
diff changeset
79 LAST_DUE_DATE : DATE := (MONTH => DEC,
kono
parents:
diff changeset
80 DAY => 20,
kono
parents:
diff changeset
81 YEAR => 1990);
kono
parents:
diff changeset
82
kono
parents:
diff changeset
83 THIS_MONTH : MONTH_TYPE := AUG;
kono
parents:
diff changeset
84
kono
parents:
diff changeset
85 STORED_RECORD : DATE := TODAY;
kono
parents:
diff changeset
86
kono
parents:
diff changeset
87 STORED_INDEX : MONTH_TYPE := AUG;
kono
parents:
diff changeset
88
kono
parents:
diff changeset
89 FIRST_DATE : DATE_ACCESS := NEW DATE'(WALL_DATE);
kono
parents:
diff changeset
90 SECOND_DATE : DATE_ACCESS := FIRST_DATE;
kono
parents:
diff changeset
91
kono
parents:
diff changeset
92 THIRD_DATE : DATE_ACCESS := NEW DATE'(BIRTH_DATE);
kono
parents:
diff changeset
93 FOURTH_DATE : DATE_ACCESS := NEW DATE'(CHRISTMAS);
kono
parents:
diff changeset
94
kono
parents:
diff changeset
95 TYPE DUE_DATES IS ARRAY (MONTH_TYPE RANGE JAN .. DEC) OF DATE;
kono
parents:
diff changeset
96 REPORT_DATES : DUE_DATES := ((JAN, 23, 1990), (FEB, 23, 1990),
kono
parents:
diff changeset
97 (MAR, 23, 1990), (APR, 23, 1990),
kono
parents:
diff changeset
98 (MAY, 23, 1990), (JUN, 22, 1990),
kono
parents:
diff changeset
99 (JUL, 23, 1990), (AUG, 23, 1990),
kono
parents:
diff changeset
100 (SEP, 24, 1990), (OCT, 23, 1990),
kono
parents:
diff changeset
101 (NOV, 23, 1990), (DEC, 20, 1990));
kono
parents:
diff changeset
102
kono
parents:
diff changeset
103 GENERIC
kono
parents:
diff changeset
104
kono
parents:
diff changeset
105 NATURALLY : IN NATURAL;
kono
parents:
diff changeset
106 FIRST_RECORD : IN OUT DATE;
kono
parents:
diff changeset
107 SECOND_RECORD : IN OUT DATE;
kono
parents:
diff changeset
108 TYPE RECORD_POINTER IS ACCESS DATE;
kono
parents:
diff changeset
109 POINTER : IN OUT RECORD_POINTER;
kono
parents:
diff changeset
110 TYPE ARRAY_TYPE IS ARRAY (MONTH_TYPE) OF DATE;
kono
parents:
diff changeset
111 THIS_ARRAY : IN OUT ARRAY_TYPE;
kono
parents:
diff changeset
112 FIRST_ARRAY_ELEMENT : IN OUT DATE;
kono
parents:
diff changeset
113 SECOND_ARRAY_ELEMENT : IN OUT DATE;
kono
parents:
diff changeset
114 INDEX_ELEMENT : IN OUT MONTH_TYPE;
kono
parents:
diff changeset
115 POINTER_TEST : IN OUT DATE;
kono
parents:
diff changeset
116 ANOTHER_POINTER_TEST : IN OUT DATE;
kono
parents:
diff changeset
117
kono
parents:
diff changeset
118 PACKAGE TEST_ACTUAL_PARAMETERS IS
kono
parents:
diff changeset
119
kono
parents:
diff changeset
120 PROCEDURE EVALUATE_FUNCTION;
kono
parents:
diff changeset
121 PROCEDURE CHECK_RECORDS;
kono
parents:
diff changeset
122 PROCEDURE CHECK_ACCESS;
kono
parents:
diff changeset
123 PROCEDURE CHECK_ARRAY;
kono
parents:
diff changeset
124 PROCEDURE CHECK_ARRAY_ELEMENTS;
kono
parents:
diff changeset
125 PROCEDURE CHECK_SCALAR;
kono
parents:
diff changeset
126 PROCEDURE CHECK_POINTERS;
kono
parents:
diff changeset
127
kono
parents:
diff changeset
128 END TEST_ACTUAL_PARAMETERS;
kono
parents:
diff changeset
129
kono
parents:
diff changeset
130 PACKAGE BODY TEST_ACTUAL_PARAMETERS IS
kono
parents:
diff changeset
131
kono
parents:
diff changeset
132 PROCEDURE EVALUATE_FUNCTION IS
kono
parents:
diff changeset
133 BEGIN -- EVALUATE_FUNCTION
kono
parents:
diff changeset
134
kono
parents:
diff changeset
135 IF (INCREMENTED_VALUE = 0) OR
kono
parents:
diff changeset
136 (NATURALLY /= INCREMENTED_VALUE) THEN
kono
parents:
diff changeset
137 REPORT.FAILED ("PROBLEMS EVALUATING FUNCTION " &
kono
parents:
diff changeset
138 "PARAMETER.");
kono
parents:
diff changeset
139 END IF;
kono
parents:
diff changeset
140
kono
parents:
diff changeset
141 END EVALUATE_FUNCTION;
kono
parents:
diff changeset
142
kono
parents:
diff changeset
143 PROCEDURE CHECK_RECORDS IS
kono
parents:
diff changeset
144
kono
parents:
diff changeset
145 STORE : DATE;
kono
parents:
diff changeset
146
kono
parents:
diff changeset
147 BEGIN -- CHECK_RECORDS
kono
parents:
diff changeset
148
kono
parents:
diff changeset
149 IF STORED_RECORD /= FIRST_RECORD THEN
kono
parents:
diff changeset
150 REPORT.FAILED ("PROBLEM WITH RECORD TYPES");
kono
parents:
diff changeset
151 ELSE
kono
parents:
diff changeset
152 STORED_RECORD := SECOND_RECORD;
kono
parents:
diff changeset
153 STORE := FIRST_RECORD;
kono
parents:
diff changeset
154 FIRST_RECORD := SECOND_RECORD;
kono
parents:
diff changeset
155 SECOND_RECORD := STORE;
kono
parents:
diff changeset
156 END IF;
kono
parents:
diff changeset
157
kono
parents:
diff changeset
158 END CHECK_RECORDS;
kono
parents:
diff changeset
159
kono
parents:
diff changeset
160 PROCEDURE CHECK_ACCESS IS
kono
parents:
diff changeset
161 BEGIN -- CHECK_ACCESS
kono
parents:
diff changeset
162
kono
parents:
diff changeset
163 IF ((INCREMENTED_VALUE / 2) * 2) /= INCREMENTED_VALUE
kono
parents:
diff changeset
164 THEN
kono
parents:
diff changeset
165 IF POINTER.ALL /= DATE'(WALL_DATE) THEN
kono
parents:
diff changeset
166 REPORT.FAILED ("PROBLEM WITH ACCESS TYPES " &
kono
parents:
diff changeset
167 "- 1");
kono
parents:
diff changeset
168 ELSE
kono
parents:
diff changeset
169 POINTER.ALL := DATE'(BIRTH_DATE);
kono
parents:
diff changeset
170 END IF;
kono
parents:
diff changeset
171 ELSE
kono
parents:
diff changeset
172 IF POINTER.ALL /= DATE'(BIRTH_DATE) THEN
kono
parents:
diff changeset
173 REPORT.FAILED ("PROBLEM WITH ACCESS TYPES " &
kono
parents:
diff changeset
174 "- 2");
kono
parents:
diff changeset
175 ELSE
kono
parents:
diff changeset
176 POINTER.ALL := DATE'(WALL_DATE);
kono
parents:
diff changeset
177 END IF;
kono
parents:
diff changeset
178 END IF;
kono
parents:
diff changeset
179
kono
parents:
diff changeset
180 END CHECK_ACCESS;
kono
parents:
diff changeset
181
kono
parents:
diff changeset
182 PROCEDURE CHECK_ARRAY IS
kono
parents:
diff changeset
183
kono
parents:
diff changeset
184 STORE : DATE;
kono
parents:
diff changeset
185
kono
parents:
diff changeset
186 BEGIN -- CHECK_ARRAY
kono
parents:
diff changeset
187
kono
parents:
diff changeset
188 IF ((INCREMENTED_VALUE / 2) * 2) /= INCREMENTED_VALUE
kono
parents:
diff changeset
189 THEN
kono
parents:
diff changeset
190 IF THIS_ARRAY (THIS_ARRAY'FIRST) /= FIRST_DUE_DATE
kono
parents:
diff changeset
191 THEN
kono
parents:
diff changeset
192 REPORT.FAILED ("PROBLEM WITH ARRAY TYPES - 1");
kono
parents:
diff changeset
193 ELSE
kono
parents:
diff changeset
194 THIS_ARRAY (THIS_ARRAY'FIRST) := LAST_DUE_DATE;
kono
parents:
diff changeset
195 THIS_ARRAY (THIS_ARRAY'LAST) := FIRST_DUE_DATE;
kono
parents:
diff changeset
196 END IF;
kono
parents:
diff changeset
197 ELSE
kono
parents:
diff changeset
198 IF THIS_ARRAY (THIS_ARRAY'FIRST) /= LAST_DUE_DATE
kono
parents:
diff changeset
199 THEN
kono
parents:
diff changeset
200 REPORT.FAILED ("PROBLEM WITH ARRAY TYPES - 2");
kono
parents:
diff changeset
201 ELSE
kono
parents:
diff changeset
202 THIS_ARRAY (THIS_ARRAY'FIRST) :=
kono
parents:
diff changeset
203 FIRST_DUE_DATE;
kono
parents:
diff changeset
204 THIS_ARRAY (THIS_ARRAY'LAST) := LAST_DUE_DATE;
kono
parents:
diff changeset
205 END IF;
kono
parents:
diff changeset
206 END IF;
kono
parents:
diff changeset
207
kono
parents:
diff changeset
208 END CHECK_ARRAY;
kono
parents:
diff changeset
209
kono
parents:
diff changeset
210 PROCEDURE CHECK_ARRAY_ELEMENTS IS
kono
parents:
diff changeset
211
kono
parents:
diff changeset
212 STORE : DATE;
kono
parents:
diff changeset
213
kono
parents:
diff changeset
214 BEGIN -- CHECK_ARRAY_ELEMENTS
kono
parents:
diff changeset
215
kono
parents:
diff changeset
216 IF ((INCREMENTED_VALUE / 2) * 2) /= INCREMENTED_VALUE
kono
parents:
diff changeset
217 THEN
kono
parents:
diff changeset
218 IF (FIRST_ARRAY_ELEMENT.MONTH /= MAY) OR
kono
parents:
diff changeset
219 (SECOND_ARRAY_ELEMENT.DAY /= 22) THEN
kono
parents:
diff changeset
220 REPORT.FAILED ("PROBLEM WITH ARRAY ELEMENTS " &
kono
parents:
diff changeset
221 "- 1");
kono
parents:
diff changeset
222 ELSE
kono
parents:
diff changeset
223 STORE := FIRST_ARRAY_ELEMENT;
kono
parents:
diff changeset
224 FIRST_ARRAY_ELEMENT := SECOND_ARRAY_ELEMENT;
kono
parents:
diff changeset
225 SECOND_ARRAY_ELEMENT := STORE;
kono
parents:
diff changeset
226 END IF;
kono
parents:
diff changeset
227 ELSE
kono
parents:
diff changeset
228 IF (FIRST_ARRAY_ELEMENT.MONTH /= JUN) OR
kono
parents:
diff changeset
229 (SECOND_ARRAY_ELEMENT.DAY /= 23) THEN
kono
parents:
diff changeset
230 REPORT.FAILED ("PROBLEM WITH ARRAY ELEMENTS " &
kono
parents:
diff changeset
231 "- 2");
kono
parents:
diff changeset
232 ELSE
kono
parents:
diff changeset
233 STORE := FIRST_ARRAY_ELEMENT;
kono
parents:
diff changeset
234 FIRST_ARRAY_ELEMENT := SECOND_ARRAY_ELEMENT;
kono
parents:
diff changeset
235 SECOND_ARRAY_ELEMENT := STORE;
kono
parents:
diff changeset
236 END IF;
kono
parents:
diff changeset
237 END IF;
kono
parents:
diff changeset
238
kono
parents:
diff changeset
239 END CHECK_ARRAY_ELEMENTS;
kono
parents:
diff changeset
240
kono
parents:
diff changeset
241 PROCEDURE CHECK_SCALAR IS
kono
parents:
diff changeset
242 BEGIN -- CHECK_SCALAR
kono
parents:
diff changeset
243
kono
parents:
diff changeset
244 IF ((INCREMENTED_VALUE / 2) * 2) /= INCREMENTED_VALUE
kono
parents:
diff changeset
245 THEN
kono
parents:
diff changeset
246 IF INDEX_ELEMENT /= STORED_INDEX THEN
kono
parents:
diff changeset
247 REPORT.FAILED ("PROBLEM WITH INDEX TYPES - 1");
kono
parents:
diff changeset
248 ELSE
kono
parents:
diff changeset
249 INDEX_ELEMENT :=
kono
parents:
diff changeset
250 MONTH_TYPE'SUCC(INDEX_ELEMENT);
kono
parents:
diff changeset
251 STORED_INDEX := INDEX_ELEMENT;
kono
parents:
diff changeset
252 END IF;
kono
parents:
diff changeset
253 ELSE
kono
parents:
diff changeset
254 IF INDEX_ELEMENT /= STORED_INDEX THEN
kono
parents:
diff changeset
255 REPORT.FAILED ("PROBLEM WITH INDEX TYPES - 2");
kono
parents:
diff changeset
256 ELSE
kono
parents:
diff changeset
257 INDEX_ELEMENT :=
kono
parents:
diff changeset
258 MONTH_TYPE'PRED (INDEX_ELEMENT);
kono
parents:
diff changeset
259 STORED_INDEX := INDEX_ELEMENT;
kono
parents:
diff changeset
260 END IF;
kono
parents:
diff changeset
261 END IF;
kono
parents:
diff changeset
262
kono
parents:
diff changeset
263 END CHECK_SCALAR;
kono
parents:
diff changeset
264
kono
parents:
diff changeset
265 PROCEDURE CHECK_POINTERS IS
kono
parents:
diff changeset
266
kono
parents:
diff changeset
267 STORE : DATE;
kono
parents:
diff changeset
268
kono
parents:
diff changeset
269 BEGIN -- CHECK_POINTERS
kono
parents:
diff changeset
270
kono
parents:
diff changeset
271 IF ((INCREMENTED_VALUE / 2) * 2) /= INCREMENTED_VALUE
kono
parents:
diff changeset
272 THEN
kono
parents:
diff changeset
273 IF (POINTER_TEST /= DATE'(OCT, 3, 1949)) OR
kono
parents:
diff changeset
274 (ANOTHER_POINTER_TEST /= DATE'(DEC, 25, 1948))
kono
parents:
diff changeset
275 THEN
kono
parents:
diff changeset
276 REPORT.FAILED ("PROBLEM WITH POINTER TEST " &
kono
parents:
diff changeset
277 "- 1");
kono
parents:
diff changeset
278 ELSE
kono
parents:
diff changeset
279 STORE := POINTER_TEST;
kono
parents:
diff changeset
280 POINTER_TEST := ANOTHER_POINTER_TEST;
kono
parents:
diff changeset
281 ANOTHER_POINTER_TEST := STORE;
kono
parents:
diff changeset
282 END IF;
kono
parents:
diff changeset
283 ELSE
kono
parents:
diff changeset
284 IF (POINTER_TEST /= DATE'(DEC, 25, 1948)) OR
kono
parents:
diff changeset
285 (ANOTHER_POINTER_TEST /= DATE'(OCT, 3, 1949))
kono
parents:
diff changeset
286 THEN
kono
parents:
diff changeset
287 REPORT.FAILED ("PROBLEM WITH POINTER TEST " &
kono
parents:
diff changeset
288 "- 2");
kono
parents:
diff changeset
289 ELSE
kono
parents:
diff changeset
290 STORE := POINTER_TEST;
kono
parents:
diff changeset
291 POINTER_TEST := ANOTHER_POINTER_TEST;
kono
parents:
diff changeset
292 ANOTHER_POINTER_TEST := STORE;
kono
parents:
diff changeset
293 END IF;
kono
parents:
diff changeset
294 END IF;
kono
parents:
diff changeset
295
kono
parents:
diff changeset
296 END CHECK_POINTERS;
kono
parents:
diff changeset
297
kono
parents:
diff changeset
298 END TEST_ACTUAL_PARAMETERS;
kono
parents:
diff changeset
299
kono
parents:
diff changeset
300 FUNCTION INC RETURN NATURAL IS
kono
parents:
diff changeset
301 BEGIN -- INC
kono
parents:
diff changeset
302 INCREMENTED_VALUE := NATURAL'SUCC (INCREMENTED_VALUE);
kono
parents:
diff changeset
303 RETURN INCREMENTED_VALUE;
kono
parents:
diff changeset
304 END INC;
kono
parents:
diff changeset
305
kono
parents:
diff changeset
306 BEGIN -- CC3007B
kono
parents:
diff changeset
307
kono
parents:
diff changeset
308 REPORT.TEST ("CC3007B", "CHECK THAT THE NAMES IN A GENERIC " &
kono
parents:
diff changeset
309 "INSTANTIATION ARE STAICALLY IDENTIFIED (I.E., " &
kono
parents:
diff changeset
310 "BOUND) AT THE TEXTUAL POINT OF THE INSTANTIATION" &
kono
parents:
diff changeset
311 ", AND ARE BOUND BEFORE BEING SUBSTITUTED FOR " &
kono
parents:
diff changeset
312 "THE CORRESPONDING GENERIC FORMAL PARAMETERS IN " &
kono
parents:
diff changeset
313 "THE SPECIFICATION AND BODY TEMPLATES. " &
kono
parents:
diff changeset
314 "SEE AI-00365/05-BI-WJ.");
kono
parents:
diff changeset
315
kono
parents:
diff changeset
316 FIRST_BLOCK:
kono
parents:
diff changeset
317
kono
parents:
diff changeset
318 DECLARE
kono
parents:
diff changeset
319
kono
parents:
diff changeset
320 M1 : MONTH_TYPE := MAY;
kono
parents:
diff changeset
321 M2 : MONTH_TYPE := JUN;
kono
parents:
diff changeset
322
kono
parents:
diff changeset
323 PACKAGE NEW_TEST_ACTUAL_PARAMETERS IS
kono
parents:
diff changeset
324 NEW TEST_ACTUAL_PARAMETERS (
kono
parents:
diff changeset
325 NATURALLY => INC,
kono
parents:
diff changeset
326 FIRST_RECORD => TODAY,
kono
parents:
diff changeset
327 SECOND_RECORD => CHRISTMAS,
kono
parents:
diff changeset
328 RECORD_POINTER => DATE_ACCESS,
kono
parents:
diff changeset
329 POINTER => SECOND_DATE,
kono
parents:
diff changeset
330 ARRAY_TYPE => DUE_DATES,
kono
parents:
diff changeset
331 THIS_ARRAY => REPORT_DATES,
kono
parents:
diff changeset
332 FIRST_ARRAY_ELEMENT => REPORT_DATES (M1),
kono
parents:
diff changeset
333 SECOND_ARRAY_ELEMENT => REPORT_DATES (M2),
kono
parents:
diff changeset
334 INDEX_ELEMENT => THIS_MONTH,
kono
parents:
diff changeset
335 POINTER_TEST => THIRD_DATE.ALL,
kono
parents:
diff changeset
336 ANOTHER_POINTER_TEST => FOURTH_DATE.ALL);
kono
parents:
diff changeset
337
kono
parents:
diff changeset
338 BEGIN -- FIRST_BLOCK
kono
parents:
diff changeset
339
kono
parents:
diff changeset
340 REPORT.COMMENT ("ENTERING FIRST BLOCK");
kono
parents:
diff changeset
341 NEW_TEST_ACTUAL_PARAMETERS.EVALUATE_FUNCTION;
kono
parents:
diff changeset
342 NEW_TEST_ACTUAL_PARAMETERS.CHECK_SCALAR;
kono
parents:
diff changeset
343 M1 := SEP;
kono
parents:
diff changeset
344 M2 := OCT;
kono
parents:
diff changeset
345 -- NEW_TEST_ACTUAL_PARAMETERS SHOULD USE THE PREVIOUS
kono
parents:
diff changeset
346 -- VALUES OF MAY AND JUN.
kono
parents:
diff changeset
347 NEW_TEST_ACTUAL_PARAMETERS.CHECK_ARRAY;
kono
parents:
diff changeset
348 NEW_TEST_ACTUAL_PARAMETERS.CHECK_ARRAY_ELEMENTS;
kono
parents:
diff changeset
349 NEW_TEST_ACTUAL_PARAMETERS.CHECK_ACCESS;
kono
parents:
diff changeset
350 NEW_TEST_ACTUAL_PARAMETERS.CHECK_RECORDS;
kono
parents:
diff changeset
351 NEW_TEST_ACTUAL_PARAMETERS.CHECK_POINTERS;
kono
parents:
diff changeset
352
kono
parents:
diff changeset
353 END FIRST_BLOCK;
kono
parents:
diff changeset
354
kono
parents:
diff changeset
355 SECOND_BLOCK:
kono
parents:
diff changeset
356
kono
parents:
diff changeset
357 DECLARE
kono
parents:
diff changeset
358
kono
parents:
diff changeset
359 SAVE_THIRD_DATE : DATE_ACCESS := THIRD_DATE;
kono
parents:
diff changeset
360 SAVE_FOURTH_DATE : DATE_ACCESS := FOURTH_DATE;
kono
parents:
diff changeset
361
kono
parents:
diff changeset
362 PACKAGE NEW_TEST_ACTUAL_PARAMETERS IS
kono
parents:
diff changeset
363 NEW TEST_ACTUAL_PARAMETERS (
kono
parents:
diff changeset
364 NATURALLY => INC,
kono
parents:
diff changeset
365 FIRST_RECORD => TODAY,
kono
parents:
diff changeset
366 SECOND_RECORD => CHRISTMAS,
kono
parents:
diff changeset
367 RECORD_POINTER => DATE_ACCESS,
kono
parents:
diff changeset
368 POINTER => SECOND_DATE,
kono
parents:
diff changeset
369 ARRAY_TYPE => DUE_DATES,
kono
parents:
diff changeset
370 THIS_ARRAY => REPORT_DATES,
kono
parents:
diff changeset
371 FIRST_ARRAY_ELEMENT => REPORT_DATES (MAY),
kono
parents:
diff changeset
372 SECOND_ARRAY_ELEMENT => REPORT_DATES (JUN),
kono
parents:
diff changeset
373 INDEX_ELEMENT => THIS_MONTH,
kono
parents:
diff changeset
374 POINTER_TEST => THIRD_DATE.ALL,
kono
parents:
diff changeset
375 ANOTHER_POINTER_TEST => FOURTH_DATE.ALL);
kono
parents:
diff changeset
376
kono
parents:
diff changeset
377 BEGIN -- SECOND_BLOCK
kono
parents:
diff changeset
378
kono
parents:
diff changeset
379 REPORT.COMMENT ("ENTERING SECOND BLOCK");
kono
parents:
diff changeset
380 NEW_TEST_ACTUAL_PARAMETERS.EVALUATE_FUNCTION;
kono
parents:
diff changeset
381 NEW_TEST_ACTUAL_PARAMETERS.CHECK_SCALAR;
kono
parents:
diff changeset
382 NEW_TEST_ACTUAL_PARAMETERS.CHECK_ARRAY;
kono
parents:
diff changeset
383 NEW_TEST_ACTUAL_PARAMETERS.CHECK_ARRAY_ELEMENTS;
kono
parents:
diff changeset
384 NEW_TEST_ACTUAL_PARAMETERS.CHECK_ACCESS;
kono
parents:
diff changeset
385 NEW_TEST_ACTUAL_PARAMETERS.CHECK_RECORDS;
kono
parents:
diff changeset
386
kono
parents:
diff changeset
387 THIRD_DATE := NEW DATE'(JUL, 13, 1951);
kono
parents:
diff changeset
388 FOURTH_DATE := NEW DATE'(JUL, 4, 1976);
kono
parents:
diff changeset
389 NEW_TEST_ACTUAL_PARAMETERS.CHECK_POINTERS;
kono
parents:
diff changeset
390 THIRD_DATE := SAVE_THIRD_DATE;
kono
parents:
diff changeset
391 FOURTH_DATE := SAVE_FOURTH_DATE;
kono
parents:
diff changeset
392
kono
parents:
diff changeset
393 END SECOND_BLOCK;
kono
parents:
diff changeset
394
kono
parents:
diff changeset
395 REPORT.RESULT;
kono
parents:
diff changeset
396
kono
parents:
diff changeset
397 END CC3007B;