source: rtems/c/src/ada-tests/sptests/sp09/sptest.adb @ 7d366f1c

4.104.114.84.95
Last change on this file since 7d366f1c was 7d366f1c, checked in by Joel Sherrill <joel.sherrill@…>, on Jun 3, 1997 at 12:56:11 AM

changed reference for Configuration Table from BSP to RTEMS.

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