source: rtems/testsuites/itrontests/itronmbf01/init.c @ d35734dd

4.104.115
Last change on this file since d35734dd was d35734dd, checked in by Joel Sherrill <joel.sherrill@…>, on 12/08/09 at 17:52:47

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

  • itronmbf01/init.c, itronsem01/init.c, itronsem01/system.h, itrontask02/dormant.c, itrontask02/init.c, itrontask03/init.c, itrontask03/preempt.c: Use rtems_test_assert() consistently instead of system assert(). rtems_test_assert() is designed to integrate into the RTEMS test suite infrastructure.
  • Property mode set to 100644
File size: 10.3 KB
Line 
1/*  Init
2 *
3 *  This routine is the initialization task for this test program.
4 *  It is called from init_exec and has the responsibility for creating
5 *  and starting the tasks that make up the test.  If the time of day
6 *  clock is required for the test, it should also be set to a known
7 *  value by this function.
8 *
9 *  Input parameters:  NONE
10 *
11 *  Output parameters:  NONE
12 *
13 *  COPYRIGHT (c) 1989-2009.
14 *  On-Line Applications Research Corporation (OAR).
15 *
16 *  The license and distribution terms for this file may be
17 *  found in the file LICENSE in this distribution or at
18 *  http://www.rtems.com/license/LICENSE.
19 *
20 *  $Id$
21 */
22
23#define CONFIGURE_INIT
24#include "system.h"
25#include <stdio.h>
26
27/*
28 *  The following is hopefully temporary.
29 */
30
31#include <time.h>
32
33#define put_time(_s) \
34do { \
35     time_t a_time_t; \
36     a_time_t = time( 0 ); \
37     printf( "%s%s", _s, ctime( &a_time_t ) ); \
38} while(0)
39
40
41
42void TestCre(void);
43void TestDel(void);
44void TestPsnd(void);
45void TestRef(void);
46void TestTrcv(void);
47void TestRcv(void);
48void TestPrcv(void);
49
50void ITRON_Init( void )
51{
52    printf( "\n\n*** ITRONMBF01 -- ITRON MESSAGE BUFFER TEST ***\n" );
53
54    TestCre();
55    TestDel();
56    TestPsnd();
57    TestRef();
58    TestRcv();
59    TestRef();
60    TestPrcv();
61    TestTrcv();
62
63    printf("\n\n*** END OF ITRONMBF01 --- ITRON MESSAGE BUFFER TEST ***\n");
64    rtems_test_exit(0);
65}
66
67void TestCre(void)
68{
69    ER      status;
70    T_CMBF  pk_cmbf;
71
72    /*
73     *  Exercise cre_mbf - this code seems to exercise every path.
74     */
75
76    puts( "Init - cre_mbf - NULL pk_cmbf returns E_PAR" );
77    status = cre_mbf( 1, NULL );
78    rtems_test_assert( status == E_PAR );
79
80    puts( "Init - cre_mbf - negative values for bufsz returns E_PAR" );
81    pk_cmbf.bufsz = -1;
82    pk_cmbf.maxmsz  = 100;
83    pk_cmbf.mbfatr  = 0;
84    pk_cmbf.exinf   = NULL;
85    status = cre_mbf( 1, &pk_cmbf );
86    rtems_test_assert( status == E_PAR );
87
88    puts( "Init - cre_mbf - negative values for maxmsz returns E_PAR" );
89    pk_cmbf.bufsz = 100;
90    pk_cmbf.maxmsz  = -1;
91    status = cre_mbf( 1, &pk_cmbf );
92    rtems_test_assert( status == E_PAR );
93
94    puts( "Init - cre_mbf - bufsz < maxmsz returns E_PAR" );
95    pk_cmbf.bufsz = 100;
96    pk_cmbf.maxmsz  = 101;
97    status = cre_mbf( 1, &pk_cmbf );
98    rtems_test_assert( status == E_PAR );
99
100    /*
101     *  Now run through all the bad ID errors
102     */
103
104    pk_cmbf.bufsz = 200;
105    pk_cmbf.maxmsz = 30;
106    puts( "Init - cre_mbf - bad id (less than -4) - E_OACV" );
107    status = cre_mbf( -5, &pk_cmbf );
108    rtems_test_assert( status == E_OACV );
109
110    puts( "Init - cre_mbf - bad id (between 0 and -4) - E_ID" );
111    status = cre_mbf( -4, &pk_cmbf );
112    rtems_test_assert( status == E_ID );
113
114    puts( "Init - cre_mbf - bad id (0) - E_ID" );
115    status = cre_mbf( 0, &pk_cmbf );
116    rtems_test_assert( status == E_ID );
117
118    puts( "Init - cre_mbf - bad id (too great) - E_ID" );
119    status = cre_mbf( CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS + 1, &pk_cmbf );
120    rtems_test_assert( status == E_ID );
121
122    puts( "Init - cre_mbf - create mbf 1 TA_TFIFO - E_OK" );
123    pk_cmbf.bufsz = 600;
124    pk_cmbf.maxmsz  = 200;
125    pk_cmbf.mbfatr  = TA_TFIFO;
126    status = cre_mbf( 1, &pk_cmbf );
127    rtems_test_assert( status == E_OK );
128
129    puts( "Init - cre_mbf - create mbf 1 again - E_OBJ" );
130    status = cre_mbf( 1, &pk_cmbf );
131    rtems_test_assert( status == E_OBJ );
132
133    puts( "Init - cre_mbf - create mbf 2 TA_TPRI - E_OK" );
134    pk_cmbf.bufsz = 600;
135    pk_cmbf.maxmsz  = 200;
136    pk_cmbf.mbfatr  = TA_TPRI;
137    status = cre_mbf( 2, &pk_cmbf );
138    rtems_test_assert( status == E_OK );
139}
140
141void TestDel(void)
142{
143    ER    status;
144
145    /*
146     *  Generate all the bad id errors for del_mbf
147     */
148
149    puts( "Init - del_mbf - bad id (less than -4) - E_OACV" );
150    status = del_mbf( -5 );
151    rtems_test_assert( status == E_OACV );
152
153    puts( "Init - del_mbf - bad id (between 0 and -4) - E_ID" );
154    status = del_mbf( -4 );
155    rtems_test_assert( status == E_ID );
156
157    puts( "Init - del_mbf - bad id (0) - E_ID" );
158    status = del_mbf( 0 );
159    rtems_test_assert( status == E_ID );
160
161    puts( "Init - del_mbf - bad id (too great) - E_ID" );
162    status = del_mbf( CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS + 1 );
163    rtems_test_assert( status == E_ID );
164
165
166    puts("Init - del_mbf   - E_OK" );
167    status = del_mbf(2);
168    rtems_test_assert(status == E_OK);
169}
170
171void TestPsnd(void)
172{
173    ER   status;
174    char msg[100] = "This is test message 1";
175
176    /*
177     *  Generate all the bad id errors for psnd_mbf
178     */
179
180    puts( "Init - psnd_mbf - bad id (less than -4) - E_OACV" );
181    status = psnd_mbf(-5, msg, sizeof(msg));
182    rtems_test_assert( status == E_OACV );
183
184    puts( "Init - psnd_mbf - bad id (between 0 and -4) - E_ID" );
185    status = psnd_mbf(-4, msg, sizeof(msg));
186    rtems_test_assert( status == E_ID );
187
188    puts( "Init - psnd_mbf - bad id (0) - E_ID" );
189    status = psnd_mbf(0, msg, sizeof(msg));
190    rtems_test_assert( status == E_ID );
191
192    puts( "Init - psnd_mbf - bad id (too great) - E_ID" );
193    status = psnd_mbf(CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS + 1, msg,
194                      sizeof(msg));
195    rtems_test_assert( status == E_ID );
196
197    puts( "Init - psnd_mbf - msg == 0, E_PAR" );
198    status = psnd_mbf(1, 0, sizeof(msg));
199    rtems_test_assert( status == E_PAR );
200
201    puts( "Init - psnd_mbf - msgsz too big - E_PAR" );
202    status = psnd_mbf(1, msg, 300);
203    rtems_test_assert( status == E_PAR );
204
205    puts( "Init - psnd_mbf - msgsz <0 - E_PAR" );
206    status = psnd_mbf(1, msg, -10);
207    rtems_test_assert( status == E_PAR );
208
209    puts( "Init - psnd_mbf - E_OK" );
210    status = psnd_mbf(1, msg, sizeof(msg));
211    rtems_test_assert( status == E_OK );
212}
213
214void TestRef(void)
215{
216    ER       status;
217    T_RMBF   pk_rmbf;
218
219    puts( "Init - ref_mbf - bad id (less than -4) - E_OACV" );
220    status = ref_mbf(&pk_rmbf, -5);
221    rtems_test_assert( status == E_OACV );
222
223    puts( "Init - ref_mbf - bad id (between 0 and -4) - E_ID" );
224    status = ref_mbf(&pk_rmbf, -4);
225    rtems_test_assert( status == E_ID );
226
227    puts( "Init - ref_mbf - bad id (0) - E_ID" );
228    status = ref_mbf(&pk_rmbf, 0);
229    rtems_test_assert( status == E_ID );
230
231    puts( "Init - ref_mbf - bad id (too great) - E_ID" );
232    status = ref_mbf(&pk_rmbf,
233                     CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS + 1);
234    rtems_test_assert( status == E_ID );
235
236    puts( "Init - ref_mbf - NULL pk_mbf returns E_PAR" );
237    status = ref_mbf( NULL, 1 );
238    rtems_test_assert( status == E_PAR );
239
240    puts( "Init - ref_mbf - mbf 1 - E_OK" );
241    status = ref_mbf( &pk_rmbf, 1 );
242    rtems_test_assert( status == E_OK );
243
244    printf( "Init - mbf 1 msgsz = %" PRId32 "\n", pk_rmbf.msgsz );
245    printf( "Init - mbf 1 frbufsz = %" PRId32 "\n", pk_rmbf.frbufsz );
246    printf( "Init - mbf 1 waiting tasks = %d\n", pk_rmbf.wtsk );
247    printf( "Init - mbf 1 sending tasks = %d\n", pk_rmbf.stsk);
248}
249
250void TestRcv(void)
251{
252    ER         status;
253    char       buffer[200];
254    INT        s;
255
256    puts( "Init - rcv_mbf - bad id (less than -4) - E_OACV" );
257    status = rcv_mbf(buffer, &s, -5);
258    rtems_test_assert( status == E_OACV );
259
260    puts( "Init - rcv_mbf - bad id (between 0 and -4) - E_ID" );
261    status = rcv_mbf(buffer, &s, -4);
262    rtems_test_assert( status == E_ID );
263
264    puts( "Init - rcv_mbf - bad id (0) - E_ID" );
265    status = rcv_mbf(buffer, &s, 0);
266    rtems_test_assert( status == E_ID );
267
268    puts( "Init - rcv_mbf - bad id (too great) - E_ID" );
269    status = rcv_mbf(buffer, &s, CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS + 1);
270    rtems_test_assert( status == E_ID );
271
272    puts( "Init - rcv_mbf - NULL msg returns E_PAR" );
273    status = rcv_mbf(NULL, &s, 1);
274    rtems_test_assert( status == E_PAR );
275
276    puts( "Init - rcv_mbf - NULL p_msgsz returns E_PAR" );
277    status = rcv_mbf(buffer, 0, 1);
278    rtems_test_assert( status == E_PAR );
279
280    puts("Init - rcv_mbf -- OK");
281    status = rcv_mbf(buffer, &s, 1);
282    rtems_test_assert(status == E_OK);
283    printf("Message:[%s], length:%" PRId32 "\n", buffer, s);
284}
285
286
287void TestPrcv(void)
288{
289    ER         status;
290    char       buffer[200];
291    INT        s;
292
293    puts( "Init - prcv_mbf - bad id (less than -4) - E_OACV" );
294    status = prcv_mbf(buffer, &s, -5);
295    rtems_test_assert( status == E_OACV );
296
297    puts( "Init - prcv_mbf - bad id (between 0 and -4) - E_ID" );
298    status = prcv_mbf(buffer, &s, -4);
299    rtems_test_assert( status == E_ID );
300
301    puts( "Init - prcv_mbf - bad id (0) - E_ID" );
302    status = prcv_mbf(buffer, &s, 0);
303    rtems_test_assert( status == E_ID );
304
305    puts( "Init - prcv_mbf - bad id (too great) - E_ID" );
306    status = prcv_mbf(buffer, &s, CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS + 1);
307    rtems_test_assert( status == E_ID );
308
309    puts( "Init - prcv_mbf - NULL msg returns E_PAR" );
310    status = prcv_mbf(NULL, &s, 1);
311    rtems_test_assert( status == E_PAR );
312
313    puts( "Init - prcv_mbf - NULL p_msgsz returns E_PAR" );
314    status = prcv_mbf(buffer, 0, 1);
315    rtems_test_assert( status == E_PAR );
316
317    puts("Init - prcv_mbf -- E_TMOUT");
318    status = prcv_mbf(buffer, &s, 1);
319    rtems_test_assert(status == E_TMOUT);
320}
321
322
323void TestTrcv(void)
324{
325    ER        status;
326    char      buffer[200];
327    INT       s;
328
329    puts( "Init - trcv_mbf - bad id (less than -4) - E_OACV" );
330    status = trcv_mbf(buffer, &s, -5, 5000);
331    rtems_test_assert( status == E_OACV );
332
333    puts( "Init - trcv_mbf - bad id (between 0 and -4) - E_ID" );
334    status = trcv_mbf(buffer, &s, -4, 5000);
335    rtems_test_assert( status == E_ID );
336
337    puts( "Init - trcv_mbf - bad id (0) - E_ID" );
338    status = trcv_mbf(buffer, &s, 0, 5000);
339    rtems_test_assert( status == E_ID );
340
341    puts( "Init - trcv_mbf - bad id (too great) - E_ID" );
342    status = trcv_mbf(buffer, &s,
343                      CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS + 1,
344                      5000);
345    rtems_test_assert( status == E_ID );
346
347    puts( "Init - trcv_mbf - NULL msg returns E_PAR" );
348    status = trcv_mbf(NULL, &s, 1, 5000);
349    rtems_test_assert( status == E_PAR );
350
351    puts( "Init - trcv_mbf - NULL p_msgsz returns E_PAR" );
352    status = trcv_mbf(buffer, 0, 1, 5000);
353    rtems_test_assert( status == E_PAR );
354
355    puts( "Init - trcv_mbf - tmout <-2  returns E_PAR" );
356    status = trcv_mbf(buffer, &s, 1, -2);
357    rtems_test_assert( status == E_PAR );
358
359    puts("\nInit - trcv_mbf -- E_TMOUT");
360    put_time( "Init - starting to block at ");
361    status = trcv_mbf(buffer, &s, 1, 1000);
362    rtems_test_assert(status == E_TMOUT);
363    put_time( "Init - time out at ");
364}
Note: See TracBrowser for help on using the repository browser.