source: rtems/c/src/ada-tests/sptests/sp09/sptest.adb @ 110e1f1

4.104.115
Last change on this file since 110e1f1 was 110e1f1, checked in by Joel Sherrill <joel.sherrill@…>, on 12/14/09 at 21:17:59

2009-12-14 Joel Sherrill <joel.sherrill@…>

  • samples/base_sp/sptest.adb, samples/hello/sptest.adb, samples/nsecs/sptest.adb, samples/ticker/sptest.adb, sptests/sp01/sptest.adb, sptests/sp02/sptest.adb, sptests/sp03/sptest.adb, sptests/sp04/sptest.adb, sptests/sp05/sptest.adb, sptests/sp06/sptest.adb, sptests/sp07/sptest.adb, sptests/sp08/sptest.adb, sptests/sp09/sptest.adb, sptests/sp11/sptest.adb, sptests/sp12/sptest.adb, sptests/sp13/sptest.adb, sptests/sp14/sptest.adb, sptests/sp15/sptest.adb, sptests/sp16/sptest.adb, sptests/sp17/sptest.adb, sptests/sp19/sptest.adp, sptests/sp20/sptest.adb, sptests/sp22/sptest.adb, sptests/sp23/sptest.adb, sptests/sp24/sptest.adb, sptests/sp25/sptest.adb, sptests/spname01/spname01.adb, sptests/spname01/sptest.adb, sptests/spname01/sptest.ads, support/address_io.adb, support/init.c, support/test_support.adb, support/test_support.ads, support/time_test_support.adb, support/timer_driver.adb, tmtests/tm01/tmtest.adb, tmtests/tm01/tmtest.ads, tmtests/tm02/tmtest.adb, tmtests/tm02/tmtest.ads, tmtests/tm03/tmtest.adb, tmtests/tm03/tmtest.ads, tmtests/tm04/tmtest.adb, tmtests/tm04/tmtest.ads, tmtests/tm05/tmtest.adb, tmtests/tm05/tmtest.ads, tmtests/tm06/tmtest.adb, tmtests/tm06/tmtest.ads, tmtests/tm07/tmtest.adb, tmtests/tm07/tmtest.ads, tmtests/tm08/tmtest.adb, tmtests/tm08/tmtest.ads, tmtests/tm09/tmtest.adb, tmtests/tm09/tmtest.ads, tmtests/tm10/tmtest.adb, tmtests/tm10/tmtest.ads, tmtests/tm11/tmtest.adb, tmtests/tm11/tmtest.ads, tmtests/tm12/tmtest.adb, tmtests/tm12/tmtest.ads, tmtests/tm13/tmtest.adb, tmtests/tm13/tmtest.ads, tmtests/tm14/tmtest.adb, tmtests/tm14/tmtest.ads, tmtests/tm15/tmtest.adb, tmtests/tm15/tmtest.ads, tmtests/tm16/tmtest.adb, tmtests/tm16/tmtest.ads, tmtests/tm17/tmtest.adb, tmtests/tm17/tmtest.ads, tmtests/tm18/tmtest.adb, tmtests/tm18/tmtest.ads, tmtests/tm19/tmtest.adb, tmtests/tm19/tmtest.ads, tmtests/tm20/tmtest.adb, tmtests/tm20/tmtest.ads, tmtests/tm21/tmtest.adb, tmtests/tm21/tmtest.ads, tmtests/tm22/tmtest.adb, tmtests/tm22/tmtest.ads, tmtests/tm23/tmtest.adb, tmtests/tm23/tmtest.ads, tmtests/tm24/tmtest.adb, tmtests/tm24/tmtest.ads, tmtests/tm25/tmtest.adb, tmtests/tm25/tmtest.ads, tmtests/tm28/tmtest.adb, tmtests/tm28/tmtest.ads, tmtests/tm29/tmtest.adb, tmtests/tm29/tmtest.ads, tmtests/tmck/tmtest.adb, tmtests/tmck/tmtest.ads, tmtests/tmoverhd/dummy_rtems.adb, tmtests/tmoverhd/tmtest.adb, tmtests/tmoverhd/tmtest.ads: Remove many warnings.
  • Property mode set to 100644
