source: rtems/testsuites/sptests/spmsgq_err02/init.c @ d4edbdbc

4.115
Last change on this file since d4edbdbc was d4edbdbc, checked in by Sebastian Huber <sebastian.huber@…>, on 03/20/15 at 13:09:26

Replace www.rtems.com with www.rtems.org

  • Property mode set to 100644
File size: 5.2 KB
Line 
1/*
2 *  COPYRIGHT (c) 2014.
3 *  On-Line Applications Research Corporation (OAR).
4 *
5 *  The license and distribution terms for this file may be
6 *  found in the file LICENSE in this distribution or at
7 *  http://www.rtems.org/license/LICENSE.
8 */
9
10#ifdef HAVE_CONFIG_H
11#include "config.h"
12#endif
13
14#define CONFIGURE_INIT
15#include "system.h"
16
17#define MESSAGE_SIZE (sizeof(long) * 4)
18
19const char rtems_test_name[] = "SP MESSAGE QUEUE ERROR 2";
20
21rtems_task Init(
22  rtems_task_argument argument
23)
24{
25  long              buffer[ 4 ];
26  rtems_status_code status;
27 
28  TEST_BEGIN();
29  Queue_name[ 1 ]      =  rtems_build_name( 'M', 'Q', '1', ' ' );
30  Task_name[ 3 ]       =  rtems_build_name( 'T', 'A', '3', ' ' );
31 
32  status = rtems_task_create(
33    Task_name[ 3 ],
34    1,
35    RTEMS_MINIMUM_STACK_SIZE,
36    RTEMS_DEFAULT_MODES,
37    RTEMS_DEFAULT_ATTRIBUTES,
38    &Task_id[ 3 ]
39  );
40  directive_failed( status, "rtems_task_create of TA3" );
41  puts( "TA1 - rtems_task_create - TA3 created - RTEMS_SUCCESSFUL" );
42 
43  status = rtems_message_queue_create(
44    Queue_name[ 1 ],
45    2,
46    MESSAGE_SIZE,
47    RTEMS_DEFAULT_ATTRIBUTES,
48    &Queue_id[ 1 ]
49  );
50  directive_failed( status, "rtems_message_queue_create successful" );
51  puts( "TA1 - rtems_message_queue_create - Q 1 - 2 DEEP - RTEMS_SUCCESSFUL" );
52   
53    status = rtems_message_queue_delete( Queue_id[ 1 ] );
54  directive_failed( status, "rtems_message_queue_delete successful" );
55  puts( "TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL" );
56
57  status = rtems_message_queue_create(
58    Queue_name[ 1 ],
59    2,
60    MESSAGE_SIZE,
61    RTEMS_DEFAULT_ATTRIBUTES,
62    &Queue_id[ 1 ]
63  );
64  directive_failed( status, "rtems_message_queue_create successful" );
65  puts(
66    "TA1 - rtems_message_queue_create - Q 1 - 2 DEEP - RTEMS_SUCCESSFUL"
67  );
68
69  status = rtems_message_queue_send( Queue_id[ 1 ], buffer, MESSAGE_SIZE );
70  directive_failed( status, "rtems_message_queue_send successful" );
71  puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL" );
72
73  status = rtems_message_queue_send( Queue_id[ 1 ], buffer, MESSAGE_SIZE );
74  directive_failed( status, "rtems_message_queue_send successful" );
75  puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL" );
76
77  status = rtems_message_queue_send( Queue_id[ 1 ], buffer, MESSAGE_SIZE );
78  fatal_directive_status(
79    status,
80    RTEMS_TOO_MANY,
81    "rtems_message_queue_send too many to limited queue"
82  );
83  puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_TOO_MANY" );
84
85  status = rtems_message_queue_delete( Queue_id[ 1 ] );
86  directive_failed( status, "rtems_message_queue_delete successful" );
87  puts( "TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL" );
88
89  status = rtems_message_queue_create(
90    Queue_name[ 1 ],
91    3,
92    MESSAGE_SIZE,
93    RTEMS_DEFAULT_ATTRIBUTES,
94    &Queue_id[ 1 ]
95  );
96  directive_failed( status, "rtems_message_queue_create successful" );
97  puts(
98    "TA1 - rtems_message_queue_create - Q 1 - 3 DEEP - RTEMS_SUCCESSFUL"
99  );
100
101  status = rtems_message_queue_send( Queue_id[ 1 ], buffer, MESSAGE_SIZE );
102  directive_failed( status, "rtems_message_queue_send successful" );
103  puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL" );
104
105  status = rtems_message_queue_send( Queue_id[ 1 ], buffer, MESSAGE_SIZE );
106  directive_failed( status, "rtems_message_queue_send successful" );
107  puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL" );
108
109  status = rtems_message_queue_send( Queue_id[ 1 ], buffer, MESSAGE_SIZE );
110  directive_failed( status, "rtems_message_queue_send successful" );
111  puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_SUCCESSFUL" );
112
113  status = rtems_message_queue_send( Queue_id[ 1 ], buffer, MESSAGE_SIZE );
114  fatal_directive_status(
115    status,
116    RTEMS_TOO_MANY,
117    "rtems_message_queue_send too many to limited queue"
118  );
119  puts(
120    "TA1 - rtems_message_queue_send - BUFFER 4 TO Q 1 - RTEMS_TOO_MANY"
121  );
122
123  status = rtems_message_queue_delete( Queue_id[ 1 ] );
124  directive_failed( status, "rtems_message_queue_delete successful" );
125  puts( "TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL" );
126
127  status = rtems_message_queue_create(
128    Queue_name[ 1 ],
129    3,
130    MESSAGE_SIZE,
131    RTEMS_DEFAULT_ATTRIBUTES,
132    &Queue_id[ 1 ]
133  );
134  directive_failed( status, "rtems_message_queue_create successful" );
135  puts(
136    "TA1 - rtems_message_queue_create - Q 1 - 3 DEEP - RTEMS_SUCCESSFUL"
137  );
138
139  puts( "TA1 - rtems_task_start - start TA3 - RTEMS_SUCCESSFUL" );
140  status = rtems_task_start( Task_id[ 3 ], Task_3, 0 );
141  directive_failed( status, "rtems_task_start of TA3" );
142
143  puts( "TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL" );
144  status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR );
145  directive_failed( status, "rtems_task_wake_after (yield)" );
146
147  puts( "TA1 - rtems_message_queue_delete - delete Q 1 - RTEMS_SUCCESSFUL" );
148  status = rtems_message_queue_delete( Queue_id[ 1 ] );
149  directive_failed( status, "rtems_message_queue_delete successful" );
150
151  puts( "TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL" );
152  status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR );
153  directive_failed( status, "rtems_task_wake_after (yield)" );
154
155  TEST_END();
156}
Note: See TracBrowser for help on using the repository browser.