source: rtems/testsuites/sptests/sp09/screen07.c @ 1f7ee02

4.104.115
Last change on this file since 1f7ee02 was 1f7ee02, checked in by Joel Sherrill <joel.sherrill@…>, on 08/12/09 at 20:50:43

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

  • sp02/task1.c, sp02/task2.c, sp02/task3.c, sp03/task2.c, sp05/task1.c, sp05/task2.c, sp05/task3.c, sp06/task1.c, sp06/task2.c, sp09/screen02.c, sp09/screen04.c, sp09/screen06.c, sp09/screen07.c, sp09/screen10.c, sp09/screen12.c, sp09/screen13.c, sp09/screen14.c, sp11/task1.c, sp11/task2.c, sp12/pridrv.c, sp12/pritask.c, sp12/task1.c, sp13/task1.c, sp13/task2.c, sp14/task1.c, sp16/task1.c, sp16/task4.c, sp19/fptask.c, sp19/task1.c, sp22/task1.c, sp24/task1.c, sp26/task1.c, sp29/init.c, sp30/task1.c, sp31/task1.c, sp33/init.c, sp45/init.c, sp46/init.c, sp50/init.c, spintrcritical06/init.c, spwatchdog/task1.c: Eliminate test routines TICKS_PER_SECOND and get_ticks_per_second() in favor of new rtems_clock_get_ticks_per_second().
  • Property mode set to 100644