File size: 86.8 KB
Line 
1--
2--  SPTEST / BODY
3--
4--  DESCRIPTION:
5--
6--  This package is the implementation of Test 9 of the RTEMS
7--  Single Processor Test Suite.
8--
9--  DEPENDENCIES:
10--
11-- 
12--
13--  COPYRIGHT (c) 1989-2009.
14--  On-Line Applications Research Corporation (OAR).
15--
16--  The license and distribution terms for this file may in
17--  the file LICENSE in this distribution or at
18--  http://www.rtems.com/license/LICENSE.
19--
20--  $Id$
21--
22
23with INTERFACES; use INTERFACES;
24with TEST_SUPPORT;
25with TEXT_IO;
26
27package body SPTEST is
28
29--PAGE
30--
31--  INIT
32--
33
34   procedure INIT (
35      ARGUMENT : in     RTEMS.TASK_ARGUMENT
36   ) is
37      pragma Unreferenced(ARGUMENT);
38      STATUS : RTEMS.STATUS_CODES;
39   begin
40
41      TEXT_IO.NEW_LINE( 2 );
42      TEXT_IO.PUT_LINE( "*** TEST 9 ***" );
43
44      SPTEST.TASK_NAME( 1 )   := RTEMS.BUILD_NAME(  'T', 'A', '1', ' ' );
45      SPTEST.TASK_NAME( 2 )   := RTEMS.BUILD_NAME(  'T', 'A', '2', ' ' );
46      SPTEST.TASK_NAME( 3 )   := RTEMS.BUILD_NAME(  'T', 'A', '3', ' ' );
47      SPTEST.TASK_NAME( 4 )   := RTEMS.BUILD_NAME(  'T', 'A', '4', ' ' );
48      SPTEST.TASK_NAME( 5 )   := RTEMS.BUILD_NAME(  'T', 'A', '5', ' ' );
49      SPTEST.TASK_NAME( 6 )   := RTEMS.BUILD_NAME(  'T', 'A', '6', ' ' );
50      SPTEST.TASK_NAME( 7 )   := RTEMS.BUILD_NAME(  'T', 'A', '7', ' ' );
51      SPTEST.TASK_NAME( 8 )   := RTEMS.BUILD_NAME(  'T', 'A', '8', ' ' );
52      SPTEST.TASK_NAME( 9 )   := RTEMS.BUILD_NAME(  'T', 'A', '9', ' ' );
53      SPTEST.TASK_NAME( 10 )  := RTEMS.BUILD_NAME(  'T', 'A', 'A', ' ' );
54
55      SPTEST.TIMER_NAME( 1 )   := RTEMS.BUILD_NAME(  'T', 'M', '1', ' ' );
56
57      SPTEST.SEMAPHORE_NAME( 1 ) := RTEMS.BUILD_NAME( 'S', 'M', '1', ' ' );
58      SPTEST.SEMAPHORE_NAME( 2 ) := RTEMS.BUILD_NAME( 'S', 'M', '2', ' ' );
59      SPTEST.SEMAPHORE_NAME( 3 ) := RTEMS.BUILD_NAME( 'S', 'M', '3', ' ' );
60
61      SPTEST.QUEUE_NAME( 1 )     := RTEMS.BUILD_NAME( 'M', 'Q', '1', ' ' );
62      SPTEST.QUEUE_NAME( 2 )     := RTEMS.BUILD_NAME( 'M', 'Q', '2', ' ' );
63
64      SPTEST.PARTITION_NAME( 1 ) := RTEMS.BUILD_NAME( 'P', 'T', '1', ' ' );
65
66      SPTEST.REGION_NAME( 1 )    := RTEMS.BUILD_NAME( 'R', 'N', '1', ' ' );
67
68      SPTEST.PORT_NAME( 1 )      := RTEMS.BUILD_NAME( 'D', 'P', '1', ' ' );
69
70      SPTEST.PERIOD_NAME( 1 )    := RTEMS.BUILD_NAME( 'T', 'M', '1', ' ' );
71
72      RTEMS.TASK_CREATE(
73         SPTEST.TASK_NAME( 1 ),
74         0,
75         2048,
76         RTEMS.DEFAULT_MODES,
77         RTEMS.DEFAULT_ATTRIBUTES,
78         SPTEST.TASK_ID( 1 ),
79         STATUS
80      );
81      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
82         STATUS,
83         RTEMS.INVALID_PRIORITY,
84         "TASK_CREATE WITH ILLEGAL PRIORITY"
85      );
86      TEXT_IO.PUT_LINE( "INIT - task_create - INVALID_PRIORITY" );
87
88      RTEMS.TASK_CREATE(
89         SPTEST.TASK_NAME( 1 ),
90         4,
91         2048,
92         RTEMS.DEFAULT_MODES,
93         RTEMS.DEFAULT_ATTRIBUTES,
94         SPTEST.TASK_ID( 1 ),
95         STATUS
96      );
97      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA1" );
98
99      RTEMS.TASK_RESTART(
100         SPTEST.TASK_ID( 1 ),
101         0,
102         STATUS
103      );
104      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
105         STATUS,
106         RTEMS.INCORRECT_STATE,
107         "TASK_RESTART OF DORMANT TASK"
108      );
109      TEXT_IO.PUT_LINE( "INIT - task_restart - INCORRECT_STATE" );
110
111      RTEMS.TASK_START(
112         SPTEST.TASK_ID( 1 ),
113         SPTEST.TASK_1'ACCESS,
114         0,
115         STATUS
116      );
117      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA1" );
118
119      RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
120      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
121
122   end INIT;
123
124--PAGE
125--
126--  DELAYED_SUBPROGRAM
127--
128
129   procedure DELAYED_SUBPROGRAM (
130      IGNORED_ID      : in     RTEMS.ID;
131      IGNORED_ADDRESS : in     RTEMS.ADDRESS
132   ) is
133   begin
134
135      NULL;
136
137   end DELAYED_SUBPROGRAM;
138
139--PAGE
140--
141--  SCREEN_1
142--
143
144   procedure SCREEN_1
145   is
146      NOTEPAD_VALUE     : RTEMS.UNSIGNED32 := 0;
147      SELF_ID           : RTEMS.ID;
148      PREVIOUS_PRIORITY : RTEMS.TASK_PRIORITY;
149      STATUS            : RTEMS.STATUS_CODES;
150   begin
151
152      RTEMS.TASK_DELETE( 100, STATUS );
153      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
154         STATUS,
155         RTEMS.INVALID_ID,
156         "TASK_DELETE WITH ILLEGAL ID"
157      );
158      TEXT_IO.PUT_LINE( "TA1 - task_delete - INVALID_ID" );
159
160      begin
161        RTEMS.TASK_GET_NOTE( RTEMS.SELF,
162                             RTEMS.NOTEPAD_INDEX'LAST + 10,
163                             NOTEPAD_VALUE,
164                             STATUS
165        );
166        TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
167           STATUS,
168           RTEMS.INVALID_NUMBER,
169           "TASK_GET_NOTE WITH ILLEGAL NOTEPAD"
170        );
171        TEXT_IO.PUT_LINE( "TA1 - task_get_note - INVALID_NUMBER" );
172      exception
173         when others =>
174            TEXT_IO.PUT_LINE(
175               "TA1 - task_get_note - INVALID_NUMBER -- constraint error"
176            );
177      end;
178
179      RTEMS.TASK_GET_NOTE(
180         100,
181         RTEMS.NOTEPAD_INDEX'LAST,
182         NOTEPAD_VALUE,
183         STATUS
184      );
185      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
186         STATUS,
187         RTEMS.INVALID_ID,
188         "TASK_GET_NOTE WITH ILLEGAL ID"
189      );
190      TEXT_IO.PUT_LINE( "TA1 - task_get_note - INVALID_ID" );
191
192      RTEMS.TASK_IDENT(
193         RTEMS.SELF,
194         RTEMS.SEARCH_ALL_NODES,
195         SELF_ID,
196         STATUS
197      );
198      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_IDENT OF SELF" );
199      if SELF_ID /= SPTEST.TASK_ID( 1 ) then
200         TEXT_IO.PUT_LINE( "ERROR - task_ident - incorrect ID returned!" );
201         RTEMS.SHUTDOWN_EXECUTIVE( 0 );
202      end if;
203      TEXT_IO.PUT_LINE(
204         "TA1 - task_ident - current task SUCCESSFUL"
205      );
206
207      RTEMS.TASK_IDENT(
208         100,
209         RTEMS.SEARCH_ALL_NODES,
210         SPTEST.JUNK_ID,
211         STATUS
212      );
213      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
214         STATUS,
215         RTEMS.INVALID_NAME,
216         "TASK_IDENT WITH ILLEGAL NAME (local)"
217      );
218      TEXT_IO.PUT_LINE( "TA1 - task_ident - global INVALID_NAME" );
219
220      RTEMS.TASK_IDENT( 100, 1, SPTEST.JUNK_ID, STATUS );
221      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
222         STATUS,
223         RTEMS.INVALID_NAME,
224         "TASK_IDENT WITH ILLEGAL NAME (global)"
225      );
226      TEXT_IO.PUT_LINE( "TA1 - task_ident - local INVALID_NAME" );
227
228      RTEMS.TASK_IDENT( 100, 2, SPTEST.JUNK_ID, STATUS );
229      if TEST_SUPPORT.Is_Configured_Multiprocessing then
230         TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
231            STATUS,
232            RTEMS.INVALID_NODE,
233            "TASK_IDENT WITH ILLEGAL NODE"
234         );
235      else
236         TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
237            STATUS,
238            RTEMS.INVALID_NAME,
239            "TASK_IDENT WITH ILLEGAL NODE"
240         );
241      end if;
242      TEXT_IO.PUT_LINE( "TA1 - task_ident - INVALID_NODE" );
243
244      RTEMS.TASK_RESTART( 100, 0, STATUS );
245      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
246         STATUS,
247         RTEMS.INVALID_ID,
248         "TASK_RESTART WITH ILLEGAL ID"
249      );
250      TEXT_IO.PUT_LINE( "TA1 - task_restart - INVALID_ID" );
251
252      RTEMS.TASK_RESUME( 100, STATUS );
253      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
254         STATUS,
255         RTEMS.INVALID_ID,
256         "TASK_RESUME WITH ILLEGAL ID"
257      );
258      TEXT_IO.PUT_LINE( "TA1 - task_resume - INVALID_ID" );
259
260      RTEMS.TASK_RESUME( RTEMS.SELF, STATUS );
261      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
262         STATUS,
263         RTEMS.INCORRECT_STATE,
264         "TASK_RESUME OF READY TASK"
265      );
266      TEXT_IO.PUT_LINE( "TA1 - task_resume - INCORRECT_STATE" );
267
268      begin
269        RTEMS.TASK_SET_PRIORITY( RTEMS.SELF, 512, PREVIOUS_PRIORITY, STATUS );
270        TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
271           STATUS,
272           RTEMS.INVALID_PRIORITY,
273           "TASK_SET_PRIORITY WITH ILLEGAL PRIORITY"
274        );
275        TEXT_IO.PUT_LINE(
276           "TA1 - task_set_priority - INVALID_PRIORITY"
277        );
278      exception
279         when others =>
280            TEXT_IO.PUT_LINE(
281               "TA1 - task_set_priority - INVALID_PRIORITY -- constraint error"
282            );
283      end;
284
285      RTEMS.TASK_SET_PRIORITY( 100, 8, PREVIOUS_PRIORITY, STATUS );
286      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
287         STATUS,
288         RTEMS.INVALID_ID,
289         "TASK_SET_PRIORITY WITH ILLEGAL ID"
290      );
291      TEXT_IO.PUT_LINE( "TA1 - task_set_priority - INVALID_ID" );
292
293      begin
294         RTEMS.TASK_SET_NOTE( RTEMS.SELF,
295                              RTEMS.NOTEPAD_INDEX'LAST + 10,
296                              NOTEPAD_VALUE,
297                              STATUS
298         );
299         TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
300            STATUS,
301            RTEMS.INVALID_NUMBER,
302            "TASK_SET_NOTE WITH ILLEGAL NOTEPAD"
303         );
304         TEXT_IO.PUT_LINE( "TA1 - task_set_note - INVALID_NUMBER" );
305      exception
306         when others =>
307            TEXT_IO.PUT_LINE(
308               "TA1 - task_set_note - INVALID_NUMBER -- constraint error"
309            );
310      end;
311
312      RTEMS.TASK_SET_NOTE(
313         100,
314         RTEMS.NOTEPAD_INDEX'LAST,
315         NOTEPAD_VALUE,
316         STATUS
317      );
318      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
319         STATUS,
320         RTEMS.INVALID_ID,
321         "TASK_SET_NOTE WITH ILLEGAL ID"
322      );
323      TEXT_IO.PUT_LINE( "TA1 - task_set_note - INVALID_ID" );
324
325      RTEMS.TASK_START( 100, SPTEST.TASK_1'ACCESS, 0, STATUS );
326      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
327         STATUS,
328         RTEMS.INVALID_ID,
329         "TASK_START WITH ILLEGAL ID"
330      );
331      TEXT_IO.PUT_LINE( "TA1 - task_start - INVALID_ID" );
332
333      RTEMS.TASK_START( RTEMS.SELF, SPTEST.TASK_1'ACCESS, 0, STATUS );
334      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
335         STATUS,
336         RTEMS.INCORRECT_STATE,
337         "TASK_START OF READY TASK"
338      );
339      TEXT_IO.PUT_LINE( "TA1 - task_start - INCORRECT_STATE" );
340
341      RTEMS.TASK_SUSPEND( 100, STATUS );
342      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
343         STATUS,
344         RTEMS.INVALID_ID,
345         "TASK_SUSPEND WITH INVALID ID"
346      );
347      TEXT_IO.PUT_LINE( "TA1 - task_suspend - INVALID_ID" );
348
349   end SCREEN_1;
350
351--PAGE
352--
353--  SCREEN_2
354--
355
356   procedure SCREEN_2
357   is
358      TIME   : RTEMS.TIME_OF_DAY;
359      STATUS : RTEMS.STATUS_CODES;
360   begin
361
362-- errors before clock is set
363
364      RTEMS.CLOCK_GET( RTEMS.CLOCK_GET_TOD, TIME'ADDRESS, STATUS );
365     
366      if RTEMS.IS_STATUS_SUCCESSFUL( STATUS ) then
367         TEXT_IO.PUT_LINE(
368            "TA1 - clock_get - NOT_DEFINED -- DID THE BSP SET THE TIME OF DAY?"
369         );
370      else
371         TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
372            STATUS,
373            RTEMS.NOT_DEFINED,
374            "CLOCK_GET BEFORE CLOCK IS SET"
375         );
376         TEXT_IO.PUT_LINE( "TA1 - clock_get - NOT_DEFINED" );
377      end if;
378
379      RTEMS.TASK_WAKE_WHEN( TIME, STATUS );
380      if RTEMS.IS_STATUS_SUCCESSFUL( STATUS ) then
381         TEXT_IO.PUT( "TA1 - task_wake_when - NOT_DEFINED -- " );
382         TEXT_IO.PUT_LINE( "DID THE BSP SET THE TIME OF DAY?" );
383      else
384         TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
385            STATUS,
386            RTEMS.NOT_DEFINED,
387            "TASK_WAKE_WHEN BEFORE CLOCK IS SET"
388         );
389         TEXT_IO.PUT_LINE( "TA1 - task_wake_when - NOT_DEFINED" );
390      end if;
391
392      RTEMS.TIMER_FIRE_WHEN(
393         0,
394         TIME,
395         SPTEST.DELAYED_SUBPROGRAM'ACCESS,
396         RTEMS.NULL_ADDRESS,
397         STATUS
398      );
399
400      if RTEMS.IS_STATUS_SUCCESSFUL( STATUS ) then
401         TEXT_IO.PUT( "TA1 - task_fire_when - NOT_DEFINED -- " );
402         TEXT_IO.PUT_LINE( "DID THE BSP SET THE TIME OF DAY?" );
403      else
404
405         TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
406            STATUS,
407            RTEMS.NOT_DEFINED,
408            "TIMER_FIRE_WHEN BEFORE CLOCK IS SET"
409         );
410         TEXT_IO.PUT_LINE( "TA1 - timer_fire_when - NOT_DEFINED" );
411
412      end if;
413
414-- invalid time of day field
415
416      TIME := ( 1987, 2, 5, 8, 30, 45, 0 );
417      TEST_SUPPORT.PRINT_TIME( "TA1 - clock_set - ", TIME, "" );
418      RTEMS.CLOCK_SET( TIME, STATUS );
419      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
420         STATUS,
421         RTEMS.INVALID_CLOCK,
422         "CLOCK_SET WITH INVALID YEAR"
423      );
424      TEXT_IO.PUT_LINE( " - INVALID_CLOCK" );
425
426      TIME := ( 1988, 15, 5, 8, 30, 45, 0 );
427      TEST_SUPPORT.PRINT_TIME( "TA1 - clock_set - ", TIME, "" );
428      RTEMS.CLOCK_SET( TIME, STATUS );
429      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
430         STATUS,
431         RTEMS.INVALID_CLOCK,
432         "CLOCK_SET WITH INVALID MONTH"
433      );
434      TEXT_IO.PUT_LINE( " - INVALID_CLOCK" );
435
436      TIME := ( 1988, 2, 32, 8, 30, 45, 0 );
437      TEST_SUPPORT.PRINT_TIME( "TA1 - clock_set - ", TIME, "" );
438      RTEMS.CLOCK_SET( TIME, STATUS );
439      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
440         STATUS,
441         RTEMS.INVALID_CLOCK,
442         "CLOCK_SET WITH INVALID DAY"
443      );
444      TEXT_IO.PUT_LINE( " - INVALID_CLOCK" );
445
446      TIME := ( 1988, 2, 5, 25, 30, 45, 0 );
447      TEST_SUPPORT.PRINT_TIME( "TA1 - clock_set - ", TIME, "" );
448      RTEMS.CLOCK_SET( TIME, STATUS );
449      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
450         STATUS,
451         RTEMS.INVALID_CLOCK,
452         "CLOCK_SET WITH INVALID HOUR"
453      );
454      TEXT_IO.PUT_LINE( " - INVALID_CLOCK" );
455
456      TIME := ( 1988, 2, 5, 8, 61, 45, 0 );
457      TEST_SUPPORT.PRINT_TIME( "TA1 - clock_set - ", TIME, "" );
458      RTEMS.CLOCK_SET( TIME, STATUS );
459      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
460         STATUS,
461         RTEMS.INVALID_CLOCK,
462         "CLOCK_SET WITH INVALID MINUTE"
463      );
464      TEXT_IO.PUT_LINE( " - INVALID_CLOCK" );
465
466      TIME := ( 1988, 2, 5, 8, 30, 61, 0 );
467      TEST_SUPPORT.PRINT_TIME( "TA1 - clock_set - ", TIME, "" );
468      RTEMS.CLOCK_SET( TIME, STATUS );
469      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
470         STATUS,
471         RTEMS.INVALID_CLOCK,
472         "CLOCK_SET WITH INVALID SECOND"
473      );
474      TEXT_IO.PUT_LINE( " - INVALID_CLOCK" );
475
476      TIME := ( 1988, 2, 5, 8, 30, 45, TEST_SUPPORT.TICKS_PER_SECOND + 1 );
477      TEST_SUPPORT.PRINT_TIME( "TA1 - clock_set - ", TIME, "" );
478      RTEMS.CLOCK_SET( TIME, STATUS );
479      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
480         STATUS,
481         RTEMS.INVALID_CLOCK,
482         "CLOCK_SET WITH INVALID TICKS PER SECOND"
483      );
484      TEXT_IO.PUT_LINE( " - INVALID_CLOCK" );
485
486      TIME := ( 1988, 2, 5, 8, 30, 45, 0 );
487      TEST_SUPPORT.PRINT_TIME( "TA1 - clock_set - ", TIME, "" );
488      RTEMS.CLOCK_SET( TIME, STATUS );
489      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_SET SUCCESSFUL" );
490      TEXT_IO.PUT_LINE( " - SUCCESSFUL" );
491
492-- task_wake_when
493
494      TIME := ( 1988, 2, 5, 8, 30, 48, TEST_SUPPORT.TICKS_PER_SECOND + 1 );
495      TEXT_IO.PUT( "TA1 - task_wake_when - TICK INVALID - " );
496      TEXT_IO.PUT_LINE( "sleep about 3 seconds" );
497      RTEMS.TASK_WAKE_WHEN( TIME, STATUS );
498      TEST_SUPPORT.DIRECTIVE_FAILED(
499         STATUS,
500         "TASK_WAKE_WHEN WITH INVALID TICKS PER SECOND"
501      );
502      TEXT_IO.PUT( "TA1 - task_wake_when - TICK INVALID - " );
503      TEXT_IO.PUT_LINE( "woke up SUCCESSFUL" );
504
505      TIME := ( 1961, 2, 5, 8, 30, 48, 0 );
506      TEST_SUPPORT.PRINT_TIME( "TA1 - task_wake_when - ", TIME, "" );
507      RTEMS.TASK_WAKE_WHEN( TIME, STATUS );
508      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
509         STATUS,
510         RTEMS.INVALID_CLOCK,
511         "TASK_WAKE_WHEN WITH INVALID YEAR"
512      );
513      TEXT_IO.PUT_LINE( " - INVALID_CLOCK" );
514
515      TIME := ( 1988, 2, 5, 25, 30, 48, 0 );
516      TEST_SUPPORT.PRINT_TIME( "TA1 - task_wake_when - ", TIME, "" );
517      RTEMS.TASK_WAKE_WHEN( TIME, STATUS );
518      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
519         STATUS,
520         RTEMS.INVALID_CLOCK,
521         "TASK_WAKE_WHEN WITH INVALID HOUR"
522      );
523      TEXT_IO.PUT_LINE( " - INVALID_CLOCK" );
524
525      RTEMS.CLOCK_GET( RTEMS.CLOCK_GET_TOD, TIME'ADDRESS, STATUS );
526      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_GET SUCCESSFUL" );
527      TEST_SUPPORT.PRINT_TIME( "TA1 - current time - ", TIME, "" );
528      TEXT_IO.NEW_LINE;
529
530      TIME.MONTH := 1;
531      TEST_SUPPORT.PRINT_TIME( "TA1 - task_wake_when - ", TIME, "" );
532      RTEMS.TASK_WAKE_WHEN( TIME, STATUS );
533      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
534         STATUS,
535         RTEMS.INVALID_CLOCK,
536         "TASK_WAKE_WHEN BEFORE CURRENT TIME"
537      );
538      TEXT_IO.PUT_LINE( " - INVALID_CLOCK" );
539
540   end SCREEN_2;
541
542--PAGE
543--
544--  SCREEN_3
545--
546
547   procedure SCREEN_3
548   is
549      TASK_NAME : RTEMS.NAME;
550      STATUS    : RTEMS.STATUS_CODES;
551   begin
552
553      TASK_NAME := 1;
554
555      RTEMS.TASK_CREATE(
556         0,
557         1,
558         2048,
559         RTEMS.DEFAULT_MODES,
560         RTEMS.DEFAULT_ATTRIBUTES,
561         SPTEST.JUNK_ID,
562         STATUS
563      );
564      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
565         STATUS,
566         RTEMS.INVALID_NAME,
567         "TASK_CREATE WITH ILLEGAL NAME"
568      );
569      TEXT_IO.PUT_LINE(
570         "TA1 - task_create - INVALID_NAME"
571      );
572
573      RTEMS.TASK_CREATE(
574         TASK_NAME,
575         1,
576         TEST_SUPPORT.WORK_SPACE_SIZE,
577         RTEMS.DEFAULT_MODES,
578         RTEMS.DEFAULT_ATTRIBUTES,
579         SPTEST.JUNK_ID,
580         STATUS
581      );
582      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
583         STATUS,
584         RTEMS.UNSATISFIED,
585         "TASK_CREATE WITH A STACK SIZE LARGER THAN THE WORKSPACE"
586      );
587      TEXT_IO.PUT_LINE(
588         "TA1 - task_create - stack size - UNSATISFIED"
589      );
590
591      RTEMS.TASK_CREATE(
592         SPTEST.TASK_NAME( 2 ),
593         4,
594         2048,
595         RTEMS.DEFAULT_MODES,
596         RTEMS.DEFAULT_ATTRIBUTES,
597         SPTEST.TASK_ID( 2 ),
598         STATUS
599      );
600      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA2" );
601      TEXT_IO.PUT_LINE(
602         "TA1 - task_create - TA2 created - SUCCESSFUL"
603      );
604
605      RTEMS.TASK_SUSPEND( SPTEST.TASK_ID( 2 ), STATUS );
606      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_SUSPEND OF TA2" );
607      TEXT_IO.PUT_LINE(
608         "TA1 - task_suspend - suspend TA2 - SUCCESSFUL"
609      );
610
611      RTEMS.TASK_SUSPEND( SPTEST.TASK_ID( 2 ), STATUS );
612      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
613         STATUS,
614         RTEMS.ALREADY_SUSPENDED,
615         "TASK_SUSPEND ON SUSPENDED TA2"
616      );
617      TEXT_IO.PUT_LINE(
618         "TA1 - task_suspend - suspend TA2 - ALREADY_SUSPENDED"
619      );
620
621      RTEMS.TASK_RESUME( SPTEST.TASK_ID( 2 ), STATUS );
622      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_RESUME OF TA2" );
623      TEXT_IO.PUT_LINE(
624         "TA1 - task_resume - TA2 resumed - SUCCESSFUL"
625      );
626
627      RTEMS.TASK_CREATE(
628         SPTEST.TASK_NAME( 3 ),
629         4,
630         2048,
631         RTEMS.DEFAULT_MODES,
632         RTEMS.DEFAULT_ATTRIBUTES,
633         SPTEST.TASK_ID( 3 ),
634         STATUS
635      );
636      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA3" );
637      TEXT_IO.PUT_LINE(
638         "TA1 - task_create - TA3 created - SUCCESSFUL"
639      );
640
641      RTEMS.TASK_CREATE(
642         SPTEST.TASK_NAME( 4 ),
643         4,
644         2048,
645         RTEMS.DEFAULT_MODES,
646         RTEMS.DEFAULT_ATTRIBUTES,
647         SPTEST.TASK_ID( 4 ),
648         STATUS
649      );
650      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA4" );
651      TEXT_IO.PUT_LINE(
652         "TA1 - task_create - 4 created - SUCCESSFUL"
653      );
654
655      RTEMS.TASK_CREATE(
656         SPTEST.TASK_NAME( 5 ),
657         4,
658         2048,
659         RTEMS.DEFAULT_MODES,
660         RTEMS.DEFAULT_ATTRIBUTES,
661         SPTEST.TASK_ID( 5 ),
662         STATUS
663      );
664      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA5" );
665      TEXT_IO.PUT_LINE(
666         "TA1 - task_create - 5 created - SUCCESSFUL"
667      );
668
669      RTEMS.TASK_CREATE(
670         SPTEST.TASK_NAME( 6 ),
671         4,
672         2048,
673         RTEMS.DEFAULT_MODES,
674         RTEMS.DEFAULT_ATTRIBUTES,
675         SPTEST.TASK_ID( 6 ),
676         STATUS
677      );
678      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA6" );
679      TEXT_IO.PUT_LINE(
680         "TA1 - task_create - 6 created - SUCCESSFUL"
681      );
682
683      RTEMS.TASK_CREATE(
684         SPTEST.TASK_NAME( 7 ),
685         4,
686         2048,
687         RTEMS.DEFAULT_MODES,
688         RTEMS.DEFAULT_ATTRIBUTES,
689         SPTEST.TASK_ID( 7 ),
690         STATUS
691      );
692      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA7" );
693      TEXT_IO.PUT_LINE(
694         "TA1 - task_create - 7 created - SUCCESSFUL"
695      );
696
697      RTEMS.TASK_CREATE(
698         SPTEST.TASK_NAME( 8 ),
699         4,
700         2048,
701         RTEMS.DEFAULT_MODES,
702         RTEMS.DEFAULT_ATTRIBUTES,
703         SPTEST.TASK_ID( 8 ),
704         STATUS
705      );
706      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA8" );
707      TEXT_IO.PUT_LINE(
708         "TA1 - task_create - 8 created - SUCCESSFUL"
709      );
710
711      RTEMS.TASK_CREATE(
712         SPTEST.TASK_NAME( 9 ),
713         4,
714         2048,
715         RTEMS.DEFAULT_MODES,
716         RTEMS.DEFAULT_ATTRIBUTES,
717         SPTEST.TASK_ID( 9 ),
718         STATUS
719      );
720      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA9" );
721      TEXT_IO.PUT_LINE(
722         "TA1 - task_create - 9 created - SUCCESSFUL"
723      );
724
725      RTEMS.TASK_CREATE(
726         SPTEST.TASK_NAME( 10 ),
727         4,
728         2048,
729         RTEMS.DEFAULT_MODES,
730         RTEMS.DEFAULT_ATTRIBUTES,
731         SPTEST.TASK_ID( 10 ),
732         STATUS
733      );
734      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA10" );
735      TEXT_IO.PUT_LINE(
736         "TA1 - task_create - 10 created - SUCCESSFUL"
737      );
738
739      RTEMS.TASK_CREATE(
740         TASK_NAME,
741         4,
742         2048,
743         RTEMS.DEFAULT_MODES,
744         RTEMS.DEFAULT_ATTRIBUTES,
745         SPTEST.JUNK_ID,
746         STATUS
747      );
748      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
749         STATUS,
750         RTEMS.TOO_MANY,
751         "TASK_CREATE FOR TOO MANY TASKS"
752      );
753      TEXT_IO.PUT_LINE( "TA1 - task_create - 11 - TOO_MANY" );
754
755      if TEST_SUPPORT.Is_Configured_Multiprocessing then
756         RTEMS.TASK_CREATE(
757            TASK_NAME,
758            4,
759            2048,
760            RTEMS.DEFAULT_MODES,
761            RTEMS.GLOBAL,
762            SPTEST.JUNK_ID,
763            STATUS
764         );
765         TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
766            STATUS,
767            RTEMS.MP_NOT_CONFIGURED,
768            "TASK_CREATE OF GLOBAL TASK IN SINGLE CPU SYSTEM"
769         );
770      end if;
771      TEXT_IO.PUT_LINE( "TA1 - task_create - MP_NOT_CONFIGURED" );
772
773   end SCREEN_3;
774
775--PAGE
776--
777--  SCREEN_4
778--
779
780   procedure SCREEN_4
781   is
782      EVENT_OUT : RTEMS.EVENT_SET;
783      TIME      : RTEMS.TIME_OF_DAY;
784      STATUS    : RTEMS.STATUS_CODES;
785   begin
786
787      RTEMS.EVENT_RECEIVE(
788         RTEMS.EVENT_16,
789         RTEMS.NO_WAIT,
790         RTEMS.NO_TIMEOUT,
791         EVENT_OUT,
792         STATUS
793      );
794      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
795         STATUS,
796         RTEMS.UNSATISFIED,
797         "EVENT_RECEIVE UNSATISFIED (ALL)"
798      );
799      TEXT_IO.PUT_LINE(
800         "TA1 - event_receive - UNSATISFIED ( all conditions )"
801      );
802
803      RTEMS.EVENT_RECEIVE(
804         RTEMS.EVENT_16,
805         RTEMS.NO_WAIT + RTEMS.EVENT_ANY,
806         RTEMS.NO_TIMEOUT,
807         EVENT_OUT,
808         STATUS
809      );
810      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
811         STATUS,
812         RTEMS.UNSATISFIED,
813         "EVENT_RECEIVE UNSATISFIED (ANY)"
814      );
815      TEXT_IO.PUT_LINE(
816         "TA1 - event_receive - UNSATISFIED ( any conditions )"
817      );
818
819      TEXT_IO.PUT_LINE( "TA1 - event_receive - timeout in 3 seconds" );
820      RTEMS.EVENT_RECEIVE(
821         RTEMS.EVENT_16,
822         RTEMS.DEFAULT_OPTIONS,
823         3 * TEST_SUPPORT.TICKS_PER_SECOND,
824         EVENT_OUT,
825         STATUS
826      );
827      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
828         STATUS,
829         RTEMS.TIMEOUT,
830         "EVENT_RECEIVE AFTER 3 SECOND TIMEOUT"
831      );
832      TEXT_IO.PUT_LINE(
833         "TA1 - event_receive - woke with TIMEOUT"
834      );
835
836      RTEMS.EVENT_SEND(
837         100,
838         RTEMS.EVENT_16,
839         STATUS
840      );
841      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
842         STATUS,
843         RTEMS.INVALID_ID,
844         "EVENT_SEND WITH ILLEGAL ID"
845      );
846      TEXT_IO.PUT_LINE(
847         "TA1 - event_send - INVALID_ID"
848      );
849
850      TEXT_IO.PUT_LINE(
851         "TA1 - task_wake_after - sleep 1 second - SUCCESSFUL"
852      );
853      RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
854      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER (1 SECOND)" );
855
856      TIME := ( 1988, 2, 5, 8, 30, 45, 0 );
857      TEST_SUPPORT.PRINT_TIME( "TA1 - clock_set - ", TIME, "" );
858      RTEMS.CLOCK_SET( TIME, STATUS );
859      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_SET SUCCESSFUL" );
860      TEXT_IO.PUT_LINE( " - SUCCESSFUL" );
861
862   end SCREEN_4;
863
864--PAGE
865--
866--  SCREEN_5
867--
868
869   procedure SCREEN_5
870   is
871      STATUS         : RTEMS.STATUS_CODES;
872   begin
873
874      RTEMS.SEMAPHORE_CREATE(
875         0,
876         1,
877         RTEMS.DEFAULT_ATTRIBUTES,
878         RTEMS.NO_PRIORITY,
879         SPTEST.JUNK_ID,
880         STATUS
881      );
882      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
883         STATUS,
884         RTEMS.INVALID_NAME,
885         "SEMAPHORE_CREATE WITH ILLEGAL NAME"
886      );
887      TEXT_IO.PUT_LINE( "TA1 - semaphore_create - INVALID_NAME" );
888
889      RTEMS.SEMAPHORE_CREATE(
890         SPTEST.SEMAPHORE_NAME( 1 ),
891         1,
892         RTEMS.DEFAULT_ATTRIBUTES,
893         RTEMS.NO_PRIORITY,
894         SPTEST.SEMAPHORE_ID( 1 ),
895         STATUS
896      );
897      TEST_SUPPORT.DIRECTIVE_FAILED(
898         STATUS,
899         "SEMAPHORE_CREATE SUCCESSFUL"
900      );
901      TEXT_IO.PUT_LINE( "TA1 - semaphore_create - 1 - SUCCESSFUL" );
902
903      RTEMS.SEMAPHORE_CREATE(
904         SPTEST.SEMAPHORE_NAME( 2 ),
905         1,
906         (RTEMS.BINARY_SEMAPHORE or RTEMS.PRIORITY or RTEMS.INHERIT_PRIORITY),
907         RTEMS.NO_PRIORITY,
908         SPTEST.SEMAPHORE_ID( 2 ),
909         STATUS
910      );
911      TEST_SUPPORT.DIRECTIVE_FAILED(
912         STATUS,
913         "SEMAPHORE_CREATE SUCCESSFUL"
914      );
915      TEXT_IO.PUT_LINE( "TA1 - semaphore_create - 2 - SUCCESSFUL" );
916
917      loop
918         RTEMS.SEMAPHORE_CREATE(
919            SPTEST.SEMAPHORE_NAME( 3 ),
920            1,
921            RTEMS.DEFAULT_ATTRIBUTES,
922            RTEMS.NO_PRIORITY,
923            SPTEST.JUNK_ID,
924            STATUS
925         );
926
927         exit when not RTEMS.ARE_STATUSES_EQUAL( STATUS, RTEMS.SUCCESSFUL );
928      end loop;
929
930      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
931         STATUS,
932         RTEMS.TOO_MANY,
933         "SEMAPHORE_CREATE OF TOO MANY"
934      );
935      TEXT_IO.PUT_LINE( "TA1 - semaphore_create - 3 - TOO_MANY" );
936
937      RTEMS.SEMAPHORE_CREATE(
938         SPTEST.SEMAPHORE_NAME( 1 ),
939         1,
940         RTEMS.INHERIT_PRIORITY + RTEMS.BINARY_SEMAPHORE + RTEMS.FIFO,
941         RTEMS.NO_PRIORITY,
942         SPTEST.JUNK_ID,
943         STATUS
944      );
945      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
946         STATUS,
947         RTEMS.NOT_DEFINED,
948         "SEMAPHORE_CREATE OF FIFO INHERIT PRIORITY"
949      );
950      TEXT_IO.PUT_LINE("TA1 - semaphore_create - NOT_DEFINED");
951
952      RTEMS.SEMAPHORE_CREATE(
953         SPTEST.SEMAPHORE_NAME( 1 ),
954         1,
955         RTEMS.INHERIT_PRIORITY + RTEMS.COUNTING_SEMAPHORE + RTEMS.PRIORITY,
956         RTEMS.NO_PRIORITY,
957         SPTEST.JUNK_ID,
958         STATUS
959      );
960      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
961         STATUS,
962         RTEMS.NOT_DEFINED,
963         "SEMAPHORE_CREATE OF COUNTING_SEMAPHORE INHERIT PRIORITY"
964      );
965      TEXT_IO.PUT_LINE("TA1 - semaphore_create - NOT_DEFINED");
966
967      RTEMS.SEMAPHORE_CREATE(
968         SPTEST.SEMAPHORE_NAME( 1 ),
969         2,
970         RTEMS.BINARY_SEMAPHORE,
971         RTEMS.NO_PRIORITY,
972         SPTEST.JUNK_ID,
973         STATUS
974      );
975      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
976         STATUS,
977         RTEMS.INVALID_NUMBER,
978         "SEMAPHORE_CREATE OF BINARY_SEMAPHORE with COUNT > 1"
979      );
980      TEXT_IO.PUT_LINE("TA1 - semaphore_create - INVALID_NUMBER");
981
982      if TEST_SUPPORT.Is_Configured_Multiprocessing then
983         RTEMS.SEMAPHORE_CREATE(
984            SPTEST.SEMAPHORE_NAME( 3 ),
985            1,
986            RTEMS.GLOBAL,
987            RTEMS.NO_PRIORITY,
988            SPTEST.JUNK_ID,
989            STATUS
990         );
991         TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
992            STATUS,
993            RTEMS.MP_NOT_CONFIGURED,
994            "SEMAPHORE_CREATE OF MP_NOT_CONFIGURED"
995         );
996      end if;
997      TEXT_IO.PUT_LINE("TA1 - semaphore_create - MP_NOT_CONFIGURED");
998
999      RTEMS.SEMAPHORE_DELETE( 100, STATUS );
1000      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1001         STATUS,
1002         RTEMS.INVALID_ID,
1003         "SEMAPHORE_DELETE WITH ILLEGAL ID"
1004      );
1005      TEXT_IO.PUT_LINE(
1006         "TA1 - semaphore_delete - unknown INVALID_ID"
1007      );
1008
1009      RTEMS.SEMAPHORE_DELETE( 16#10100#, STATUS );
1010      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1011         STATUS,
1012         RTEMS.INVALID_ID,
1013         "SEMAPHORE_DELETE WITH LOCAL ILLEGAL ID"
1014      );
1015      TEXT_IO.PUT_LINE(
1016         "TA1 - semaphore_delete - local INVALID_ID"
1017      );
1018
1019      RTEMS.SEMAPHORE_IDENT(
1020         100,
1021         RTEMS.SEARCH_ALL_NODES,
1022         SPTEST.JUNK_ID,
1023         STATUS
1024      );
1025      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1026         STATUS,
1027         RTEMS.INVALID_NAME,
1028         "SEMAPHORE_IDENT WITH ILLEGAL NAME (local)"
1029      );
1030      TEXT_IO.PUT_LINE(
1031         "TA1 - semaphore_ident - global INVALID_NAME"
1032      );
1033
1034      RTEMS.SEMAPHORE_IDENT( 100, 1, SPTEST.JUNK_ID, STATUS );
1035      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1036         STATUS,
1037         RTEMS.INVALID_NAME,
1038         "SEMAPHORE_IDENT WITH ILLEGAL NAME (global)"
1039      );
1040      TEXT_IO.PUT_LINE(
1041         "TA1 - semaphore_ident - local INVALID_NAME"
1042      );
1043
1044  end SCREEN_5;
1045
1046--PAGE
1047--
1048--  SCREEN_6
1049--
1050
1051   procedure SCREEN_6
1052   is
1053      STATUS         : RTEMS.STATUS_CODES;
1054   begin
1055
1056      RTEMS.SEMAPHORE_OBTAIN(
1057         100,
1058         RTEMS.DEFAULT_OPTIONS,
1059         RTEMS.NO_TIMEOUT,
1060         STATUS
1061      );
1062      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1063         STATUS,
1064         RTEMS.INVALID_ID,
1065         "SEMAPHORE_OBTAIN WITH ILLEGAL ID"
1066      );
1067      TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - INVALID_ID" );
1068
1069      RTEMS.SEMAPHORE_OBTAIN(
1070         SPTEST.SEMAPHORE_ID( 1 ),
1071         RTEMS.DEFAULT_OPTIONS,
1072         RTEMS.NO_TIMEOUT,
1073         STATUS
1074      );
1075      TEST_SUPPORT.DIRECTIVE_FAILED(STATUS, "SEMAPHORE_OBTAIN SUCCESSFUL");
1076      TEXT_IO.PUT_LINE(
1077         "TA1 - semaphore_obtain - got sem 1 - SUCCESSFUL"
1078      );
1079
1080      RTEMS.SEMAPHORE_OBTAIN(
1081         SPTEST.SEMAPHORE_ID( 1 ),
1082         RTEMS.NO_WAIT,
1083         RTEMS.NO_TIMEOUT,
1084         STATUS
1085      );
1086      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1087         STATUS,
1088         RTEMS.UNSATISFIED,
1089         "SEMAPHORE_OBTAIN NOT AVAILABLE"
1090      );
1091      TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - UNSATISFIED" );
1092
1093      TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - timeout in 3 seconds" );
1094      RTEMS.SEMAPHORE_OBTAIN(
1095         SPTEST.SEMAPHORE_ID( 1 ),
1096         RTEMS.DEFAULT_OPTIONS,
1097         3 * TEST_SUPPORT.TICKS_PER_SECOND,
1098         STATUS
1099      );
1100      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1101         STATUS,
1102         RTEMS.TIMEOUT,
1103         "SEMAPHORE_OBTAIN NOT AVAILABLE"
1104      );
1105      TEXT_IO.PUT_LINE(
1106         "TA1 - semaphore_obtain - woke with TIMEOUT"
1107      );
1108
1109      RTEMS.SEMAPHORE_RELEASE( SPTEST.SEMAPHORE_ID( 2 ), STATUS );
1110      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1111         STATUS,
1112         RTEMS.NOT_OWNER_OF_RESOURCE,
1113         "SEMAPHORE_RELEASE AND NOT OWNER"
1114      );
1115      TEXT_IO.PUT_LINE(
1116         "TA1 - semaphore_release - NOT_OWNER_OF_RESOURCE"
1117      );
1118
1119      RTEMS.SEMAPHORE_RELEASE( 100, STATUS );
1120      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1121         STATUS,
1122         RTEMS.INVALID_ID,
1123         "SEMAPHORE_RELEASE WITH ILLEGAL ID"
1124      );
1125      TEXT_IO.PUT_LINE( "TA1 - semaphore_release - INVALID_ID" );
1126
1127      TEXT_IO.PUT_LINE(
1128         "TA1 - task_start - start TA2 - SUCCESSFUL"
1129     );
1130      RTEMS.TASK_START(
1131         SPTEST.TASK_ID( 2 ),
1132         SPTEST.TASK_2'ACCESS,
1133         0,
1134         STATUS
1135      );
1136      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA2" );
1137
1138      TEXT_IO.PUT_LINE(
1139         "TA1 - task_wake_after - yield processor - SUCCESSFUL"
1140      );
1141      RTEMS.TASK_WAKE_AFTER( RTEMS.YIELD_PROCESSOR, STATUS );
1142      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER (yield)" );
1143
1144      TEXT_IO.PUT_LINE(
1145         "TA1 - semaphore_delete - delete sem 1 - SUCCESSFUL"
1146      );
1147      RTEMS.SEMAPHORE_DELETE( SPTEST.SEMAPHORE_ID( 1 ), STATUS );
1148      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_DELETE OF SM1" );
1149
1150      TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - binary semaphore" );
1151      RTEMS.SEMAPHORE_OBTAIN(
1152         SPTEST.SEMAPHORE_ID( 2 ),
1153         RTEMS.NO_WAIT,
1154         RTEMS.NO_TIMEOUT,
1155         STATUS
1156      );
1157      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_OBTAIN" );
1158
1159      TEXT_IO.PUT_LINE(
1160         "TA1 - semaphore_delete - delete sem 2 - RESOURCE_IN_USE"
1161      );
1162      RTEMS.SEMAPHORE_DELETE( SPTEST.SEMAPHORE_ID( 2 ), STATUS );
1163      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1164         STATUS,
1165         RTEMS.RESOURCE_IN_USE,
1166         "SEMAPHORE_DELETE OF SM2"
1167      );
1168
1169      TEXT_IO.PUT_LINE(
1170         "TA1 - task_wake_after - yield processor - SUCCESSFUL"
1171      );
1172      RTEMS.TASK_WAKE_AFTER( RTEMS.YIELD_PROCESSOR, STATUS );
1173      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER (yield)" );
1174
1175      RTEMS.TASK_DELETE( SPTEST.TASK_ID( 2 ), STATUS );
1176      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1177         STATUS,
1178         RTEMS.INVALID_ID,
1179         "TASK_DELETE AFTER THE TASK HAS BEEN DELETED"
1180      );
1181      TEXT_IO.PUT_LINE(
1182         "TA1 - task_delete TA2 - already deleted INVALID_ID"
1183      );
1184
1185   end SCREEN_6;
1186
1187--PAGE
1188--
1189--  SCREEN_7
1190--
1191
1192   procedure SCREEN_7
1193   is
1194      BUFFER         : SPTEST.BUFFER;
1195      BUFFER_POINTER : RTEMS.ADDRESS;
1196      COUNT          : RTEMS.UNSIGNED32;
1197      MESSAGE_SIZE   : RTEMS.UNSIGNED32 := 0;
1198      STATUS         : RTEMS.STATUS_CODES;
1199   begin
1200
1201      BUFFER_POINTER := BUFFER'ADDRESS;
1202
1203      RTEMS.MESSAGE_QUEUE_BROADCAST(
1204         100,
1205         BUFFER_POINTER,
1206         16,
1207         COUNT,
1208         STATUS
1209      );
1210      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1211         STATUS,
1212         RTEMS.INVALID_ID,
1213         "MESSAGE_QUEUE_BROADCAST WITH ILLEGAL ID"
1214      );
1215      TEXT_IO.PUT_LINE(
1216         "TA1 - message_queue_broadcast - INVALID_ID"
1217      );
1218
1219      RTEMS.MESSAGE_QUEUE_CREATE(
1220         0,
1221         3,
1222         16,
1223         RTEMS.DEFAULT_ATTRIBUTES,
1224         SPTEST.JUNK_ID,
1225         STATUS
1226      );
1227      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1228         STATUS,
1229         RTEMS.INVALID_NAME,
1230         "MESSAGE_QUEUE_CREATE WITH ILLEGAL NAME"
1231      );
1232      TEXT_IO.PUT_LINE(
1233         "TA1 - message_queue_create - Q 1 - INVALID_NAME"
1234      );
1235
1236      if TEST_SUPPORT.Is_Configured_Multiprocessing then
1237         RTEMS.MESSAGE_QUEUE_CREATE(
1238            SPTEST.QUEUE_NAME( 1 ),
1239            1,
1240            16,
1241            RTEMS.GLOBAL,
1242            SPTEST.JUNK_ID,
1243            STATUS
1244         );
1245         TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1246            STATUS,
1247            RTEMS.MP_NOT_CONFIGURED,
1248            "MESSAGE_QUEUE_CREATE OF MP NOT CONFIGURED"
1249         );
1250      end if;
1251      TEXT_IO.PUT_LINE(
1252             "TA1 - message_queue_create - Q 1 - MP_NOT_CONFIGURED");
1253
1254      RTEMS.MESSAGE_QUEUE_CREATE(
1255         SPTEST.QUEUE_NAME( 1 ),
1256         2,
1257         16,
1258         RTEMS.DEFAULT_ATTRIBUTES,
1259         SPTEST.QUEUE_ID( 1 ),
1260         STATUS
1261      );
1262      TEST_SUPPORT.DIRECTIVE_FAILED(
1263         STATUS,
1264         "MESSAGE_QUEUE_CREATE SUCCESSFUL"
1265      );
1266      TEXT_IO.PUT_LINE(
1267         "TA1 - message_queue_create - Q 1 - 2 DEEP - SUCCESSFUL"
1268      );
1269
1270      RTEMS.MESSAGE_QUEUE_CREATE(
1271         SPTEST.QUEUE_NAME( 2 ),
1272         1,
1273         16,
1274         RTEMS.DEFAULT_ATTRIBUTES,
1275         SPTEST.JUNK_ID,
1276         STATUS
1277      );
1278      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1279         STATUS,
1280         RTEMS.TOO_MANY,
1281         "MESSAGE_QUEUE_CREATE OF TOO MANY"
1282      );
1283      TEXT_IO.PUT_LINE(
1284         "TA1 - message_queue_create - Q 2 - TOO_MANY"
1285      );
1286
1287      RTEMS.MESSAGE_QUEUE_DELETE( 100, STATUS );
1288      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1289         STATUS,
1290         RTEMS.INVALID_ID,
1291         "MESSAGE_QUEUE_DELETE WITH ILLEGAL ID"
1292      );
1293      TEXT_IO.PUT_LINE(
1294         "TA1 - message_queue_delete - unknown INVALID_ID"
1295      );
1296
1297      RTEMS.MESSAGE_QUEUE_DELETE( 16#10100#, STATUS );
1298      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1299         STATUS,
1300         RTEMS.INVALID_ID,
1301         "MESSAGE_QUEUE_DELETE WITH LOCAL ILLEGAL ID"
1302      );
1303      TEXT_IO.PUT_LINE(
1304         "TA1 - message_queue_delete - local INVALID_ID"
1305      );
1306
1307      RTEMS.MESSAGE_QUEUE_IDENT(
1308         100,
1309         RTEMS.SEARCH_ALL_NODES,
1310         SPTEST.JUNK_ID,
1311         STATUS
1312      );
1313      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1314         STATUS,
1315         RTEMS.INVALID_NAME,
1316         "MESSAGE_QUEUE_IDENT WITH ILLEGAL NAME"
1317      );
1318      TEXT_IO.PUT_LINE( "TA1 - message_queue_ident - INVALID_NAME" );
1319
1320      RTEMS.MESSAGE_QUEUE_GET_NUMBER_PENDING( 100, COUNT, STATUS );
1321      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1322        STATUS,
1323        RTEMS.INVALID_ID,
1324        "MESSAGE_QUEUE_GET_NUMBER_PENDING WITH ILLEGAL ID"
1325      );
1326      TEXT_IO.PUT_LINE( "TA1 - message_queue_get_number_pending - INVALID_ID" );
1327
1328      RTEMS.MESSAGE_QUEUE_FLUSH( 100, COUNT, STATUS );
1329      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1330         STATUS,
1331         RTEMS.INVALID_ID,
1332         "MESSAGE_QUEUE_FLUSH WITH ILLEGAL ID"
1333      );
1334      TEXT_IO.PUT_LINE( "TA1 - message_queue_flush - INVALID_ID" );
1335
1336      RTEMS.MESSAGE_QUEUE_RECEIVE(
1337         100,
1338         BUFFER_POINTER,
1339         RTEMS.DEFAULT_OPTIONS,
1340         RTEMS.NO_TIMEOUT,
1341         MESSAGE_SIZE,
1342         STATUS
1343      );
1344      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1345         STATUS,
1346         RTEMS.INVALID_ID,
1347         "MESSAGE_QUEUE_RECEIVE WITH ILLEGAL ID"
1348      );
1349      TEXT_IO.PUT_LINE( "TA1 - message_queue_receive - INVALID_ID" );
1350
1351      RTEMS.MESSAGE_QUEUE_RECEIVE(
1352         SPTEST.QUEUE_ID( 1 ),
1353         BUFFER_POINTER,
1354         RTEMS.NO_WAIT,
1355         RTEMS.NO_TIMEOUT,
1356         MESSAGE_SIZE,
1357         STATUS
1358      );
1359      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1360         STATUS,
1361         RTEMS.UNSATISFIED,
1362         "MESSAGE_QUEUE_RECEIVE UNSATISFIED"
1363      );
1364      TEXT_IO.PUT_LINE(
1365         "TA1 - message_queue_receive - Q 1 - UNSATISFIED"
1366      );
1367
1368      TEXT_IO.PUT_LINE(
1369         "TA1 - message_queue_receive - Q 1 - timeout in 3 seconds"
1370      );
1371      RTEMS.MESSAGE_QUEUE_RECEIVE(
1372         SPTEST.QUEUE_ID( 1 ),
1373         BUFFER_POINTER,
1374         RTEMS.DEFAULT_OPTIONS,
1375         3 * TEST_SUPPORT.TICKS_PER_SECOND,
1376         MESSAGE_SIZE,
1377         STATUS
1378      );
1379      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1380         STATUS,
1381         RTEMS.TIMEOUT,
1382         "MESSAGE_QUEUE_RECEIVE 3 SECOND TIMEOUT"
1383      );
1384      TEXT_IO.PUT_LINE(
1385         "TA1 - message_queue_receive - Q 1 - woke up with TIMEOUT"
1386      );
1387
1388      RTEMS.MESSAGE_QUEUE_SEND( 100, BUFFER_POINTER, 16, STATUS );
1389      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1390         STATUS,
1391         RTEMS.INVALID_ID,
1392         "MESSAGE_QUEUE_SEND WITH ILLEGAL ID"
1393      );
1394      TEXT_IO.PUT_LINE( "TA1 - message_queue_send - INVALID_ID" );
1395
1396      RTEMS.MESSAGE_QUEUE_SEND(
1397         SPTEST.QUEUE_ID( 1 ),
1398         BUFFER_POINTER,
1399         16,
1400         STATUS
1401      );
1402      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
1403      TEXT_IO.PUT_LINE(
1404         "TA1 - message_queue_send - BUFFER 1 TO Q 1 - SUCCESSFUL"
1405      );
1406
1407      RTEMS.MESSAGE_QUEUE_SEND(
1408         SPTEST.QUEUE_ID( 1 ),
1409         BUFFER_POINTER,
1410         16,
1411         STATUS
1412      );
1413      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
1414      TEXT_IO.PUT_LINE(
1415         "TA1 - message_queue_send - BUFFER 2 TO Q 1 - SUCCESSFUL"
1416      );
1417
1418      RTEMS.MESSAGE_QUEUE_SEND(
1419         SPTEST.QUEUE_ID( 1 ),
1420         BUFFER_POINTER,
1421         16,
1422         STATUS
1423      );
1424      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1425         STATUS,
1426         RTEMS.TOO_MANY,
1427         "MESSAGE_QUEUE_SEND TOO MANY TO LIMITED QUEUE"
1428      );
1429      TEXT_IO.PUT_LINE(
1430         "TA1 - message_queue_send - BUFFER 3 TO Q 1 - TOO_MANY"
1431      );
1432
1433   end SCREEN_7;
1434
1435--PAGE
1436--
1437--  SCREEN_8
1438--
1439
1440   procedure SCREEN_8
1441   is
1442      BUFFER         : SPTEST.BUFFER;
1443      BUFFER_POINTER : RTEMS.ADDRESS;
1444      STATUS         : RTEMS.STATUS_CODES;
1445   begin
1446
1447      BUFFER_POINTER := BUFFER'ADDRESS;
1448
1449      RTEMS.MESSAGE_QUEUE_DELETE( SPTEST.QUEUE_ID( 1 ), STATUS );
1450      TEST_SUPPORT.DIRECTIVE_FAILED(
1451         STATUS,
1452         "MESSAGE_QUEUE_DELETE SUCCESSFUL"
1453      );
1454      TEXT_IO.PUT_LINE(
1455         "TA1 - message_queue_delete - Q 1 - SUCCESSFUL"
1456      );
1457
1458      RTEMS.MESSAGE_QUEUE_CREATE(
1459         SPTEST.QUEUE_NAME( 1 ),
1460         2,
1461         16,
1462         RTEMS.DEFAULT_ATTRIBUTES,
1463         SPTEST.QUEUE_ID( 1 ),
1464         STATUS
1465      );
1466      TEST_SUPPORT.DIRECTIVE_FAILED(
1467         STATUS,
1468         "MESSAGE_QUEUE_CREATE SUCCESSFUL"
1469      );
1470      TEXT_IO.PUT_LINE(
1471         "TA1 - message_queue_create - Q 1 - 2 DEEP - SUCCESSFUL"
1472      );
1473
1474      RTEMS.MESSAGE_QUEUE_SEND(
1475         SPTEST.QUEUE_ID( 1 ),
1476         BUFFER_POINTER,
1477         16,
1478         STATUS
1479      );
1480      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
1481      TEXT_IO.PUT_LINE(
1482         "TA1 - message_queue_send - BUFFER 1 TO Q 1 - SUCCESSFUL"
1483      );
1484
1485      RTEMS.MESSAGE_QUEUE_SEND(
1486         SPTEST.QUEUE_ID( 1 ),
1487         BUFFER_POINTER,
1488         16,
1489         STATUS
1490      );
1491      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
1492      TEXT_IO.PUT_LINE(
1493         "TA1 - message_queue_send - BUFFER 2 TO Q 1 - SUCCESSFUL"
1494      );
1495
1496      RTEMS.MESSAGE_QUEUE_SEND(
1497         SPTEST.QUEUE_ID( 1 ),
1498         BUFFER_POINTER,
1499         16,
1500         STATUS
1501      );
1502      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1503         STATUS,
1504         RTEMS.TOO_MANY,
1505         "MESSAGE_QUEUE_SEND TOO MANY TO LIMITED QUEUE"
1506      );
1507      TEXT_IO.PUT_LINE(
1508         "TA1 - message_queue_send - BUFFER 3 TO Q 1 - TOO_MANY"
1509      );
1510
1511      RTEMS.MESSAGE_QUEUE_DELETE( SPTEST.QUEUE_ID( 1 ), STATUS );
1512      TEST_SUPPORT.DIRECTIVE_FAILED(
1513         STATUS,
1514         "MESSAGE_QUEUE_DELETE SUCCESSFUL"
1515      );
1516      TEXT_IO.PUT_LINE(
1517         "TA1 - message_queue_delete - Q 1 - SUCCESSFUL"
1518      );
1519
1520      RTEMS.MESSAGE_QUEUE_CREATE(
1521         SPTEST.QUEUE_NAME( 1 ),
1522         3,
1523         16,
1524         RTEMS.DEFAULT_ATTRIBUTES,
1525         SPTEST.QUEUE_ID( 1 ),
1526         STATUS
1527      );
1528      TEST_SUPPORT.DIRECTIVE_FAILED(
1529         STATUS,
1530         "MESSAGE_QUEUE_CREATE SUCCESSFUL"
1531      );
1532      TEXT_IO.PUT_LINE(
1533         "TA1 - message_queue_create - Q 1 - 3 DEEP - SUCCESSFUL"
1534      );
1535
1536      RTEMS.MESSAGE_QUEUE_SEND(
1537         SPTEST.QUEUE_ID( 1 ),
1538         BUFFER_POINTER,
1539         16,
1540         STATUS
1541      );
1542      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
1543      TEXT_IO.PUT_LINE(
1544         "TA1 - message_queue_send - BUFFER 1 TO Q 1 - SUCCESSFUL"
1545      );
1546
1547      RTEMS.MESSAGE_QUEUE_SEND(
1548         SPTEST.QUEUE_ID( 1 ),
1549         BUFFER_POINTER,
1550         16,
1551         STATUS
1552      );
1553      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
1554      TEXT_IO.PUT_LINE(
1555         "TA1 - message_queue_send - BUFFER 2 TO Q 1 - SUCCESSFUL"
1556      );
1557
1558      RTEMS.MESSAGE_QUEUE_SEND(
1559         SPTEST.QUEUE_ID( 1 ),
1560         BUFFER_POINTER,
1561         16,
1562         STATUS
1563      );
1564      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
1565      TEXT_IO.PUT_LINE(
1566         "TA1 - message_queue_send - BUFFER 3 TO Q 1 - SUCCESSFUL"
1567      );
1568
1569      RTEMS.MESSAGE_QUEUE_SEND(
1570         SPTEST.QUEUE_ID( 1 ),
1571         BUFFER_POINTER,
1572         16,
1573         STATUS
1574      );
1575      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1576         STATUS,
1577         RTEMS.TOO_MANY,
1578         "MESSAGE_QUEUE_SEND TOO MANY TO LIMITED QUEUE"
1579      );
1580      TEXT_IO.PUT_LINE(
1581         "TA1 - message_queue_send - BUFFER 4 TO Q 1 - TOO_MANY"
1582      );
1583
1584      RTEMS.MESSAGE_QUEUE_DELETE( SPTEST.QUEUE_ID( 1 ), STATUS );
1585      TEST_SUPPORT.DIRECTIVE_FAILED(
1586         STATUS,
1587         "MESSAGE_QUEUE_DELETE SUCCESSFUL"
1588      );
1589      TEXT_IO.PUT_LINE(
1590         "TA1 - message_queue_delete - Q 1 - SUCCESSFUL"
1591      );
1592
1593      RTEMS.MESSAGE_QUEUE_CREATE(
1594         SPTEST.QUEUE_NAME( 1 ),
1595         2,
1596         16,
1597         RTEMS.DEFAULT_ATTRIBUTES,
1598         SPTEST.QUEUE_ID( 1 ),
1599         STATUS
1600      );
1601      TEST_SUPPORT.DIRECTIVE_FAILED(
1602         STATUS,
1603         "MESSAGE_QUEUE_CREATE SUCCESSFUL"
1604      );
1605      TEXT_IO.PUT_LINE(
1606         "TA1 - message_queue_create - Q 1 - 3 DEEP - SUCCESSFUL"
1607      );
1608
1609      TEXT_IO.PUT_LINE(
1610         "TA1 - task_start - start TA3 - SUCCESSFUL"
1611      );
1612      RTEMS.TASK_START(
1613         SPTEST.TASK_ID( 3 ),
1614         SPTEST.TASK_3'ACCESS,
1615         0,
1616         STATUS
1617      );
1618      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA3" );
1619
1620      TEXT_IO.PUT_LINE(
1621         "TA1 - task_wake_after - yield processor - SUCCESSFUL"
1622      );
1623      RTEMS.TASK_WAKE_AFTER( RTEMS.YIELD_PROCESSOR, STATUS );
1624      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER (yield)" );
1625
1626      RTEMS.MESSAGE_QUEUE_DELETE( SPTEST.QUEUE_ID( 1 ), STATUS );
1627      TEST_SUPPORT.DIRECTIVE_FAILED(
1628         STATUS,
1629         "MESSAGE_QUEUE_DELETE SUCCESSFUL"
1630      );
1631      TEXT_IO.PUT_LINE(
1632         "TA1 - message_queue_delete - delete Q 1 - SUCCESSFUL"
1633      );
1634
1635      TEXT_IO.PUT_LINE(
1636         "TA1 - task_wake_after - yield processor - SUCCESSFUL"
1637      );
1638      RTEMS.TASK_WAKE_AFTER( RTEMS.YIELD_PROCESSOR, STATUS );
1639      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER (yield)" );
1640
1641   end SCREEN_8;
1642
1643--PAGE
1644--
1645--  SCREEN_9
1646--
1647
1648   procedure SCREEN_9
1649   is
1650      CONVERTED : RTEMS.ADDRESS;
1651      STATUS    : RTEMS.STATUS_CODES;
1652   begin
1653
1654      RTEMS.PORT_CREATE(
1655         0,
1656         SPTEST.INTERNAL_PORT_AREA'ADDRESS,
1657         SPTEST.EXTERNAL_PORT_AREA'ADDRESS,
1658         SPTEST.INTERNAL_PORT_AREA'LENGTH,
1659         SPTEST.JUNK_ID,
1660         STATUS
1661      );
1662      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1663         STATUS,
1664         RTEMS.INVALID_NAME,
1665         "PORT_CREATE WITH ILLEGAL NAME"
1666      );
1667      TEXT_IO.PUT_LINE( "TA1 - port_create - INVALID_NAME" );
1668
1669      RTEMS.PORT_CREATE(
1670         SPTEST.PORT_NAME( 1 ),
1671         SPTEST.INTERNAL_PORT_AREA( 1 )'ADDRESS,
1672         SPTEST.EXTERNAL_PORT_AREA'ADDRESS,
1673         SPTEST.INTERNAL_PORT_AREA'LENGTH,
1674         SPTEST.JUNK_ID,
1675         STATUS
1676      );
1677      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1678         STATUS,
1679         RTEMS.INVALID_ADDRESS,
1680         "PORT_CREATE WITH ILLEGAL ADDRESS"
1681      );
1682      TEXT_IO.PUT_LINE( "TA1 - port_create - INVALID_ADDRESS" );
1683
1684      RTEMS.PORT_CREATE(
1685         SPTEST.PORT_NAME( 1 ),
1686         SPTEST.INTERNAL_PORT_AREA'ADDRESS,
1687         SPTEST.EXTERNAL_PORT_AREA'ADDRESS,
1688         SPTEST.INTERNAL_PORT_AREA'LENGTH,
1689         SPTEST.JUNK_ID,
1690         STATUS
1691      );
1692      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1693         STATUS,
1694         RTEMS.TOO_MANY,
1695         "PORT_CREATE OF TOO MANY"
1696      );
1697      TEXT_IO.PUT_LINE( "TA1 - port_create - TOO_MANY" );
1698
1699      RTEMS.PORT_DELETE( 0, STATUS );
1700      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1701         STATUS,
1702         RTEMS.INVALID_ID,
1703         "PORT_DELETE WITH ILLEGAL ID"
1704      );
1705      TEXT_IO.PUT_LINE( "TA1 - port_delete - INVALID_ID" );
1706
1707      RTEMS.PORT_IDENT( 0, SPTEST.JUNK_ID, STATUS );
1708      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1709         STATUS,
1710         RTEMS.INVALID_NAME,
1711         "PORT_IDENT WITH ILLEGAL NAME"
1712      );
1713      TEXT_IO.PUT_LINE( "TA1 - port_ident - INVALID_NAME" );
1714
1715      RTEMS.PORT_INTERNAL_TO_EXTERNAL(
1716         100,
1717         SPTEST.INTERNAL_PORT_AREA'ADDRESS,
1718         CONVERTED,
1719         STATUS
1720      );
1721      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1722         STATUS,
1723         RTEMS.INVALID_ID,
1724         "PORT_INTERNAL_TO_EXTERNAL WITH ILLEGAL ID"
1725      );
1726      TEXT_IO.PUT_LINE(
1727         "TA1 - port_internal_to_external - INVALID_ID"
1728      );
1729
1730      RTEMS.PORT_EXTERNAL_TO_INTERNAL(
1731         100,
1732         SPTEST.EXTERNAL_PORT_AREA'ADDRESS,
1733         CONVERTED,
1734         STATUS
1735      );
1736      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1737         STATUS,
1738         RTEMS.INVALID_ID,
1739         "PORT_EXTERNAL_TO_INTERNAL WITH ILLEGAL ID"
1740      );
1741      TEXT_IO.PUT_LINE(
1742         "TA1 - port_external_to_internal - INVALID_ID"
1743      );
1744
1745   end SCREEN_9;
1746
1747--PAGE
1748--
1749--  SCREEN_10
1750--
1751
1752   procedure SCREEN_10
1753   is
1754      STATUS : RTEMS.STATUS_CODES;
1755   begin
1756
1757      RTEMS.RATE_MONOTONIC_CREATE( 0, SPTEST.JUNK_ID, STATUS );
1758      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1759         STATUS,
1760         RTEMS.INVALID_NAME,
1761         "RATE_MONOTONIC_CREATE WITH ILLEGAL NAME"
1762      );
1763      TEXT_IO.PUT_LINE(
1764         "TA1 - rate_monotonic_create - INVALID_NAME"
1765      );
1766
1767      RTEMS.RATE_MONOTONIC_CREATE(
1768         SPTEST.PERIOD_NAME( 1 ),
1769         SPTEST.PERIOD_ID( 1 ),
1770         STATUS
1771      );
1772      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "RATE_MONOTONIC_CREATE" );
1773      TEXT_IO.PUT_LINE(
1774         "TA1 - rate_monotonic_create - SUCCESSFUL"
1775      );
1776
1777      RTEMS.RATE_MONOTONIC_CREATE(
1778         SPTEST.PERIOD_NAME( 1 ),
1779         SPTEST.JUNK_ID,
1780         STATUS
1781      );
1782      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1783         STATUS,
1784         RTEMS.TOO_MANY,
1785         "RATE_MONOTONIC_CREATE FOR TOO MANY"
1786      );
1787      TEXT_IO.PUT_LINE( "TA1 - rate_monotonic_create - TOO_MANY" );
1788
1789      RTEMS.RATE_MONOTONIC_IDENT( 0, SPTEST.JUNK_ID, STATUS );
1790      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1791         STATUS,
1792         RTEMS.INVALID_NAME,
1793         "RATE_MONOTONIC_IDENT WITH ILLEGAL NAME"
1794      );
1795      TEXT_IO.PUT_LINE(
1796         "TA1 - rate_monotonic_ident - INVALID_NAME"
1797      );
1798
1799      RTEMS.RATE_MONOTONIC_PERIOD( 100, 5, STATUS );
1800      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1801         STATUS,
1802         RTEMS.INVALID_ID,
1803         "RATE_MONOTONIC_PERIOD WITH ILLEGAL ID"
1804      );
1805      TEXT_IO.PUT_LINE(
1806         "TA1 - rate_monotonic_period - unknown INVALID_ID"
1807      );
1808
1809      RTEMS.RATE_MONOTONIC_PERIOD( 16#10100#, 5, STATUS );
1810      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1811         STATUS,
1812         RTEMS.INVALID_ID,
1813         "RATE_MONOTONIC_PERIOD WITH ILLEGAL ID"
1814      );
1815      TEXT_IO.PUT_LINE(
1816         "TA1 - rate_monotonic_period - local INVALID_ID"
1817      );
1818
1819      RTEMS.RATE_MONOTONIC_PERIOD(
1820         SPTEST.PERIOD_ID( 1 ),
1821         RTEMS.PERIOD_STATUS,
1822         STATUS
1823      );
1824      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1825         STATUS,
1826         RTEMS.NOT_DEFINED,
1827         "RATE_MONOTONIC_PERIOD STATUS NOT DEFINED"
1828      );
1829      TEXT_IO.PUT_LINE(
1830         "TA1 - rate_monotonic_period( STATUS ) - NOT_DEFINED"
1831      );
1832
1833      RTEMS.RATE_MONOTONIC_PERIOD( SPTEST.PERIOD_ID( 1 ), 100, STATUS );
1834      TEST_SUPPORT.DIRECTIVE_FAILED(
1835         STATUS,
1836         "RATE_MONOTONIC_PERIOD 100 TICKS"
1837      );
1838      TEXT_IO.PUT( "TA1 - rate_monotonic_period - 100 ticks - " );
1839      TEXT_IO.PUT_LINE( "SUCCESSFUL" );
1840
1841      RTEMS.RATE_MONOTONIC_PERIOD(
1842         SPTEST.PERIOD_ID( 1 ),
1843         RTEMS.PERIOD_STATUS,
1844         STATUS
1845      );
1846      TEST_SUPPORT.DIRECTIVE_FAILED(
1847         STATUS,
1848         "RATE_MONOTONIC_PERIOD STATUS"
1849      );
1850      TEXT_IO.PUT( "TA1 - rate_monotonic_period( STATUS ) - " );
1851      TEXT_IO.PUT_LINE( "SUCCESSFUL" );
1852
1853      loop
1854
1855         RTEMS.RATE_MONOTONIC_PERIOD(
1856            SPTEST.PERIOD_ID( 1 ),
1857            RTEMS.PERIOD_STATUS,
1858            STATUS
1859         );
1860
1861         exit when RTEMS.ARE_STATUSES_EQUAL( STATUS, RTEMS.TIMEOUT );
1862
1863         TEST_SUPPORT.DIRECTIVE_FAILED(
1864            STATUS,
1865            "RATE_MONOTONIC_PERIOD STATUS WAITING FOR TIMEOUT"
1866         );
1867 
1868      end loop;
1869      TEXT_IO.PUT( "TA1 - rate_monotonic_period( STATUS ) - " );
1870      TEXT_IO.PUT_LINE( "TIMEOUT" );
1871
1872      RTEMS.RATE_MONOTONIC_CANCEL( 100, STATUS );
1873      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1874         STATUS,
1875         RTEMS.INVALID_ID,
1876         "RATE_MONOTONIC_CANCEL WITH ILLEGAL ID"
1877      );
1878      TEXT_IO.PUT_LINE(
1879         "TA1 - rate_monotonic_cancel - unknown INVALID_ID"
1880      );
1881
1882      RTEMS.RATE_MONOTONIC_CANCEL( 16#10100#, STATUS );
1883      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1884         STATUS,
1885         RTEMS.INVALID_ID,
1886         "RATE_MONOTONIC_CANCEL WITH ILLEGAL ID"
1887      );
1888      TEXT_IO.PUT_LINE(
1889         "TA1 - rate_monotonic_cancel - local INVALID_ID"
1890      );
1891
1892      RTEMS.RATE_MONOTONIC_CANCEL( SPTEST.PERIOD_ID( 1 ), STATUS );
1893      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "RATE_MONOTONIC_CANCEL" );
1894      TEXT_IO.PUT_LINE( "TA1 - rate_monotonic_cancel - SUCCESSFUL" );
1895
1896      RTEMS.RATE_MONOTONIC_PERIOD( SPTEST.PERIOD_ID( 1 ), 5, STATUS );
1897      TEST_SUPPORT.DIRECTIVE_FAILED(
1898         STATUS,
1899         "RATE_MONOTONIC_PERIOD RESTART"
1900      );
1901
1902      RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
1903      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
1904
1905      RTEMS.RATE_MONOTONIC_PERIOD( SPTEST.PERIOD_ID( 1 ), 5, STATUS );
1906      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1907         STATUS,
1908         RTEMS.TIMEOUT,
1909         "RATE_MONOTONIC_PERIOD TIMED OUT"
1910      );
1911      TEXT_IO.PUT_LINE(
1912         "TA1 - rate_monotonic_period - 5 ticks - TIMEOUT"
1913      );
1914
1915      RTEMS.TASK_START(
1916         SPTEST.TASK_ID( 4 ),
1917         SPTEST.TASK_4'ACCESS,
1918         0,
1919         STATUS
1920      );
1921      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA4" );
1922
1923      TEXT_IO.PUT_LINE( "TA1 - task_wake_after - yielding to TA4" );
1924      RTEMS.TASK_WAKE_AFTER( RTEMS.YIELD_PROCESSOR, STATUS );
1925      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER (yield)" );
1926
1927      RTEMS.RATE_MONOTONIC_DELETE( 100, STATUS );
1928      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1929         STATUS,
1930         RTEMS.INVALID_ID,
1931         "RATE_MONOTONIC_DELETE WITH ILLEGAL ID"
1932      );
1933      TEXT_IO.PUT_LINE(
1934         "TA1 - rate_monotonic_delete - unknown INVALID_ID"
1935      );
1936
1937      RTEMS.RATE_MONOTONIC_DELETE( 16#10100#, STATUS );
1938      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1939         STATUS,
1940         RTEMS.INVALID_ID,
1941         "RATE_MONOTONIC_DELETE WITH ILLEGAL ID"
1942      );
1943      TEXT_IO.PUT_LINE(
1944         "TA1 - rate_monotonic_delete - local INVALID_ID"
1945      );
1946
1947      RTEMS.RATE_MONOTONIC_DELETE( SPTEST.PERIOD_ID( 1 ), STATUS );
1948      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "RATE_MONOTONIC_DELETE" );
1949      TEXT_IO.PUT_LINE(
1950         "TA1 - rate_monotonic_delete - SUCCESSFUL"
1951      );
1952
1953   end SCREEN_10;
1954
1955--PAGE
1956--
1957--  SCREEN_11
1958--
1959
1960   procedure SCREEN_11
1961   is
1962      BUFFER_ADDRESS_1 : RTEMS.ADDRESS;
1963      BUFFER_ADDRESS_2 : RTEMS.ADDRESS;
1964      BUFFER_ADDRESS_3 : RTEMS.ADDRESS;
1965      STATUS           : RTEMS.STATUS_CODES;
1966   begin
1967
1968      RTEMS.PARTITION_CREATE(
1969         0,
1970         SPTEST.PARTITION_GOOD_AREA'ADDRESS,
1971         128,
1972         40,
1973         RTEMS.DEFAULT_ATTRIBUTES,
1974         SPTEST.JUNK_ID,
1975         STATUS
1976      );
1977      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1978         STATUS,
1979         RTEMS.INVALID_NAME,
1980         "PARTITION_CREATE WITH ILLEGAL NAME"
1981      );
1982      TEXT_IO.PUT_LINE( "TA1 - partition_create - INVALID_NAME" );
1983
1984      RTEMS.PARTITION_CREATE(
1985         SPTEST.PARTITION_NAME( 1 ),
1986         SPTEST.PARTITION_GOOD_AREA'ADDRESS,
1987         0,
1988         80,
1989         RTEMS.DEFAULT_ATTRIBUTES,
1990         SPTEST.JUNK_ID,
1991         STATUS
1992      );
1993      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
1994         STATUS,
1995         RTEMS.INVALID_SIZE,
1996         "PARTITION_CREATE WITH ILLEGAL LENGTH"
1997      );
1998      TEXT_IO.PUT_LINE(
1999         "TA1 - partition_create - length - INVALID_SIZE"
2000      );
2001
2002      RTEMS.PARTITION_CREATE(
2003         SPTEST.PARTITION_NAME( 1 ),
2004         SPTEST.PARTITION_GOOD_AREA'ADDRESS,
2005         128,
2006         0,
2007         RTEMS.DEFAULT_ATTRIBUTES,
2008         SPTEST.JUNK_ID,
2009         STATUS
2010      );
2011      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2012         STATUS,
2013         RTEMS.INVALID_SIZE,
2014         "PARTITION_CREATE WITH ILLEGAL BUFFER_SIZE"
2015      );
2016      TEXT_IO.PUT_LINE(
2017         "TA1 - partition_create - buffer size - INVALID_SIZE"
2018      );
2019
2020      RTEMS.PARTITION_CREATE(
2021         SPTEST.PARTITION_NAME( 1 ),
2022         SPTEST.PARTITION_GOOD_AREA'ADDRESS,
2023         128,
2024         256,
2025         RTEMS.DEFAULT_ATTRIBUTES,
2026         SPTEST.JUNK_ID,
2027         STATUS
2028      );
2029      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2030         STATUS,
2031         RTEMS.INVALID_SIZE,
2032         "PARTITION_CREATE WITH BUFFER_SIZE > LENGTH"
2033      );
2034      TEXT_IO.PUT_LINE(
2035       "TA1 - partition_create - length < buffer size - INVALID_SIZE"
2036      );
2037
2038      if TEST_SUPPORT.Is_Configured_Multiprocessing then
2039         RTEMS.PARTITION_CREATE(
2040            SPTEST.PARTITION_NAME( 1 ),
2041            SPTEST.PARTITION_GOOD_AREA'ADDRESS,
2042            128,
2043            64,
2044            RTEMS.GLOBAL,
2045            SPTEST.JUNK_ID,
2046            STATUS
2047         );
2048         TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2049            STATUS,
2050            RTEMS.MP_NOT_CONFIGURED,
2051            "PARTITION_CREATE OF GLOBAL"
2052         );
2053      end if;
2054      TEXT_IO.PUT_LINE("TA1 - partition_create - MP_NOT_CONFIGURED");
2055
2056      RTEMS.PARTITION_CREATE(
2057         SPTEST.PARTITION_NAME( 1 ),
2058         SPTEST.PARTITION_BAD_AREA'ADDRESS,
2059         128,
2060         64,
2061         RTEMS.DEFAULT_ATTRIBUTES,
2062         SPTEST.JUNK_ID,
2063         STATUS
2064      );
2065      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2066         STATUS,
2067         RTEMS.INVALID_ADDRESS,
2068         "PARTITION_CREATE WITH BAD ADDRESS"
2069      );
2070      TEXT_IO.PUT_LINE( "TA1 - partition_create - INVALID_ADDRESS" );
2071
2072      RTEMS.PARTITION_CREATE(
2073         SPTEST.PARTITION_NAME( 1 ),
2074         SPTEST.PARTITION_GOOD_AREA'ADDRESS,
2075         128,
2076         34,
2077         RTEMS.DEFAULT_ATTRIBUTES,
2078         SPTEST.JUNK_ID,
2079         STATUS
2080      );
2081      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2082         STATUS,
2083         RTEMS.INVALID_SIZE,
2084         "PARTITION_CREATE WITH UNALIGNED BUFFER_SIZE"
2085      );
2086      TEXT_IO.PUT_LINE( "TA1 - partition_create - INVALID_SIZE" );
2087
2088      RTEMS.PARTITION_DELETE( 100, STATUS );
2089      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2090         STATUS,
2091         RTEMS.INVALID_ID,
2092         "PARTITION_DELETE WITH ILLEGAL ID"
2093      );
2094      TEXT_IO.PUT_LINE(
2095         "TA1 - partition_delete - unknown INVALID_ID"
2096      );
2097
2098      RTEMS.PARTITION_DELETE( 16#10100#, STATUS );
2099      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2100         STATUS,
2101         RTEMS.INVALID_ID,
2102         "PARTITION_DELETE WITH ILLEGAL ID"
2103      );
2104      TEXT_IO.PUT_LINE(
2105         "TA1 - partition_delete - local INVALID_ID"
2106      );
2107
2108      RTEMS.PARTITION_GET_BUFFER( 100, BUFFER_ADDRESS_1, STATUS );
2109      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2110         STATUS,
2111         RTEMS.INVALID_ID,
2112         "PARTITION_GET_BUFFER WITH ILLEGAL ID"
2113      );
2114      TEXT_IO.PUT_LINE( "TA1 - partition_get_buffer - INVALID_ID" );
2115
2116      RTEMS.PARTITION_IDENT(
2117         0,
2118         RTEMS.SEARCH_ALL_NODES,
2119         SPTEST.JUNK_ID,
2120         STATUS
2121      );
2122      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2123         STATUS,
2124         RTEMS.INVALID_NAME,
2125         "PARTITION_IDENT WITH ILLEGAL NAME"
2126      );
2127      TEXT_IO.PUT_LINE( "TA1 - partition_ident - INVALID_NAME" );
2128
2129      RTEMS.PARTITION_RETURN_BUFFER( 100, BUFFER_ADDRESS_1, STATUS );
2130      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2131         STATUS,
2132         RTEMS.INVALID_ID,
2133         "PARTITION_RETURN WITH ILLEGAL ID"
2134      );
2135      TEXT_IO.PUT_LINE(
2136         "TA1 - partition_return_buffer - INVALID_ID"
2137      );
2138
2139      RTEMS.PARTITION_CREATE(
2140         SPTEST.PARTITION_NAME( 1 ),
2141         SPTEST.PARTITION_GOOD_AREA'ADDRESS,
2142         128,
2143         64,
2144         RTEMS.DEFAULT_ATTRIBUTES,
2145         SPTEST.PARTITION_ID( 1 ),
2146         STATUS
2147      );
2148      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PARTITION_CREATE" );
2149      TEXT_IO.PUT_LINE( "TA1 - partition_create - SUCCESSFUL" );
2150
2151      RTEMS.PARTITION_CREATE(
2152         SPTEST.PARTITION_NAME( 1 ),
2153         SPTEST.PARTITION_GOOD_AREA'ADDRESS,
2154         128,
2155         64,
2156         RTEMS.DEFAULT_ATTRIBUTES,
2157         SPTEST.JUNK_ID,
2158         STATUS
2159      );
2160      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2161         STATUS,
2162         RTEMS.TOO_MANY,
2163         "PARTITION_CREATE OF TOO MANY"
2164      );
2165      TEXT_IO.PUT_LINE( "TA1 - partition_create - TOO_MANY" );
2166
2167      RTEMS.PARTITION_GET_BUFFER(
2168         SPTEST.PARTITION_ID( 1 ),
2169         BUFFER_ADDRESS_1,
2170         STATUS
2171      );
2172      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PARTITION_GET_BUFFER" );
2173      TEXT_IO.PUT_LINE( "TA1 - partition_get_buffer - SUCCESSFUL" );
2174
2175      RTEMS.PARTITION_GET_BUFFER(
2176         SPTEST.PARTITION_ID( 1 ),
2177         BUFFER_ADDRESS_2,
2178         STATUS
2179      );
2180      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PARTITION_GET_BUFFER" );
2181      TEXT_IO.PUT_LINE( "TA1 - partition_get_buffer - SUCCESSFUL" );
2182
2183      RTEMS.PARTITION_GET_BUFFER(
2184         SPTEST.PARTITION_ID( 1 ),
2185         BUFFER_ADDRESS_3,
2186         STATUS
2187      );
2188      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2189         STATUS,
2190         RTEMS.UNSATISFIED,
2191         "PARTITION_GET_BUFFER UNSATISFIED"
2192      );
2193      TEXT_IO.PUT_LINE( "TA1 - partition_get_buffer - UNSATISFIED" );
2194
2195      RTEMS.PARTITION_DELETE(
2196         SPTEST.PARTITION_ID( 1 ),
2197         STATUS
2198      );
2199      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2200         STATUS,
2201         RTEMS.RESOURCE_IN_USE,
2202         "PARTITION_DELETE WITH BUFFERS IN USE"
2203      );
2204      TEXT_IO.PUT_LINE( "TA1 - partition_delete - RESOURCE_IN_USE" );
2205
2206      RTEMS.PARTITION_RETURN_BUFFER(
2207         SPTEST.PARTITION_ID( 1 ),
2208         SPTEST.REGION_GOOD_AREA( 0 )'ADDRESS,  -- NOTE: REGION
2209         STATUS
2210      );
2211      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2212         STATUS,
2213         RTEMS.INVALID_ADDRESS,
2214         "PARTITION_RETURN WITH BUFFER ADDRESS OUT OF PARTITION"
2215      );
2216      TEXT_IO.PUT( "TA1 - partition_return_buffer - " );
2217      TEXT_IO.PUT_LINE( "INVALID_ADDRESS - out of range" );
2218
2219      RTEMS.PARTITION_RETURN_BUFFER(
2220         SPTEST.PARTITION_ID( 1 ),
2221         SPTEST.PARTITION_GOOD_AREA( 7 )'ADDRESS,
2222         STATUS
2223      );
2224      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2225         STATUS,
2226         RTEMS.INVALID_ADDRESS,
2227         "PARTITION_RETURN WITH BUFFER ADDRESS NOT ON BOUNDARY"
2228      );
2229      TEXT_IO.PUT( "TA1 - partition_return_buffer - " );
2230      TEXT_IO.PUT_LINE( "INVALID_ADDRESS - not on boundary" );
2231
2232
2233   end SCREEN_11;
2234
2235--PAGE
2236--
2237--  SCREEN_12
2238--
2239
2240   procedure SCREEN_12
2241   is
2242      SEGMENT_ADDRESS_1 : RTEMS.ADDRESS;
2243      SEGMENT_ADDRESS_2 : RTEMS.ADDRESS;
2244      SEGMENT_ADDRESS_3 : RTEMS.ADDRESS;
2245      OFFSET            : RTEMS.UNSIGNED32;
2246      GOOD_FRONT_FLAG   : RTEMS.UNSIGNED32;
2247      GOOD_BACK_FLAG    : RTEMS.UNSIGNED32;
2248      STATUS            : RTEMS.STATUS_CODES;
2249   begin
2250
2251      RTEMS.REGION_CREATE(
2252         0,
2253         SPTEST.REGION_GOOD_AREA'ADDRESS,
2254         16#40#,
2255         32,
2256         RTEMS.DEFAULT_ATTRIBUTES,
2257         SPTEST.JUNK_ID,
2258         STATUS
2259      );
2260      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2261         STATUS,
2262         RTEMS.INVALID_NAME,
2263         "REGION_CREATE WITH ILLEGAL NAME"
2264      );
2265      TEXT_IO.PUT_LINE( "TA1 - region_create - INVALID_NAME" );
2266
2267      RTEMS.REGION_CREATE(
2268         SPTEST.REGION_NAME( 1 ),
2269         SPTEST.REGION_BAD_AREA'ADDRESS,
2270         16#40#,
2271         32,
2272         RTEMS.DEFAULT_ATTRIBUTES,
2273         SPTEST.JUNK_ID,
2274         STATUS
2275      );
2276      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2277         STATUS,
2278         RTEMS.INVALID_ADDRESS,
2279         "REGION_CREATE WITH ILLEGAL ADDRESS"
2280      );
2281      TEXT_IO.PUT_LINE( "TA1 - region_create - INVALID_ADDRESS" );
2282
2283      RTEMS.REGION_CREATE(
2284         SPTEST.REGION_NAME( 1 ),
2285         SPTEST.REGION_GOOD_AREA'ADDRESS,
2286         34,
2287         34,
2288         RTEMS.DEFAULT_ATTRIBUTES,
2289         SPTEST.JUNK_ID,
2290         STATUS
2291      );
2292      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2293         STATUS,
2294         RTEMS.INVALID_SIZE,
2295         "REGION_CREATE WITH ILLEGAL SIZE"
2296      );
2297      TEXT_IO.PUT_LINE( "TA1 - region_create - INVALID_SIZE" );
2298
2299      RTEMS.REGION_CREATE(
2300         SPTEST.REGION_NAME( 1 ),
2301         SPTEST.REGION_GOOD_AREA( SPTEST.REGION_START_OFFSET )'ADDRESS,
2302         SPTEST.REGION_LENGTH,
2303         16#40#,
2304         RTEMS.DEFAULT_ATTRIBUTES,
2305         SPTEST.REGION_ID( 1 ),
2306         STATUS
2307      );
2308      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "REGION_CREATE" );
2309      TEXT_IO.PUT_LINE( "TA1 - region_create - SUCCESSFUL" );
2310
2311      RTEMS.REGION_CREATE(
2312         SPTEST.REGION_NAME( 1 ),
2313         SPTEST.REGION_GOOD_AREA'ADDRESS,
2314         SPTEST.REGION_LENGTH,
2315         16#40#,
2316         RTEMS.DEFAULT_ATTRIBUTES,
2317         SPTEST.JUNK_ID,
2318         STATUS
2319      );
2320      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2321         STATUS,
2322         RTEMS.TOO_MANY,
2323         "REGION_CREATE FOR TOO MANY"
2324      );
2325      TEXT_IO.PUT_LINE( "TA1 - region_create - TOO_MANY" );
2326
2327      RTEMS.REGION_DELETE( 100, STATUS );
2328      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2329         STATUS,
2330         RTEMS.INVALID_ID,
2331         "REGION_DELETE WITH ILLEGAL ID"
2332      );
2333      TEXT_IO.PUT_LINE( "TA1 - region_delete - unknown INVALID_ID" );
2334
2335      RTEMS.REGION_DELETE( 16#10100#, STATUS );
2336      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2337         STATUS,
2338         RTEMS.INVALID_ID,
2339         "REGION_DELETE WITH ILLEGAL ID"
2340      );
2341      TEXT_IO.PUT_LINE( "TA1 - region_delete - local INVALID_ID" );
2342
2343      RTEMS.REGION_IDENT( 0, SPTEST.JUNK_ID, STATUS );
2344      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2345         STATUS,
2346         RTEMS.INVALID_NAME,
2347         "REGION_IDENT WITH ILLEGAL NAME"
2348      );
2349      TEXT_IO.PUT_LINE( "TA1 - region_ident - INVALID_NAME" );
2350
2351      RTEMS.REGION_GET_SEGMENT(
2352         100,
2353         16#40#,
2354         RTEMS.DEFAULT_OPTIONS,
2355         RTEMS.NO_TIMEOUT,
2356         SEGMENT_ADDRESS_1,
2357         STATUS
2358      );
2359      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2360         STATUS,
2361         RTEMS.INVALID_ID,
2362         "REGION_GET_SEGMENT WITH ILLEGAL ID"
2363      );
2364      TEXT_IO.PUT_LINE( "TA1 - region_get_segment - INVALID_ID" );
2365
2366      RTEMS.REGION_GET_SEGMENT(
2367         SPTEST.REGION_ID( 1 ),
2368         (SPTEST.REGION_GOOD_AREA'SIZE / 8) * 2,
2369         RTEMS.DEFAULT_OPTIONS,
2370         RTEMS.NO_TIMEOUT,
2371         SEGMENT_ADDRESS_1,
2372         STATUS
2373      );
2374      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2375         STATUS,
2376         RTEMS.INVALID_SIZE,
2377         "REGION_GET_SEGMENT WITH ILLEGAL SIZE"
2378      );
2379      TEXT_IO.PUT_LINE( "TA1 - region_get_segment - INVALID_SIZE" );
2380
2381      RTEMS.REGION_GET_SEGMENT(
2382         SPTEST.REGION_ID( 1 ),
2383         384,
2384         RTEMS.DEFAULT_OPTIONS,
2385         RTEMS.NO_TIMEOUT,
2386         SEGMENT_ADDRESS_1,
2387         STATUS
2388      );
2389      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "REGION_GET_SEGMENT" );
2390      TEXT_IO.PUT_LINE( "TA1 - region_get_segment - SUCCESSFUL" );
2391
2392      RTEMS.REGION_GET_SEGMENT(
2393         SPTEST.REGION_ID( 1 ),
2394         SPTEST.REGION_LENGTH / 2,
2395         RTEMS.NO_WAIT,
2396         RTEMS.NO_TIMEOUT,
2397         SEGMENT_ADDRESS_2,
2398         STATUS
2399      );
2400      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2401         STATUS,
2402         RTEMS.UNSATISFIED,
2403         "REGION_GET_SEGMENT UNSATISFIED"
2404      );
2405      TEXT_IO.PUT_LINE( "TA1 - region_get_segment - UNSATISFIED" );
2406
2407      TEXT_IO.PUT_LINE( "TA1 - region_get_segment - timeout in 3 seconds" );
2408      RTEMS.REGION_GET_SEGMENT(
2409         SPTEST.REGION_ID( 1 ),
2410         128,
2411         RTEMS.DEFAULT_OPTIONS,
2412         3 * TEST_SUPPORT.TICKS_PER_SECOND,
2413         SEGMENT_ADDRESS_3,
2414         STATUS
2415      );
2416      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2417         STATUS,
2418         RTEMS.TIMEOUT,
2419         "REGION_GET_SEGMENT TIMEOUT"
2420      );
2421      TEXT_IO.PUT_LINE(
2422         "TA1 - region_get_segment - woke up with TIMEOUT"
2423      );
2424
2425      RTEMS.REGION_DELETE( SPTEST.REGION_ID( 1 ), STATUS );
2426      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2427         STATUS,
2428         RTEMS.RESOURCE_IN_USE,
2429         "REGION_DELETE WITH BUFFERS IN USE"
2430      );
2431      TEXT_IO.PUT_LINE( "TA1 - region_delete - RESOURCE_IN_USE" );
2432
2433      RTEMS.REGION_RETURN_SEGMENT(
2434         100,
2435         SEGMENT_ADDRESS_1,
2436         STATUS
2437      );
2438      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2439         STATUS,
2440         RTEMS.INVALID_ID,
2441         "REGION_RETURN_SEGMENT WITH ILLEGAL ID"
2442      );
2443      TEXT_IO.PUT_LINE( "TA1 - region_return_segment - INVALID_ID" );
2444
2445      RTEMS.REGION_RETURN_SEGMENT(
2446         SPTEST.REGION_ID( 1 ),
2447         SPTEST.REGION_GOOD_AREA'ADDRESS,
2448         STATUS
2449      );
2450      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2451         STATUS,
2452         RTEMS.INVALID_ADDRESS,
2453         "REGION_RETURN_SEGMENT WITH ILLEGAL SEGMENT"
2454      );
2455      TEXT_IO.PUT_LINE(
2456         "TA1 - region_return_segment - INVALID_ADDRESS"
2457      );
2458
2459      -- internal heap errors, subject to change if heap code changes
2460
2461      TEXT_IO.PUT_LINE( "TA1 - debug_disable - DEBUG_REGION" );
2462      RTEMS.DEBUG_DISABLE( RTEMS.DEBUG_REGION );
2463
2464      OFFSET := 0;
2465      GOOD_BACK_FLAG := 0;
2466      GOOD_FRONT_FLAG := 0;
2467
2468      TEXT_IO.PUT_LINE(
2469         "TA1 - region_return_segment - INVALID_ADDRESS - SKIPPED"
2470      );
2471      TEXT_IO.PUT_LINE(
2472         "TA1 - region_return_segment - INVALID_ADDRESS - SKIPPED"
2473      );
2474
2475
2476--      OFFSET := RTEMS.SUBTRACT(
2477--                   SEGMENT_ADDRESS_1,
2478--                   SPTEST.REGION_GOOD_AREA'ADDRESS
2479--                ) / 4;
2480--
2481--     
2482--      -- bad FRONT_FLAG error
2483--
2484--      GOOD_FRONT_FLAG := SPTEST.REGION_GOOD_AREA( OFFSET - 1 );
2485--      SPTEST.REGION_GOOD_AREA( OFFSET - 1 ) := GOOD_FRONT_FLAG + 2;
2486--
2487--      RTEMS.REGION_RETURN_SEGMENT(
2488--         SPTEST.REGION_ID( 1 ),
2489--         SEGMENT_ADDRESS_1,
2490--         STATUS
2491--      );
2492--      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2493--         STATUS,
2494--         RTEMS.INVALID_ADDRESS,
2495--         "REGION_RETURN_SEGMENT WITH BACK_FLAG /= FRONT_FLAG"
2496--      );
2497--      TEXT_IO.PUT_LINE(
2498--         "TA1 - region_return_segment - INVALID_ADDRESS"
2499--      );
2500--
2501--      SPTEST.REGION_GOOD_AREA( OFFSET - 1 ) := GOOD_FRONT_FLAG;
2502--
2503--      -- bad BACK_FLAG error
2504--
2505--      GOOD_BACK_FLAG := SPTEST.REGION_GOOD_AREA( OFFSET - 2 );
2506--      SPTEST.REGION_GOOD_AREA( OFFSET - 2 ) := 1024;
2507--
2508--      RTEMS.REGION_RETURN_SEGMENT(
2509--         SPTEST.REGION_ID( 1 ),
2510--         SEGMENT_ADDRESS_1,
2511--         STATUS
2512--      );
2513--      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2514--         STATUS,
2515--         RTEMS.INVALID_ADDRESS,
2516--         "REGION_RETURN_SEGMENT WITH BACK_FLAG /= FRONT_FLAG"
2517--      );
2518--      TEXT_IO.PUT_LINE(
2519--         "TA1 - region_return_segment - INVALID_ADDRESS"
2520--      );
2521--
2522--      SPTEST.REGION_GOOD_AREA( OFFSET - 2 ) := GOOD_BACK_FLAG;
2523
2524      TEXT_IO.PUT_LINE( "TA1 - debug_enable - DEBUG_REGION" );
2525      RTEMS.DEBUG_ENABLE( RTEMS.DEBUG_REGION );
2526
2527      RTEMS.REGION_EXTEND(
2528         100,
2529         SPTEST.REGION_GOOD_AREA'ADDRESS,
2530         128,
2531         STATUS
2532      );
2533      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2534         STATUS,
2535         RTEMS.INVALID_ID,
2536         "REGION_EXTEND WITH INVALID_ID"
2537      );
2538      TEXT_IO.PUT_LINE(
2539         "TA1 - region_extend - INVALID_ID"
2540      );
2541
2542      RTEMS.REGION_EXTEND(
2543         SPTEST.REGION_ID( 1 ),
2544         SPTEST.REGION_GOOD_AREA( SPTEST.REGION_START_OFFSET + 16 )'ADDRESS,
2545         128,
2546         STATUS
2547      );
2548      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2549         STATUS,
2550         RTEMS.INVALID_ADDRESS,
2551         "REGION_EXTEND WITH INVALID_ADDRESS"
2552      );
2553      TEXT_IO.PUT_LINE(
2554         "TA1 - region_extend - within heap - INVALID_ADDRESS"
2555      );
2556
2557      RTEMS.REGION_EXTEND(
2558         SPTEST.REGION_ID( 1 ),
2559         SPTEST.REGION_BAD_AREA'ADDRESS,
2560         128,
2561         STATUS
2562      );
2563      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2564         STATUS,
2565         RTEMS.NOT_IMPLEMENTED,
2566         "REGION_EXTEND WITH NOT_IMPLEMENTED"
2567      );
2568      TEXT_IO.PUT_LINE(
2569         "TA1 - region_extend - non-contiguous lower - NOT_IMPLEMENTED"
2570      );
2571
2572      RTEMS.REGION_EXTEND(
2573         SPTEST.REGION_ID( 1 ),
2574         SPTEST.REGION_GOOD_AREA(
2575            SPTEST.REGION_START_OFFSET - SPTEST.REGION_LENGTH )'ADDRESS,
2576         128,
2577         STATUS
2578      );
2579      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2580         STATUS,
2581         RTEMS.NOT_IMPLEMENTED,
2582         "REGION_EXTEND WITH NOT_IMPLEMENTED"
2583      );
2584      TEXT_IO.PUT_LINE(
2585         "TA1 - region_extend - contiguous lower - NOT_IMPLEMENTED"
2586      );
2587
2588      RTEMS.REGION_EXTEND(
2589         SPTEST.REGION_ID( 1 ),
2590         SPTEST.REGION_GOOD_AREA(
2591            SPTEST.REGION_START_OFFSET + SPTEST.REGION_LENGTH + 16 )'ADDRESS,
2592         128,
2593         STATUS
2594      );
2595      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2596         STATUS,
2597         RTEMS.NOT_IMPLEMENTED,
2598         "REGION_EXTEND WITH NOT_IMPLEMENTED"
2599      );
2600      TEXT_IO.PUT_LINE(
2601         "TA1 - region_extend - non-contiguous higher - NOT_IMPLEMENTED"
2602      );
2603
2604   end SCREEN_12;
2605
2606--PAGE
2607--
2608--  SCREEN_13
2609--
2610
2611   procedure SCREEN_13
2612   is
2613      TIME   : RTEMS.TIME_OF_DAY;
2614      STATUS : RTEMS.STATUS_CODES;
2615   begin
2616      TIME := ( 2000, 12, 31, 23, 59, 59, 0 );
2617      RTEMS.CLOCK_SET( TIME, STATUS );
2618      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_SET SUCCESSFUL" );
2619      TEST_SUPPORT.PRINT_TIME(
2620         "TA1 - clock_set - ",
2621         TIME,
2622         " - SUCCESSFUL"
2623      );
2624      TEXT_IO.NEW_LINE;
2625      RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
2626      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
2627      RTEMS.CLOCK_GET( RTEMS.CLOCK_GET_TOD, TIME'ADDRESS, STATUS );
2628      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_GET SUCCESSFUL" );
2629      TEST_SUPPORT.PRINT_TIME(
2630         "TA1 - clock_get - ",
2631         TIME,
2632         " - SUCCESSFUL"
2633      );
2634      TEXT_IO.NEW_LINE;
2635
2636      TIME := ( 1999, 12, 31, 23, 59, 59, 0 );
2637      RTEMS.CLOCK_SET( TIME, STATUS );
2638      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_SET SUCCESSFUL" );
2639      TEST_SUPPORT.PRINT_TIME(
2640         "TA1 - clock_set - ",
2641         TIME,
2642         " - SUCCESSFUL"
2643      );
2644      TEXT_IO.NEW_LINE;
2645      RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
2646      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
2647      RTEMS.CLOCK_GET( RTEMS.CLOCK_GET_TOD, TIME'ADDRESS, STATUS );
2648      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_GET SUCCESSFUL" );
2649      TEST_SUPPORT.PRINT_TIME(
2650         "TA1 - clock_get - ",
2651         TIME,
2652         " - SUCCESSFUL"
2653      );
2654      TEXT_IO.NEW_LINE;
2655
2656      TIME := ( 2100, 12, 31, 23, 59, 59, 0 );
2657      RTEMS.CLOCK_SET( TIME, STATUS );
2658      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_SET SUCCESSFUL" );
2659      TEST_SUPPORT.PRINT_TIME(
2660         "TA1 - clock_set - ",
2661         TIME,
2662         " - SUCCESSFUL"
2663      );
2664      TEXT_IO.NEW_LINE;
2665      RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
2666      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
2667      RTEMS.CLOCK_GET( RTEMS.CLOCK_GET_TOD, TIME'ADDRESS, STATUS );
2668      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_GET SUCCESSFUL" );
2669      TEST_SUPPORT.PRINT_TIME(
2670         "TA1 - clock_get - ",
2671         TIME,
2672         " - SUCCESSFUL"
2673      );
2674      TEXT_IO.NEW_LINE;
2675
2676      TIME := ( 2099, 12, 31, 23, 59, 59, 0 );
2677      RTEMS.CLOCK_SET( TIME, STATUS );
2678      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_SET SUCCESSFUL" );
2679      TEST_SUPPORT.PRINT_TIME(
2680         "TA1 - clock_set - ",
2681         TIME,
2682         " - SUCCESSFUL"
2683      );
2684      TEXT_IO.NEW_LINE;
2685      RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
2686      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
2687      RTEMS.CLOCK_GET( RTEMS.CLOCK_GET_TOD, TIME'ADDRESS, STATUS );
2688      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_GET SUCCESSFUL" );
2689      TEST_SUPPORT.PRINT_TIME(
2690         "TA1 - clock_get - ",
2691         TIME,
2692         " - SUCCESSFUL"
2693      );
2694      TEXT_IO.NEW_LINE;
2695
2696      TIME := ( 1991, 12, 31, 23, 59, 59, 0 );
2697      RTEMS.CLOCK_SET( TIME, STATUS );
2698      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_SET SUCCESSFUL" );
2699      TEST_SUPPORT.PRINT_TIME(
2700         "TA1 - clock_set - ",
2701         TIME,
2702         " - SUCCESSFUL"
2703      );
2704      TEXT_IO.NEW_LINE;
2705      RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
2706      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
2707      RTEMS.CLOCK_GET( RTEMS.CLOCK_GET_TOD, TIME'ADDRESS, STATUS );
2708      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_GET SUCCESSFUL" );
2709      TEST_SUPPORT.PRINT_TIME(
2710         "TA1 - clock_get - ",
2711         TIME,
2712         " - SUCCESSFUL"
2713      );
2714      TEXT_IO.NEW_LINE;
2715
2716   end SCREEN_13;
2717
2718--PAGE
2719--
2720--  SCREEN_14
2721--
2722
2723   procedure SCREEN_14
2724   is
2725      TIME   : RTEMS.TIME_OF_DAY;
2726      STATUS : RTEMS.STATUS_CODES;
2727   begin
2728
2729      RTEMS.TIMER_CREATE( 0, SPTEST.JUNK_ID, STATUS );
2730      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2731         STATUS,
2732         RTEMS.INVALID_NAME,
2733         "TIMER_CREATE WITH ILLEGAL NAME"
2734      );
2735      TEXT_IO.PUT_LINE( "TA1 - timer_create - INVALID_NAME" );
2736
2737      RTEMS.TIMER_CREATE(
2738         SPTEST.TIMER_NAME( 1 ),
2739         SPTEST.TIMER_ID( 1 ),
2740         STATUS
2741      );
2742      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_CREATE" );
2743      TEXT_IO.PUT_LINE( "TA1 - timer_create - 1 - SUCCESSFUL" );
2744
2745      RTEMS.TIMER_CREATE(
2746         SPTEST.TIMER_NAME( 1 ),
2747         SPTEST.JUNK_ID,
2748         STATUS
2749      );
2750      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2751         STATUS,
2752         RTEMS.TOO_MANY,
2753         "TIMER_CREATE FOR TOO MANY"
2754      );
2755      TEXT_IO.PUT_LINE( "TA1 - timer_create - 2 - TOO_MANY" );
2756
2757      RTEMS.TIMER_DELETE( 100, STATUS );
2758      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2759         STATUS,
2760         RTEMS.INVALID_ID,
2761         "TIMER_DELETE WITH ILLEGAL ID"
2762      );
2763      TEXT_IO.PUT_LINE( "TA1 - timer_delete - local INVALID_ID" );
2764
2765      RTEMS.TIMER_DELETE( 16#10100#, STATUS );
2766      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2767         STATUS,
2768         RTEMS.INVALID_ID,
2769         "TIMER_DELETE WITH ILLEGAL ID"
2770      );
2771      TEXT_IO.PUT_LINE( "TA1 - timer_delete - global INVALID_ID" );
2772
2773      RTEMS.TIMER_IDENT( 0, SPTEST.JUNK_ID, STATUS );
2774      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2775         STATUS,
2776         RTEMS.INVALID_NAME,
2777         "TIMER_IDENT WITH ILLEGAL NAME"
2778      );
2779      TEXT_IO.PUT_LINE( "TA1 - timer_ident - INVALID_NAME" );
2780
2781      RTEMS.TIMER_CANCEL( 16#10100#, STATUS );
2782      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2783         STATUS,
2784         RTEMS.INVALID_ID,
2785         "TIMER_CANCEL WITH ILLEGAL ID"
2786      );
2787      TEXT_IO.PUT_LINE( "TA1 - timer_cancel - INVALID_ID" );
2788
2789      RTEMS.TIMER_RESET( 16#10100#, STATUS );
2790      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2791         STATUS,
2792         RTEMS.INVALID_ID,
2793         "TIMER_RESET WITH ILLEGAL ID"
2794      );
2795      TEXT_IO.PUT_LINE( "TA1 - timer_reset - INVALID_ID" );
2796
2797      RTEMS.TIMER_RESET( SPTEST.TIMER_ID( 1 ), STATUS );
2798      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2799         STATUS,
2800         RTEMS.NOT_DEFINED,
2801         "TIMER_RESET BEFORE INITIATED"
2802      );
2803      TEXT_IO.PUT_LINE( "TA1 - timer_reset - NOT_DEFINED" );
2804
2805      RTEMS.TIMER_FIRE_AFTER(
2806         16#10100#,
2807         5 * TEST_SUPPORT.TICKS_PER_SECOND,
2808         SPTEST.DELAYED_SUBPROGRAM'ACCESS,
2809         RTEMS.NULL_ADDRESS,
2810         STATUS
2811      );
2812      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2813         STATUS,
2814         RTEMS.INVALID_ID,
2815         "TIMER_FIRE_AFTER WITH ILLEGAL ID"
2816      );
2817      TEXT_IO.PUT_LINE( "TA1 - timer_fire_after - INVALID_ID" );
2818
2819      TIME := ( 1994, 12, 31, 1, 0, 0, 0 );
2820      RTEMS.TIMER_FIRE_WHEN(
2821         16#10100#,
2822         TIME,
2823         SPTEST.DELAYED_SUBPROGRAM'ACCESS,
2824         RTEMS.NULL_ADDRESS,
2825         STATUS
2826      );
2827      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2828         STATUS,
2829         RTEMS.INVALID_ID,
2830         "TIMER_FIRE_WHEN WITH ILLEGAL ID"
2831      );
2832      TEXT_IO.PUT_LINE( "TA1 - timer_fire_when - INVALID_ID" );
2833
2834      RTEMS.TIMER_FIRE_AFTER(
2835         SPTEST.TIMER_ID( 1 ),
2836         0,
2837         SPTEST.DELAYED_SUBPROGRAM'ACCESS,
2838         RTEMS.NULL_ADDRESS,
2839         STATUS
2840      );
2841      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2842         STATUS,
2843         RTEMS.INVALID_NUMBER,
2844         "TIMER_FIRE_AFTER WITH 0 TICKS"
2845      );
2846      TEXT_IO.PUT_LINE( "TA1 - timer_fire_after - INVALID_NUMBER" );
2847
2848      TIME := ( 1987, 2, 5, 8, 30, 45, 0 );
2849      RTEMS.TIMER_FIRE_WHEN(
2850         SPTEST.TIMER_ID( 1 ),
2851         TIME,
2852         SPTEST.DELAYED_SUBPROGRAM'ACCESS,
2853         RTEMS.NULL_ADDRESS,
2854         STATUS
2855      );
2856      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2857         STATUS,
2858         RTEMS.INVALID_CLOCK,
2859         "TIMER_FIRE_WHEN WITH ILLEGAL TIME"
2860      );
2861      TEST_SUPPORT.PRINT_TIME(
2862         "TA1 - timer_fire_when - ",
2863         TIME,
2864         " - INVALID_CLOCK"
2865      );
2866      TEXT_IO.NEW_LINE;
2867
2868      RTEMS.CLOCK_GET( RTEMS.CLOCK_GET_TOD, TIME'ADDRESS, STATUS );
2869      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_GET SUCCESSFUL" );
2870      TEST_SUPPORT.PRINT_TIME( "TA1 - clock_get       - ", TIME, "" );
2871      TEXT_IO.NEW_LINE;
2872
2873      TIME := ( 1990, 2, 5, 8, 30, 45, 0 );
2874      RTEMS.TIMER_FIRE_WHEN(
2875         SPTEST.TIMER_ID( 1 ),
2876         TIME,
2877         SPTEST.DELAYED_SUBPROGRAM'ACCESS,
2878         RTEMS.NULL_ADDRESS,
2879         STATUS
2880      );
2881      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2882         STATUS,
2883         RTEMS.INVALID_CLOCK,
2884         "TIMER_FIRE_WHEN BEFORE CURRENT TIME"
2885      );
2886      TEST_SUPPORT.PRINT_TIME(
2887         "TA1 - timer_fire_when - ",
2888         TIME,
2889         " - before INVALID_CLOCK"
2890      );
2891      TEXT_IO.NEW_LINE;
2892
2893      RTEMS.TIMER_SERVER_FIRE_AFTER(
2894         0, 5, SPTEST.DELAYED_SUBPROGRAM'ACCESS, RTEMS.NULL_ADDRESS, STATUS
2895      );
2896      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2897        STATUS,
2898        RTEMS.INCORRECT_STATE,
2899        "TIMER_SERVER_FIRE_AFTER INCORRECT STATE"
2900      );
2901      TEXT_IO.PUT_LINE( "TA1 - timer_server_fire_after - INCORRECT_STATE" );
2902
2903      RTEMS.TIMER_SERVER_FIRE_WHEN(
2904         0, TIME, SPTEST.DELAYED_SUBPROGRAM'ACCESS, RTEMS.NULL_ADDRESS, STATUS
2905      );
2906      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2907        STATUS,
2908        RTEMS.INCORRECT_STATE,
2909        "TIMER_SERVER_FIRE_WHEN INCORRECT STATE"
2910      );
2911      TEXT_IO.PUT_LINE( "TA1 - timer_server_fire_when - INCORRECT_STATE" );
2912
2913      RTEMS.timer_initiate_server( 0, 0, 0, STATUS );
2914      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2915        STATUS,
2916        RTEMS.INVALID_PRIORITY,
2917        "timer_initiate_server invalid priority"
2918      );
2919      TEXT_IO.PUT_LINE( "TA1 - timer_initiate_server - INVALID_PRIORITY" );
2920
2921      RTEMS.timer_initiate_server(
2922-- XXX ask Joel
2923--         RTEMS.TIMER_SERVER_DEFAULT_PRIORITY, 0, 0, STATUS
2924         -1, 0, 0, STATUS
2925      );
2926      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "timer_initiate_server" );
2927      TEXT_IO.PUT_LINE( "TA1 - timer_initiate_server" );
2928
2929      RTEMS.TIMER_SERVER_FIRE_AFTER(
2930        16#010100#,
2931        5 * TEST_SUPPORT.TICKS_PER_SECOND,
2932        SPTEST.DELAYED_SUBPROGRAM'ACCESS,
2933        RTEMS.NULL_ADDRESS,
2934        STATUS
2935      );
2936      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2937        STATUS,
2938        RTEMS.INVALID_ID,
2939        "TIMER_SERVER_FIRE_AFTER ILLEGAL ID"
2940      );
2941      TEXT_IO.PUT_LINE( "TA1 - timer_server_fire_after - INVALID_ID" );
2942
2943      TIME := ( 1994, 12, 31, 9, 0, 0, 0 );
2944      RTEMS.TIMER_SERVER_FIRE_WHEN(
2945         16#010100#,
2946         TIME,
2947         SPTEST.DELAYED_SUBPROGRAM'ACCESS,
2948         RTEMS.NULL_ADDRESS,
2949         STATUS
2950      );
2951      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2952        STATUS,
2953        RTEMS.INVALID_ID,
2954        "TIMER_SERVER_FIRE_WHEN WITH ILLEGAL ID"
2955      );
2956      TEXT_IO.PUT_LINE( "TA1 - timer_server_fire_when - INVALID_ID" );
2957
2958      RTEMS.TIMER_SERVER_FIRE_AFTER(
2959         SPTEST.TIMER_ID( 1 ),
2960         0,
2961         SPTEST.DELAYED_SUBPROGRAM'ACCESS,
2962         RTEMS.NULL_ADDRESS,
2963         STATUS
2964      );
2965      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2966        STATUS,
2967        RTEMS.INVALID_NUMBER,
2968        "TIMER_SERVER_FIRE_AFTER WITH 0 TICKS"
2969      );
2970      TEXT_IO.PUT_LINE( "TA1 - timer_server_fire_after - INVALID_NUMBER" );
2971
2972      TIME := ( 1987, 2, 5, 8, 30, 45, 0 );
2973      RTEMS.TIMER_SERVER_FIRE_WHEN(
2974         SPTEST.TIMER_ID( 1 ),
2975         TIME,
2976         SPTEST.DELAYED_SUBPROGRAM'ACCESS,
2977         RTEMS.NULL_ADDRESS,
2978         STATUS
2979      );
2980      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
2981        STATUS,
2982        RTEMS.INVALID_CLOCK,
2983        "TIMER_SERVER_FIRE_WHEN WITH ILLEGAL TIME"
2984      );
2985      TEST_SUPPORT.PRINT_TIME(
2986        "TA1 - timer_server_fire_when - ",
2987        TIME,
2988        " - INVALID_CLOCK"
2989      );
2990      TEXT_IO.NEW_LINE;
2991
2992      RTEMS.CLOCK_GET( RTEMS.CLOCK_GET_TOD, TIME'ADDRESS, STATUS );
2993      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "clock_set" );
2994      TEST_SUPPORT.PRINT_TIME( "TA1 - clock_get       - ", TIME, "" );
2995      TEXT_IO.NEW_LINE;
2996
2997      TIME := ( 1990, 2, 5, 8, 30, 45, 0 );
2998      RTEMS.TIMER_SERVER_FIRE_WHEN(
2999         SPTEST.TIMER_ID( 1 ),
3000         TIME,
3001         SPTEST.DELAYED_SUBPROGRAM'ACCESS,
3002         RTEMS.NULL_ADDRESS,
3003         STATUS
3004      );
3005      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
3006        STATUS,
3007        RTEMS.INVALID_CLOCK,
3008        "TIMER_SERVER_FIRE_WHEN BEFORE CURRENT TIME"
3009      );
3010      TEST_SUPPORT.PRINT_TIME(
3011        "TA1 - timer_server_fire_when - ",
3012        TIME,
3013        " - before INVALID_CLOCK"
3014      );
3015      TEXT_IO.NEW_LINE;
3016
3017   end SCREEN_14;
3018
3019--PAGE
3020--
3021--  TASK_1
3022--
3023
3024   procedure TASK_1 (
3025      ARGUMENT : in     RTEMS.TASK_ARGUMENT
3026   ) is
3027      pragma Unreferenced(ARGUMENT);
3028   begin
3029
3030      SPTEST.SCREEN_1;
3031      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 2 );
3032
3033      SPTEST.SCREEN_2;
3034      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 3 );
3035
3036      SPTEST.SCREEN_3;
3037      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 4 );
3038
3039      SPTEST.SCREEN_4;
3040      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 5 );
3041
3042      SPTEST.SCREEN_5;
3043      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 6 );
3044
3045      SPTEST.SCREEN_6;
3046      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 7 );
3047
3048      SPTEST.SCREEN_7;
3049      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 8 );
3050
3051      SPTEST.SCREEN_8;
3052      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 9 );
3053
3054      SPTEST.SCREEN_9;
3055      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 10 );
3056
3057      SPTEST.SCREEN_10;
3058      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 11 );
3059
3060      SPTEST.SCREEN_11;
3061      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 12 );
3062
3063      SPTEST.SCREEN_12;
3064      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 13 );
3065
3066      SPTEST.SCREEN_13;
3067      TEST_SUPPORT.PAUSE_AND_SCREEN_NUMBER( 14 );
3068
3069      SPTEST.SCREEN_14;
3070
3071      TEXT_IO.PUT_LINE( "*** END OF TEST 9 ***" );
3072      RTEMS.SHUTDOWN_EXECUTIVE( 0 );
3073
3074   end TASK_1;
3075
3076--PAGE
3077--
3078--  TASK_2
3079--
3080
3081   procedure TASK_2 (
3082      ARGUMENT : in     RTEMS.TASK_ARGUMENT
3083   ) is
3084      pragma Unreferenced(ARGUMENT);
3085      STATUS : RTEMS.STATUS_CODES;
3086   begin
3087
3088      TEXT_IO.PUT_LINE( "TA2 - semaphore_obtain - sem 1 - WAIT FOREVER" );
3089      RTEMS.SEMAPHORE_OBTAIN(
3090         SPTEST.SEMAPHORE_ID( 1 ),
3091         RTEMS.DEFAULT_OPTIONS,
3092         RTEMS.NO_TIMEOUT,
3093         STATUS
3094      );
3095      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
3096         STATUS,
3097         RTEMS.OBJECT_WAS_DELETED,
3098         "SEMAPHORE_OBTAIN WAITING TO BE DELETED"
3099      );
3100      TEXT_IO.PUT_LINE(
3101         "TA2 - semaphore_obtain - woke up with OBJECT_WAS_DELETED"
3102      );
3103
3104      TEXT_IO.PUT_LINE(
3105         "TA2 - task_delete - delete self - SUCCESSFUL"
3106      );
3107      RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
3108      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF TA2" );
3109
3110   end TASK_2;
3111
3112--PAGE
3113--
3114--  TASK_3
3115--
3116
3117   procedure TASK_3 (
3118      ARGUMENT : in     RTEMS.TASK_ARGUMENT
3119   ) is
3120      pragma Unreferenced(ARGUMENT);
3121      BUFFER         : SPTEST.BUFFER;
3122      BUFFER_POINTER : RTEMS.ADDRESS;
3123      MESSAGE_SIZE   : RTEMS.UNSIGNED32 := 0;
3124      STATUS         : RTEMS.STATUS_CODES;
3125   begin
3126
3127      BUFFER_POINTER := BUFFER'ADDRESS;
3128
3129      TEXT_IO.PUT_LINE(
3130         "TA3 - message_queue_receive - Q 1 - WAIT FOREVER"
3131      );
3132      RTEMS.MESSAGE_QUEUE_RECEIVE(
3133         SPTEST.QUEUE_ID( 1 ),
3134         BUFFER_POINTER,
3135         RTEMS.DEFAULT_OPTIONS,
3136         RTEMS.NO_TIMEOUT,
3137         MESSAGE_SIZE,
3138         STATUS
3139      );
3140      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
3141         STATUS,
3142         RTEMS.OBJECT_WAS_DELETED,
3143         "MESSAGE_QUEUE_RECEIVE WAITING TO BE DELETED"
3144      );
3145      TEXT_IO.PUT( "TA3 - message_queue_receive - woke up " );
3146      TEXT_IO.PUT_LINE( "with OBJECT_WAS_DELETED" );
3147
3148      TEXT_IO.PUT_LINE(
3149         "TA3 - task_delete - delete self - SUCCESSFUL"
3150      );
3151      RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
3152      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF TA3" );
3153
3154   end TASK_3;
3155
3156--PAGE
3157--
3158--  TASK_4
3159--
3160
3161   procedure TASK_4 (
3162      ARGUMENT : in     RTEMS.TASK_ARGUMENT
3163   ) is
3164      pragma Unreferenced(ARGUMENT);
3165      STATUS : RTEMS.STATUS_CODES;
3166   begin
3167
3168      RTEMS.RATE_MONOTONIC_CANCEL(
3169         SPTEST.PERIOD_ID( 1 ),
3170         STATUS
3171      );
3172      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
3173         STATUS,
3174         RTEMS.NOT_OWNER_OF_RESOURCE,
3175         "RATE_MONOTONIC_CANCEL NOT THE OWNER"
3176      );
3177      TEXT_IO.PUT_LINE(
3178         "TA4 - rate_monotonic_cancel - NOT_OWNER_OF_RESOURCE"
3179       );
3180
3181      RTEMS.RATE_MONOTONIC_PERIOD(
3182         SPTEST.PERIOD_ID( 1 ),
3183         5,
3184         STATUS
3185      );
3186      TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
3187         STATUS,
3188         RTEMS.NOT_OWNER_OF_RESOURCE,
3189         "RATE_MONOTONIC_PERIOD NOT THE OWNER"
3190      );
3191      TEXT_IO.PUT_LINE(
3192         "TA4 - rate_monotonic_period - NOT_OWNER_OF_RESOURCE"
3193      );
3194
3195      TEXT_IO.PUT_LINE(
3196         "TA4 - task_delete - delete self - SUCCESSFUL"
3197      );
3198      RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
3199      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF TA4" );
3200
3201
3202   end TASK_4;
3203
3204end SPTEST;
Note: See TracBrowser for help on using the repository browser.