annotate packages/compat/uitron/current/tests/testcx6.cxx @ 208:e0c0827131d1 ecos

Merge from eCos master repository on 2002-05-20-20:11:54-BST
author jlarmour
date Mon, 20 May 2002 22:19:26 +0000
parents bf00f99aec69
children d2c90368aeef
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
1 //===========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
2 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
3 // testcx6.cxx
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
4 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
5 // uITRON "C++" test program six
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
6 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
7 //===========================================================================
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
8 //####ECOSGPLCOPYRIGHTBEGIN####
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
9 // -------------------------------------------
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
10 // This file is part of eCos, the Embedded Configurable Operating System.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
12 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
13 // eCos is free software; you can redistribute it and/or modify it under
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
14 // the terms of the GNU General Public License as published by the Free
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
15 // Software Foundation; either version 2 or (at your option) any later version.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
16 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
17 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
18 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
19 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
20 // for more details.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
21 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
22 // You should have received a copy of the GNU General Public License along
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
23 // with eCos; if not, write to the Free Software Foundation, Inc.,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
24 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
25 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
26 // As a special exception, if other files instantiate templates or use macros
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
27 // or inline functions from this file, or you compile this file and link it
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
28 // with other works to produce a work based on this file, this file does not
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
29 // by itself cause the resulting work to be covered by the GNU General Public
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
30 // License. However the source code for this file must still be made available
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
31 // in accordance with section (3) of the GNU General Public License.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
32 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
33 // This exception does not invalidate any other reasons why a work based on
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
34 // this file might be covered by the GNU General Public License.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
35 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
36 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
37 // at http://sources.redhat.com/ecos/ecos-license
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
38 // -------------------------------------------
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
39 //####ECOSGPLCOPYRIGHTEND####
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
40 //===========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
41 //#####DESCRIPTIONBEGIN####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
42 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
43 // Author(s): hmt
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
44 // Contributors: hmt
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
45 // Date: 1998-10-14
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
46 // Purpose: uITRON API testing
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
47 // Description:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
48 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
49 //####DESCRIPTIONEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
50 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
51 //===========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
52
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
53 #include <pkgconf/uitron.h> // uITRON setup CYGNUM_UITRON_SEMAS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
54 // CYGPKG_UITRON et al
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
55 #include <cyg/infra/testcase.h> // testing infrastructure
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
56
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
57 #ifdef CYGPKG_UITRON // we DO want the uITRON package
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
58
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
59 #ifdef CYGSEM_KERNEL_SCHED_MLQUEUE // we DO want prioritized threads
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
60
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
61 #ifdef CYGFUN_KERNEL_THREADS_TIMER // we DO want timout-able calls
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
62
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
63 #ifdef CYGVAR_KERNEL_COUNTERS_CLOCK // we DO want the realtime clock
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
64
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
65 // we're OK if it's C++ or neither of those two is defined:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
66 #if defined( __cplusplus ) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
67 (!defined( CYGIMP_UITRON_INLINE_FUNCS ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
68 !defined( CYGIMP_UITRON_CPP_OUTLINE_FUNCS) )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
69
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
70 // =================== TEST CONFIGURATION ===================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
71 #if \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
72 /* test configuration for enough tasks */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
73 (CYGNUM_UITRON_TASKS >= 4) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
74 (CYGNUM_UITRON_TASKS < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
75 (CYGNUM_UITRON_START_TASKS == 1) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
76 ( !defined(CYGPKG_UITRON_TASKS_CREATE_DELETE) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
77 CYGNUM_UITRON_TASKS_INITIALLY >= 4 ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
78 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
79 /* test configuration for enough semaphores */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
80 defined( CYGPKG_UITRON_SEMAS ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
81 (CYGNUM_UITRON_SEMAS >= 3) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
82 (CYGNUM_UITRON_SEMAS < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
83 ( !defined(CYGPKG_UITRON_SEMAS_CREATE_DELETE) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
84 CYGNUM_UITRON_SEMAS_INITIALLY >= 3 ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
85 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
86 /* test configuration for enough flag objects */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
87 defined( CYGPKG_UITRON_FLAGS ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
88 (CYGNUM_UITRON_FLAGS >= 3) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
89 (CYGNUM_UITRON_FLAGS < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
90 ( !defined(CYGPKG_UITRON_FLAGS_CREATE_DELETE) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
91 CYGNUM_UITRON_FLAGS_INITIALLY >= 3 ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
92 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
93 /* test configuration for enough message boxes */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
94 defined( CYGPKG_UITRON_MBOXES ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
95 (CYGNUM_UITRON_MBOXES >= 3) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
96 (CYGNUM_UITRON_MBOXES < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
97 ( !defined(CYGPKG_UITRON_MBOXES_CREATE_DELETE) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
98 CYGNUM_UITRON_MBOXES_INITIALLY >= 3 ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
99 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
100 /* the end of the large #if statement */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
101 1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
102
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
103 // ============================ END ============================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
104
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
105
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
106
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
107 #include <cyg/compat/uitron/uit_func.h> // uITRON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
108
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
109 externC void
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
110 cyg_package_start( void )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
111 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
112 CYG_TEST_INIT();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
113 CYG_TEST_INFO( "Calling cyg_uitron_start()" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
114 cyg_uitron_start();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
115 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
116
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
117 volatile int intercount = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
118 UINT scratch;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
119 T_MSG *t_msg = (T_MSG *)&scratch;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
120 T_MSG *msg;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
121 VP vp;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
122
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
123 T_CSEM t_csem = { NULL, 0, 0 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
124 T_CMBX t_cmbx = { NULL, 0 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
125 T_CFLG t_cflg = { NULL, 0, 0 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
126 T_RSEM t_rsem;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
127 T_RMBX t_rmbx;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
128 T_RFLG t_rflg;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
129
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
130
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
131 extern "C" {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
132 void task1( unsigned int arg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
133 void task2( unsigned int arg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
134 void task3( unsigned int arg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
135 void task4( unsigned int arg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
136 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
137
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
138 void task1( unsigned int arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
139 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
140 ER ercd;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
141 int tests = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
142
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
143 CYG_TEST_INFO( "Task 1 running" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
144
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
145 ercd = dis_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
146 CYG_TEST_CHECK( E_OK == ercd, "dis_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
147 ercd = sta_tsk( 2, 22222 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
148 CYG_TEST_CHECK( E_OK == ercd, "sta_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
149 ercd = chg_pri( 2, 5 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
150 CYG_TEST_CHECK( E_OK == ercd, "chg_pri bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
151 ercd = ena_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
152 CYG_TEST_CHECK( E_OK == ercd, "ena_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
153 ercd = dly_tsk( 10 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
154 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
155
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
156 #ifdef CYGPKG_UITRON_SEMAS_CREATE_DELETE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
157 tests++;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
158 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
159 ercd = del_sem( -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
160 CYG_TEST_CHECK( E_ID == ercd, "del_sem bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
161 ercd = del_sem( 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
162 CYG_TEST_CHECK( E_ID == ercd, "del_sem bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
163 ercd = cre_sem( -6, &t_csem );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
164 CYG_TEST_CHECK( E_ID == ercd, "cre_sem bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
165 ercd = cre_sem( 99, &t_csem );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
166 CYG_TEST_CHECK( E_ID == ercd, "cre_sem bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
167 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
168 // try a pre-existing object
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
169 ercd = cre_sem( 3, &t_csem );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
170 CYG_TEST_CHECK( E_OBJ == ercd, "cre_sem bad ercd !E_OBJ" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
171 // delete it so we can play
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
172 ercd = del_sem( 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
173 CYG_TEST_CHECK( E_OK == ercd, "del_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
174 // check it is deleted
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
175 ercd = sig_sem( 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
176 CYG_TEST_CHECK( E_NOEXS == ercd, "sig_sem bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
177 ercd = preq_sem( 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
178 CYG_TEST_CHECK( E_NOEXS == ercd, "preq_sem bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
179 ercd = twai_sem( 3, 10 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
180 CYG_TEST_CHECK( E_NOEXS == ercd, "twai_sem bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
181 ercd = wai_sem( 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
182 CYG_TEST_CHECK( E_NOEXS == ercd, "wai_sem bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
183 ercd = ref_sem( &t_rsem, 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
184 CYG_TEST_CHECK( E_NOEXS == ercd, "ref_sem bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
185 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
186 // now try creating it (badly)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
187 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
188 ercd = cre_sem( 3, NULL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
189 CYG_TEST_CHECK( E_PAR == ercd, "cre_sem bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
190 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
191 t_csem.sematr = 0xfff;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
192 ercd = cre_sem( 3, &t_csem );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
193 CYG_TEST_CHECK( E_RSATR == ercd, "cre_sem bad ercd !E_RSATR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
194 t_csem.sematr = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
195 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
196 ercd = cre_sem( 3, &t_csem );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
197 CYG_TEST_CHECK( E_OK == ercd, "cre_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
198 // and check we can use it
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
199 ercd = sig_sem( 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
200 CYG_TEST_CHECK( E_OK == ercd, "sig_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
201 ercd = wai_sem( 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
202 CYG_TEST_CHECK( E_OK == ercd, "wai_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
203 ercd = preq_sem( 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
204 CYG_TEST_CHECK( E_TMOUT == ercd, "preq_sem bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
205 ercd = twai_sem( 3, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
206 CYG_TEST_CHECK( E_TMOUT == ercd, "twai_sem bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
207 ercd = ref_sem( &t_rsem, 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
208 CYG_TEST_CHECK( E_OK == ercd, "ref_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
209
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
210 // now wait while task 2 deletes the wait objects
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
211 ercd = wup_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
212 CYG_TEST_CHECK( E_OK == ercd, "wup_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
213 ercd = wai_sem( 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
214 CYG_TEST_CHECK( E_DLT == ercd, "wai_sem bad ercd !E_DLT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
215 ercd = wup_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
216 CYG_TEST_CHECK( E_OK == ercd, "wup_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
217 ercd = twai_sem( 2, 20 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
218 CYG_TEST_CHECK( E_DLT == ercd, "twai_sem bad ercd !E_DLT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
219
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
220 // check they are deleted
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
221 ercd = sig_sem( 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
222 CYG_TEST_CHECK( E_NOEXS == ercd, "sig_sem bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
223 ercd = sig_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
224 CYG_TEST_CHECK( E_NOEXS == ercd, "sig_sem bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
225 // re-create and do it again
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
226 ercd = cre_sem( 1, &t_csem );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
227 CYG_TEST_CHECK( E_OK == ercd, "cre_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
228 ercd = cre_sem( 2, &t_csem );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
229 CYG_TEST_CHECK( E_OK == ercd, "cre_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
230
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
231 // now wait while task 2 deletes the wait objects again
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
232 ercd = wup_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
233 CYG_TEST_CHECK( E_OK == ercd, "wup_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
234 ercd = wai_sem( 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
235 CYG_TEST_CHECK( E_DLT == ercd, "wai_sem bad ercd !E_DLT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
236 ercd = wup_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
237 CYG_TEST_CHECK( E_OK == ercd, "wup_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
238 ercd = twai_sem( 2, 20 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
239 CYG_TEST_CHECK( E_DLT == ercd, "twai_sem bad ercd !E_DLT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
240
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
241 // check they are deleted
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
242 ercd = sig_sem( 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
243 CYG_TEST_CHECK( E_NOEXS == ercd, "sig_sem bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
244 ercd = sig_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
245 CYG_TEST_CHECK( E_NOEXS == ercd, "sig_sem bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
246
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
247 CYG_TEST_PASS("create/delete semaphores");
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
248 #endif // CYGPKG_UITRON_SEMAS_CREATE_DELETE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
249
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
250
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
251 #ifdef CYGPKG_UITRON_FLAGS_CREATE_DELETE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
252 tests++;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
253 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
254 ercd = del_flg( -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
255 CYG_TEST_CHECK( E_ID == ercd, "del_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
256 ercd = del_flg( 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
257 CYG_TEST_CHECK( E_ID == ercd, "del_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
258 ercd = cre_flg( -6, &t_cflg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
259 CYG_TEST_CHECK( E_ID == ercd, "cre_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
260 ercd = cre_flg( 99, &t_cflg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
261 CYG_TEST_CHECK( E_ID == ercd, "cre_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
262 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
263 // try a pre-existing object
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
264 ercd = cre_flg( 3, &t_cflg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
265 CYG_TEST_CHECK( E_OBJ == ercd, "cre_flg bad ercd !E_OBJ" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
266 // delete it so we can play
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
267 ercd = del_flg( 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
268 CYG_TEST_CHECK( E_OK == ercd, "del_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
269 // check it is deleted
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
270 ercd = set_flg( 3, 0x6789 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
271 CYG_TEST_CHECK( E_NOEXS == ercd, "set_flg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
272 ercd = clr_flg( 3, 0x9876 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
273 CYG_TEST_CHECK( E_NOEXS == ercd, "clr_flg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
274 ercd = pol_flg( &scratch, 3, 0xdddd, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
275 CYG_TEST_CHECK( E_NOEXS == ercd, "pol_flg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
276 ercd = twai_flg( &scratch, 3, 0x4444, TWF_ORW, 10 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
277 CYG_TEST_CHECK( E_NOEXS == ercd, "twai_flg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
278 ercd = wai_flg( &scratch, 3, 0xbbbb, TWF_ANDW | TWF_CLR );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
279 CYG_TEST_CHECK( E_NOEXS == ercd, "wai_flg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
280 ercd = ref_flg( &t_rflg, 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
281 CYG_TEST_CHECK( E_NOEXS == ercd, "ref_flg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
282 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
283 // now try creating it (badly)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
284 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
285 ercd = cre_flg( 3, NULL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
286 CYG_TEST_CHECK( E_PAR == ercd, "cre_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
287 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
288 t_cflg.flgatr = 0xfff;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
289 ercd = cre_flg( 3, &t_cflg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
290 CYG_TEST_CHECK( E_RSATR == ercd, "cre_flg bad ercd !E_RSATR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
291 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
292 // now create it well
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
293 t_cflg.flgatr = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
294 t_cflg.iflgptn = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
295 ercd = cre_flg( 3, &t_cflg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
296 CYG_TEST_CHECK( E_OK == ercd, "cre_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
297 // and check we can use it
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
298 ercd = clr_flg( 3, 0x7256 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
299 CYG_TEST_CHECK( E_OK == ercd, "clr_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
300 ercd = set_flg( 3, 0xff );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
301 CYG_TEST_CHECK( E_OK == ercd, "set_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
302 ercd = wai_flg( &scratch, 3, 0xaa, TWF_ANDW | TWF_CLR );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
303 CYG_TEST_CHECK( E_OK == ercd, "wai_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
304 ercd = pol_flg( &scratch, 3, 0xaa, TWF_ANDW | TWF_CLR );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
305 CYG_TEST_CHECK( E_TMOUT == ercd, "pol_flg bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
306 ercd = twai_flg( &scratch, 3, 0xaa, TWF_ANDW | TWF_CLR, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
307 CYG_TEST_CHECK( E_TMOUT == ercd, "twai_flg bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
308 ercd = ref_flg( &t_rflg, 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
309 CYG_TEST_CHECK( E_OK == ercd, "ref_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
310 CYG_TEST_CHECK( 0 == t_rflg.flgptn, "ref_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
311 // now create it again with a preset pattern and check that we can
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
312 // detect that pattern:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
313 ercd = del_flg( 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
314 CYG_TEST_CHECK( E_OK == ercd, "del_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
315 t_cflg.flgatr = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
316 t_cflg.iflgptn = 0x1234;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
317 ercd = cre_flg( 3, &t_cflg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
318 CYG_TEST_CHECK( E_OK == ercd, "cre_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
319 // and check we can use it
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
320 ercd = wai_flg( &scratch, 3, 0x1200, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
321 CYG_TEST_CHECK( E_OK == ercd, "wai_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
322 ercd = pol_flg( &scratch, 3, 0x0034, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
323 CYG_TEST_CHECK( E_OK == ercd, "pol_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
324 ercd = twai_flg( &scratch, 3, 0x1004, TWF_ANDW, 10 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
325 CYG_TEST_CHECK( E_OK == ercd, "twai_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
326 ercd = pol_flg( &scratch, 3, 0xffedcb, TWF_ORW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
327 CYG_TEST_CHECK( E_TMOUT == ercd, "pol_flg bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
328 ercd = ref_flg( &t_rflg, 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
329 CYG_TEST_CHECK( E_OK == ercd, "ref_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
330 CYG_TEST_CHECK( 0x1234 == t_rflg.flgptn, "ref_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
331 ercd = clr_flg( 3, 0 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
332 ercd = ref_flg( &t_rflg, 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
333 CYG_TEST_CHECK( E_OK == ercd, "ref_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
334 CYG_TEST_CHECK( 0 == t_rflg.flgptn, "ref_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
335
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
336 // now wait while task 2 deletes the wait objects
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
337 ercd = wup_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
338 CYG_TEST_CHECK( E_OK == ercd, "wup_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
339 ercd = wai_flg( &scratch, 1, 0xaa, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
340 CYG_TEST_CHECK( E_DLT == ercd, "wai_flg bad ercd !E_DLT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
341 ercd = wup_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
342 CYG_TEST_CHECK( E_OK == ercd, "wup_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
343 ercd = twai_flg( &scratch, 2, 0x55, TWF_ANDW, 20 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
344 CYG_TEST_CHECK( E_DLT == ercd, "twai_flg bad ercd !E_DLT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
345
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
346 // check they are deleted
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
347 ercd = set_flg( 1, 0x22 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
348 CYG_TEST_CHECK( E_NOEXS == ercd, "set_flg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
349 ercd = clr_flg( 2, 0xdd );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
350 CYG_TEST_CHECK( E_NOEXS == ercd, "clr_flg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
351 // re-create and do it again
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
352 t_cflg.iflgptn = 0x5555;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
353 ercd = cre_flg( 1, &t_cflg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
354 CYG_TEST_CHECK( E_OK == ercd, "cre_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
355 t_cflg.iflgptn = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
356 ercd = cre_flg( 2, &t_cflg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
357 CYG_TEST_CHECK( E_OK == ercd, "cre_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
358
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
359 // now wait while task 2 deletes the wait objects again
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
360 ercd = wup_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
361 CYG_TEST_CHECK( E_OK == ercd, "wup_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
362 ercd = wai_flg( &scratch, 1, 0xaaaa, TWF_ORW | TWF_CLR );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
363 CYG_TEST_CHECK( E_DLT == ercd, "wai_flg bad ercd !E_DLT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
364 ercd = wup_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
365 CYG_TEST_CHECK( E_OK == ercd, "wup_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
366 ercd = twai_flg( &scratch, 2, 0xffff, TWF_ORW, 20 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
367 CYG_TEST_CHECK( E_DLT == ercd, "twai_flg bad ercd !E_DLT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
368
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
369 // check they are deleted
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
370 ercd = clr_flg( 1, 0xd00d );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
371 CYG_TEST_CHECK( E_NOEXS == ercd, "clr_flg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
372 ercd = set_flg( 2, 0xfff00 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
373 CYG_TEST_CHECK( E_NOEXS == ercd, "set_flg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
374
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
375 CYG_TEST_PASS("create/delete flags");
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
376 #endif // CYGPKG_UITRON_FLAGS_CREATE_DELETE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
377
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
378 #ifdef CYGPKG_UITRON_MBOXES_CREATE_DELETE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
379 tests++;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
380 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
381 ercd = del_mbx( -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
382 CYG_TEST_CHECK( E_ID == ercd, "del_mbx bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
383 ercd = del_mbx( 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
384 CYG_TEST_CHECK( E_ID == ercd, "del_mbx bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
385 ercd = cre_mbx( -6, &t_cmbx );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
386 CYG_TEST_CHECK( E_ID == ercd, "cre_mbx bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
387 ercd = cre_mbx( 99, &t_cmbx );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
388 CYG_TEST_CHECK( E_ID == ercd, "cre_mbx bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
389 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
390 // try a pre-existing object
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
391 ercd = cre_mbx( 3, &t_cmbx );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
392 CYG_TEST_CHECK( E_OBJ == ercd, "cre_mbx bad ercd !E_OBJ" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
393 // delete it so we can play
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
394 ercd = del_mbx( 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
395 CYG_TEST_CHECK( E_OK == ercd, "del_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
396 // check it is deleted
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
397 ercd = snd_msg( 3, t_msg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
398 CYG_TEST_CHECK( E_NOEXS == ercd, "snd_msg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
399 ercd = rcv_msg( &msg, 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
400 CYG_TEST_CHECK( E_NOEXS == ercd, "rcv_msg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
401 ercd = trcv_msg( &msg, 3, 10 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
402 CYG_TEST_CHECK( E_NOEXS == ercd, "trcv_msg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
403 ercd = prcv_msg( &msg, 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
404 CYG_TEST_CHECK( E_NOEXS == ercd, "prcv_msg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
405 ercd = ref_mbx( &t_rmbx, 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
406 CYG_TEST_CHECK( E_NOEXS == ercd, "ref_mbx bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
407 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
408 // now try creating it (badly)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
409 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
410 ercd = cre_mbx( 3, NULL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
411 CYG_TEST_CHECK( E_PAR == ercd, "cre_mbx bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
412 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
413 t_cmbx.mbxatr = 0xfff;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
414 ercd = cre_mbx( 3, &t_cmbx );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
415 CYG_TEST_CHECK( E_RSATR == ercd, "cre_mbx bad ercd !E_RSATR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
416 t_cmbx.mbxatr = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
417 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
418 ercd = cre_mbx( 3, &t_cmbx );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
419 CYG_TEST_CHECK( E_OK == ercd, "cre_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
420 // and check we can use it
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
421 ercd = snd_msg( 3, t_msg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
422 CYG_TEST_CHECK( E_OK == ercd, "snd_msg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
423 ercd = rcv_msg( &msg, 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
424 CYG_TEST_CHECK( E_OK == ercd, "rcv_msg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
425 ercd = trcv_msg( &msg, 3, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
426 CYG_TEST_CHECK( E_TMOUT == ercd, "trcv_msg bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
427 ercd = prcv_msg( &msg, 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
428 CYG_TEST_CHECK( E_TMOUT == ercd, "prcv_msg bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
429 ercd = ref_mbx( &t_rmbx, 3 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
430 CYG_TEST_CHECK( E_OK == ercd, "ref_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
431
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
432 // now wait while task 2 deletes the wait objects
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
433 ercd = wup_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
434 CYG_TEST_CHECK( E_OK == ercd, "wup_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
435 ercd = rcv_msg( &msg, 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
436 CYG_TEST_CHECK( E_DLT == ercd, "wai_mbx bad ercd !E_DLT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
437 ercd = wup_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
438 CYG_TEST_CHECK( E_OK == ercd, "wup_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
439 ercd = trcv_msg( &msg, 2, 20 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
440 CYG_TEST_CHECK( E_DLT == ercd, "twai_mbx bad ercd !E_DLT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
441
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
442 // check they are deleted
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
443 ercd = snd_msg( 1, t_msg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
444 CYG_TEST_CHECK( E_NOEXS == ercd, "snd_msg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
445 ercd = snd_msg( 2, t_msg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
446 CYG_TEST_CHECK( E_NOEXS == ercd, "snd_msg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
447 // re-create and do it again
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
448 ercd = cre_mbx( 1, &t_cmbx );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
449 CYG_TEST_CHECK( E_OK == ercd, "cre_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
450 ercd = cre_mbx( 2, &t_cmbx );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
451 CYG_TEST_CHECK( E_OK == ercd, "cre_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
452
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
453 // now wait while task 2 deletes the wait objects again
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
454 ercd = wup_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
455 CYG_TEST_CHECK( E_OK == ercd, "wup_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
456 ercd = rcv_msg( &msg, 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
457 CYG_TEST_CHECK( E_DLT == ercd, "wai_mbx bad ercd !E_DLT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
458 ercd = wup_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
459 CYG_TEST_CHECK( E_OK == ercd, "wup_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
460 ercd = trcv_msg( &msg, 2, 20 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
461 CYG_TEST_CHECK( E_DLT == ercd, "twai_mbx bad ercd !E_DLT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
462
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
463 // check they are deleted
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
464 ercd = snd_msg( 1, t_msg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
465 CYG_TEST_CHECK( E_NOEXS == ercd, "snd_msg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
466 ercd = snd_msg( 2, t_msg );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
467 CYG_TEST_CHECK( E_NOEXS == ercd, "snd_msg bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
468
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
469 CYG_TEST_PASS("create/delete mboxes");
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
470 #endif // CYGPKG_UITRON_MBOXES_CREATE_DELETE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
471
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
472 ercd = ter_tsk( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
473 CYG_TEST_CHECK( E_OK == ercd, "ter_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
474 ercd = dly_tsk( 5 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
475 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
476
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
477 // all done
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
478 if ( 0 == tests ) {
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
479 CYG_TEST_NA( "No objects have create/delete enabled" );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
480 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
481 else {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
482 CYG_TEST_EXIT( "All done" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
483 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
484 ext_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
485 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
486
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
487
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
488
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
489 void task2( unsigned int arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
490 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
491 ER ercd;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
492 int i;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
493 CYG_TEST_INFO( "Task 2 running" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
494 ercd = get_tid( &i );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
495 CYG_TEST_CHECK( E_OK == ercd, "get_tid bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
496 CYG_TEST_CHECK( 2 == i, "tid not 2" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
497 if ( 22222 != arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
498 CYG_TEST_FAIL( "Task 2 arg not 22222" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
499
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
500 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
501 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
502
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
503 #ifdef CYGPKG_UITRON_SEMAS_CREATE_DELETE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
504 ercd = del_sem( 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
505 CYG_TEST_CHECK( E_OK == ercd, "del_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
506 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
507 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
508 ercd = del_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
509 CYG_TEST_CHECK( E_OK == ercd, "del_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
510 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
511 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
512 ercd = del_sem( 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
513 CYG_TEST_CHECK( E_OK == ercd, "del_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
514 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
515 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
516 ercd = del_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
517 CYG_TEST_CHECK( E_OK == ercd, "del_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
518 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
519 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
520 #endif // CYGPKG_UITRON_SEMAS_CREATE_DELETE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
521
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
522 #ifdef CYGPKG_UITRON_FLAGS_CREATE_DELETE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
523 ercd = del_flg( 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
524 CYG_TEST_CHECK( E_OK == ercd, "del_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
525 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
526 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
527 ercd = del_flg( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
528 CYG_TEST_CHECK( E_OK == ercd, "del_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
529 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
530 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
531 ercd = del_flg( 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
532 CYG_TEST_CHECK( E_OK == ercd, "del_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
533 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
534 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
535 ercd = del_flg( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
536 CYG_TEST_CHECK( E_OK == ercd, "del_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
537 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
538 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
539 #endif // CYGPKG_UITRON_FLAGS_CREATE_DELETE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
540
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
541 #ifdef CYGPKG_UITRON_MBOXES_CREATE_DELETE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
542 ercd = del_mbx( 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
543 CYG_TEST_CHECK( E_OK == ercd, "del_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
544 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
545 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
546 ercd = del_mbx( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
547 CYG_TEST_CHECK( E_OK == ercd, "del_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
548 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
549 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
550 ercd = del_mbx( 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
551 CYG_TEST_CHECK( E_OK == ercd, "del_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
552 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
553 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
554 ercd = del_mbx( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
555 CYG_TEST_CHECK( E_OK == ercd, "del_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
556 ercd = slp_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
557 CYG_TEST_CHECK( E_OK == ercd, "slp_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
558 #endif // CYGPKG_UITRON_MBOXES_CREATE_DELETE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
559
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
560 // we expect task2 to be killed here
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
561 CYG_TEST_FAIL( "Task 2 ran to completion!" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
562 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
563
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
564 void task3( unsigned int arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
565 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
566 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
567
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
568 void task4( unsigned int arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
569 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
570 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
571
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
572 #else // not enough (or too many) uITRON objects configured in
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
573 #define N_A_MSG "not enough uITRON objects to run test"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
574 #endif // not enough (or too many) uITRON objects configured in
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
575 #else // not C++ and some C++ specific options enabled
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
576 #define N_A_MSG "C++ specific options selected but this is C"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
577 #endif // not C++ and some C++ specific options enabled
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
578 #else // ! CYGVAR_KERNEL_COUNTERS_CLOCK - can't test without it
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
579 #define N_A_MSG "no CYGVAR_KERNEL_COUNTERS_CLOCK"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
580 #endif // ! CYGVAR_KERNEL_COUNTERS_CLOCK - can't test without it
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
581 #else // ! CYGFUN_KERNEL_THREADS_TIMER - can't test without it
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
582 #define N_A_MSG "no CYGFUN_KERNEL_THREADS_TIMER"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
583 #endif // ! CYGFUN_KERNEL_THREADS_TIMER - can't test without it
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
584 #else // ! CYGIMP_THREAD_PRIORITY - can't test without it
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
585 #define N_A_MSG "no CYGSEM_KERNEL_SCHED_MLQUEUE"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
586 #endif // ! CYGSEM_KERNEL_SCHED_MLQUEUE - can't test without it
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
587 #else // ! CYGPKG_UITRON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
588 #define N_A_MSG "uITRON Compatibility layer disabled"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
589 #endif // CYGPKG_UITRON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
590
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
591 #ifdef N_A_MSG
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
592 externC void
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
593 cyg_start( void )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
594 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
595 CYG_TEST_INIT();
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
596 CYG_TEST_NA( N_A_MSG );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
597 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
598 #endif // N_A_MSG defined ie. we are N/A.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
599
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
600 // EOF testcx6.cxx