File size: 7.2 KB
Line 
1/*  Screen7
2 *
3 *  This routine generates error screen 7 for test 9.
4 *
5 *  Input parameters:  NONE
6 *
7 *  Output parameters:  NONE
8 *
9 *  COPYRIGHT (c) 1989-2009.
10 *  On-Line Applications Research Corporation (OAR).
11 *
12 *  The license and distribution terms for this file may be
13 *  found in the file LICENSE in this distribution or at
14 *  http://www.rtems.com/license/LICENSE.
15 *
16 *  $Id$
17 */
18
19#include "system.h"
20
21#define MESSAGE_SIZE (sizeof(long) * 4)
22
23void Screen7()
24{
25  long              buffer[ 4 ];
26  uint32_t          count;
27  size_t            size;
28  rtems_status_code status;
29
30  status = rtems_message_queue_broadcast( 100, buffer, MESSAGE_SIZE, &count );
31  fatal_directive_status(
32    status,
33    RTEMS_INVALID_ID,
34    "rtems_message_queue_broadcast with illegal id"
35  );
36  puts( "TA1 - rtems_message_queue_broadcast - RTEMS_INVALID_ID" );
37
38  status = rtems_message_queue_create(
39    0,
40    3,
41    MESSAGE_SIZE,
42    RTEMS_DEFAULT_ATTRIBUTES,
43    &Junk_id
44  );
45  fatal_directive_status(
46    status,
47    RTEMS_INVALID_NAME,
48    "rtems_message_queue_create with illegal name"
49  );
50  puts( "TA1 - rtems_message_queue_create - Q 1 - RTEMS_INVALID_NAME" );
51
52  /*
53   *  The check for an object being global is only made if
54   *  multiprocessing is enabled.
55   */
56
57#if defined(RTEMS_MULTIPROCESSING)
58  status = rtems_message_queue_create(
59    Queue_name[ 1 ],
60    1,
61    MESSAGE_SIZE,
62    RTEMS_GLOBAL,
63    &Junk_id
64  );
65  fatal_directive_status(
66    status,
67    RTEMS_MP_NOT_CONFIGURED,
68    "rtems_message_queue_create of mp not configured"
69  );
70#endif
71  puts( "TA1 - rtems_message_queue_create - Q 1 - RTEMS_MP_NOT_CONFIGURED" );
72
73  /* not enough memory for messages */
74  status = rtems_message_queue_create(
75    Queue_name[ 1 ],
76    INT_MAX,
77    MESSAGE_SIZE,
78    RTEMS_DEFAULT_ATTRIBUTES,
79    &Queue_id[ 1 ]
80  );
81  fatal_directive_status(
82    status,
83    RTEMS_UNSATISFIED,
84    "rtems_message_queue_create unsatisfied"
85  );
86  puts( "TA1 - rtems_message_queue_create - Q 2 - RTEMS_UNSATISFIED" );
87
88  status = rtems_message_queue_create(
89    Queue_name[ 1 ],
90    2,
91    MESSAGE_SIZE,
92    RTEMS_DEFAULT_ATTRIBUTES,
93    &Queue_id[ 1 ]
94  );
95  directive_failed( status, "rtems_message_queue_create successful" );
96  puts( "TA1 - rtems_message_queue_create - Q 1 - 2 DEEP - RTEMS_SUCCESSFUL" );
97
98  status = rtems_message_queue_create(
99    Queue_name[ 2 ],
100    1,
101    MESSAGE_SIZE,
102    RTEMS_DEFAULT_ATTRIBUTES,
103    &Junk_id
104  );
105  fatal_directive_status(
106    status,
107    RTEMS_TOO_MANY,
108    "rtems_message_queue_create of too many"
109  );
110  puts( "TA1 - rtems_message_queue_create - Q 2 - RTEMS_TOO_MANY" );
111
112  status = rtems_message_queue_delete( 100 );
113  fatal_directive_status(
114    status,
115    RTEMS_INVALID_ID,
116    "rtems_message_queue_create with illegal id"
117  );
118  puts( "TA1 - rtems_message_queue_delete - unknown RTEMS_INVALID_ID" );
119
120  status = rtems_message_queue_delete( rtems_build_id( 1, 1, 1, 256 ) );
121  fatal_directive_status(
122    status,
123    RTEMS_INVALID_ID,
124    "rtems_message_queue_delete with local illegal id"
125  );
126  puts( "TA1 - rtems_message_queue_delete - local RTEMS_INVALID_ID" );
127
128  status = rtems_message_queue_ident( 100, RTEMS_SEARCH_ALL_NODES, &Junk_id );
129  fatal_directive_status(
130    status,
131    RTEMS_INVALID_NAME,
132    "rtems_message_queue_ident with illegal name"
133  );
134  puts( "TA1 - rtems_message_queue_ident - RTEMS_INVALID_NAME" );
135
136  status = rtems_message_queue_get_number_pending( 100, &count );
137  fatal_directive_status(
138    status,
139    RTEMS_INVALID_ID,
140    "rtems_message_queue_get_number_pending with illegal id"
141  );
142  puts( "TA1 - rtems_message_queue_get_number_pending - RTEMS_INVALID_ID" );
143
144  status = rtems_message_queue_flush( 100, &count );
145  fatal_directive_status(
146    status,
147    RTEMS_INVALID_ID,
148    "rtems_message_queue_flush with illegal id"
149  );
150  puts( "TA1 - rtems_message_queue_flush - RTEMS_INVALID_ID" );
151
152  status = rtems_message_queue_receive(
153    100,
154    (long (*)[4]) buffer,
155    &size,
156    RTEMS_DEFAULT_OPTIONS,
157    0
158  );
159  fatal_directive_status(
160    status,
161    RTEMS_INVALID_ID,
162    "rtems_message_queue_receive with illegal id"
163  );
164  puts( "TA1 - rtems_message_queue_receive - RTEMS_INVALID_ID" );
165
166  status = rtems_message_queue_receive(
167    Queue_id[ 1 ],
168    NULL,
169    &size,
170    RTEMS_NO_WAIT,
171    RTEMS_NO_TIMEOUT
172  );
173  fatal_directive_status(
174    status,
175    RTEMS_INVALID_ADDRESS,
176    "rtems_message_queue_receive NULL buffer"
177  );
178  puts( "TA1 - rtems_message_queue_receive - Q 1 - RTEMS_INVALID_ADDRESS NULL buffer" );
179
180  status = rtems_message_queue_receive(
181    Queue_id[ 1 ],
182    (long (*)[4]) buffer,
183    NULL,
184    RTEMS_NO_WAIT,
185    RTEMS_NO_TIMEOUT
186  );
187  fatal_directive_status(
188    status,
189    RTEMS_INVALID_ADDRESS,
190    "rtems_message_queue_receive NULL size"
191  );
192  puts( "TA1 - rtems_message_queue_receive - Q 1 - RTEMS_INVALID_ADDRESS NULL size" );
193
194  status = rtems_message_queue_receive(
195    Queue_id[ 1 ],
196    (long (*)[4]) buffer,
197    &size,
198    RTEMS_NO_WAIT,
199    RTEMS_NO_TIMEOUT
200  );
201  fatal_directive_status(
202    status,
203    RTEMS_UNSATISFIED,
204    "rtems_message_queue_receive unsatisfied"
205  );
206  puts( "TA1 - rtems_message_queue_receive - Q 1 - RTEMS_UNSATISFIED" );
207
208  puts( "TA1 - rtems_message_queue_receive - Q 1 - timeout in 3 seconds" );
209  status = rtems_message_queue_receive(
210    Queue_id[ 1 ],
211    (long (*)[4]) buffer,
212    &size,
213    RTEMS_DEFAULT_OPTIONS,
214    3 * rtems_clock_get_ticks_per_second()
215  );
216  fatal_directive_status(
217    status,
218    RTEMS_TIMEOUT,
219    "rtems_message_queue_receive 3 second timeout"
220  );
221
222  puts(
223    "TA1 - rtems_message_queue_receive - Q 1 - woke up with RTEMS_TIMEOUT"
224  );
225
226  status = rtems_message_queue_send( 100, buffer, MESSAGE_SIZE );
227  fatal_directive_status(
228    status,
229    RTEMS_INVALID_ID,
230    "rtems_message_queue_send with illegal id"
231  );
232  puts( "TA1 - rtems_message_queue_send - RTEMS_INVALID_ID" );
233
234  status = rtems_message_queue_send( Queue_id[ 1 ], buffer, MESSAGE_SIZE );
235  directive_failed( status, "rtems_message_queue_send" );
236  puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL" );
237
238  status = rtems_message_queue_send( Queue_id[ 1 ], buffer, MESSAGE_SIZE );
239  directive_failed( status, "rtems_message_queue_send" );
240  puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL" );
241
242  status = rtems_message_queue_send( Queue_id[ 1 ], buffer, MESSAGE_SIZE );
243  fatal_directive_status(
244    status,
245    RTEMS_TOO_MANY,
246    "rtems_message_queue_send too many to a limited queue"
247  );
248  puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_TOO_MANY" );
249
250  status = rtems_message_queue_urgent( 100, buffer, MESSAGE_SIZE );
251  fatal_directive_status(
252    status,
253    RTEMS_INVALID_ID,
254    "rtems_message_queue_urgent with illegal id"
255  );
256  puts( "TA1 - rtems_message_queue_urgent - RTEMS_INVALID_ID" );
257
258  status = rtems_message_queue_broadcast( Queue_id[ 1 ], NULL, MESSAGE_SIZE, &count );
259  fatal_directive_status(
260    status,
261    RTEMS_INVALID_ADDRESS,
262    "rtems_message_queue_broadcast with NULL count"
263  );
264  puts( "TA1 - rtems_message_queue_broadcast - NULL buffer - RTEMS_INVALID_ADDRESS" );
265
266  status = rtems_message_queue_broadcast( Queue_id[ 1 ], buffer, MESSAGE_SIZE, NULL );
267  fatal_directive_status(
268    status,
269    RTEMS_INVALID_ADDRESS,
270    "rtems_message_queue_broadcast with NULL count"
271  );
272  puts( "TA1 - rtems_message_queue_broadcast - NULL count - RTEMS_INVALID_ADDRESS" );
273
274}
Note: See TracBrowser for help on using the repository browser.