annotate packages/compat/uitron/current/tests/test2.c @ 2729:74dbf4c3f2e1 after-copyright-change-20090129

Update all copyright banners to reflect FSF ownership; fix and improve licence text.
author jlarmour
date Thu, 29 Jan 2009 17:47:46 +0000
parents 077661071a3a
children ae70bb12da5b
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 //
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
3 // test2.c
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
4 //
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
5 // uITRON "C" test program two
0
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 //===========================================================================
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
8 // ####ECOSGPLCOPYRIGHTBEGIN####
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
9 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
10 // This file is part of eCos, the Embedded Configurable Operating System.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
12 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
13 // eCos is free software; you can redistribute it and/or modify it under
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
14 // the terms of the GNU General Public License as published by the Free
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
15 // Software Foundation; either version 2 or (at your option) any later
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
16 // version.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
17 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
18 // eCos is distributed in the hope that it will be useful, but WITHOUT
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
19 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
20 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
21 // for more details.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
22 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
23 // You should have received a copy of the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
24 // along with eCos; if not, write to the Free Software Foundation, Inc.,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
25 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
26 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
27 // As a special exception, if other files instantiate templates or use
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
28 // macros or inline functions from this file, or you compile this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
29 // and link it with other works to produce a work based on this file,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
30 // this file does not by itself cause the resulting work to be covered by
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
31 // the GNU General Public License. However the source code for this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
32 // must still be made available in accordance with section (3) of the GNU
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
33 // General Public License v2.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 66
diff changeset
34 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
35 // This exception does not invalidate any other reasons why a work based
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
36 // on this file might be covered by the GNU General Public License.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
37 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2054
diff changeset
38 // ####ECOSGPLCOPYRIGHTEND####
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
39 //===========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
40 //#####DESCRIPTIONBEGIN####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
41 //
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
42 // Author(s): hmt
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
43 // Contributors: hmt
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
44 // Date: 1998-03-13
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
45 // Purpose: uITRON API testing
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
46 // Description:
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
47 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
48 //####DESCRIPTIONEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
49 //
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 #include <pkgconf/uitron.h> // uITRON setup CYGNUM_UITRON_SEMAS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
53 // CYGPKG_UITRON et al
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
54 #include <cyg/infra/testcase.h> // testing infrastructure
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
55
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
56 #ifdef CYGPKG_UITRON // we DO want the uITRON package
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
57
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
58 #ifdef CYGSEM_KERNEL_SCHED_MLQUEUE // we DO want prioritized threads
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
59
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
60 #ifdef CYGFUN_KERNEL_THREADS_TIMER // we DO want timout-able calls
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
61
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
62 #ifdef CYGVAR_KERNEL_COUNTERS_CLOCK // we DO want the realtime clock
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
63
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
64 // 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
65 #if defined( __cplusplus ) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
66 (!defined( CYGIMP_UITRON_INLINE_FUNCS ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
67 !defined( CYGIMP_UITRON_CPP_OUTLINE_FUNCS) )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
68
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
69 // =================== TEST CONFIGURATION ===================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
70 #if \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
71 /* test configuration for enough tasks */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
72 (CYGNUM_UITRON_TASKS >= 4) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
73 (CYGNUM_UITRON_TASKS < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
74 (CYGNUM_UITRON_START_TASKS == 1) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
75 ( !defined(CYGPKG_UITRON_TASKS_CREATE_DELETE) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
76 CYGNUM_UITRON_TASKS_INITIALLY >= 4 ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
77 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
78 /* test configuration for enough semaphores */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
79 defined( CYGPKG_UITRON_SEMAS ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
80 (CYGNUM_UITRON_SEMAS >= 3) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
81 (CYGNUM_UITRON_SEMAS < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
82 ( !defined(CYGPKG_UITRON_SEMAS_CREATE_DELETE) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
83 CYGNUM_UITRON_SEMAS_INITIALLY >= 3 ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
84 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
85 /* test configuration for enough flag objects */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
86 defined( CYGPKG_UITRON_FLAGS ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
87 (CYGNUM_UITRON_FLAGS >= 3) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
88 (CYGNUM_UITRON_FLAGS < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
89 ( !defined(CYGPKG_UITRON_FLAGS_CREATE_DELETE) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
90 CYGNUM_UITRON_FLAGS_INITIALLY >= 3 ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
91 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
92 /* test configuration for enough message boxes */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
93 defined( CYGPKG_UITRON_MBOXES ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
94 (CYGNUM_UITRON_MBOXES >= 3) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
95 (CYGNUM_UITRON_MBOXES < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
96 ( !defined(CYGPKG_UITRON_MBOXES_CREATE_DELETE) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
97 CYGNUM_UITRON_MBOXES_INITIALLY >= 3 ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
98 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
99 /* test configuration for enough fixed memory pools */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
100 defined( CYGPKG_UITRON_MEMPOOLFIXED ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
101 (CYGNUM_UITRON_MEMPOOLFIXED >= 3) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
102 (CYGNUM_UITRON_MEMPOOLFIXED < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
103 ( !defined(CYGPKG_UITRON_MEMPOOLFIXED_CREATE_DELETE) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
104 CYGNUM_UITRON_MEMPOOLFIXED_INITIALLY >= 3 ) && \
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 /* test configuration for enough variable mempools */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
107 defined( CYGPKG_UITRON_MEMPOOLVAR ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
108 (CYGNUM_UITRON_MEMPOOLVAR >= 3) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
109 (CYGNUM_UITRON_MEMPOOLVAR < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
110 ( !defined(CYGPKG_UITRON_MEMPOOLVAR_CREATE_DELETE) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
111 CYGNUM_UITRON_MEMPOOLVAR_INITIALLY >= 3 ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
112 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
113 /* the end of the large #if statement */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
114 1
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 // ============================ END ============================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
117
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
118
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
119
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
120 #include <cyg/compat/uitron/uit_func.h> // uITRON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
121
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
122 externC void
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
123 cyg_package_start( void )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
124 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
125 CYG_TEST_INIT();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
126 CYG_TEST_INFO( "Calling cyg_uitron_start()" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
127 cyg_uitron_start();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
128 }
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 int intercom = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
131 int intercount = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
132 INT scratch = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
133
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
134 void task1( unsigned int arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
135 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
136 ER ercd;
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 T_RSEM sem_info;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
139 T_RFLG flg_info;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
140 T_RMBX mbx_info;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
141 T_RMPF mpf_info;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
142 T_RMPL mpl_info;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
143 UINT flagptn;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
144 static char foo[] = "Test message";
2054
077661071a3a * tests/test2.c (task1): Cast to fix compiler warning.
asl
parents: 210
diff changeset
145 T_MSG *msgptr = (T_MSG *)foo;
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
146 T_MSG *rxptr = NULL;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
147 VP blfptr = (VP)foo;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
148 VP blkptr = (VP)foo;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
149
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
150 int delay = 10;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
151 if (cyg_test_is_simulator)
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
152 delay = 3;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
153
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
154 CYG_TEST_INFO( "Task 1 running" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
155 ercd = get_tid( &scratch );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
156 CYG_TEST_CHECK( E_OK == ercd, "get_tid bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
157 CYG_TEST_CHECK( 1 == scratch, "tid not 1" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
158
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
159 // start a lower prio task to interact with
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
160 intercom = 1;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
161 ercd = sta_tsk( 2, 222 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
162 CYG_TEST_CHECK( E_OK == ercd, "sta_tsk bad ercd" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
163 ercd = dly_tsk( delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
164 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
165
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
166 // Semaphores; all the illegal argument combinations first
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
167 CYG_TEST_INFO( "Testing semaphore ops" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
168 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
169 ercd = sig_sem( -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
170 CYG_TEST_CHECK( E_ID == ercd, "sig_sem bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
171 ercd = sig_sem( 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
172 CYG_TEST_CHECK( E_ID == ercd, "sig_sem bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
173 ercd = wai_sem( -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
174 CYG_TEST_CHECK( E_ID == ercd, "wai_sem bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
175 ercd = wai_sem( 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
176 CYG_TEST_CHECK( E_ID == ercd, "wai_sem bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
177 ercd = preq_sem( -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
178 CYG_TEST_CHECK( E_ID == ercd, "preq_sem bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
179 ercd = preq_sem( 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
180 CYG_TEST_CHECK( E_ID == ercd, "preq_sem bad ercd !E_ID" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
181 ercd = twai_sem( -6, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
182 CYG_TEST_CHECK( E_ID == ercd, "twai_sem bad ercd !E_ID" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
183 ercd = twai_sem( 99, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
184 CYG_TEST_CHECK( E_ID == ercd, "twai_sem bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
185 ercd = twai_sem( 2, -999 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
186 CYG_TEST_CHECK( E_PAR == ercd, "twai_sem bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
187 ercd = ref_sem( &sem_info, -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
188 CYG_TEST_CHECK( E_ID == ercd, "ref_sem bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
189 ercd = ref_sem( &sem_info, 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
190 CYG_TEST_CHECK( E_ID == ercd, "ref_sem bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
191 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
192 ercd = ref_sem( NULL, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
193 CYG_TEST_CHECK( E_PAR == ercd, "ref_sem bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
194 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
195 ercd = ref_sem( NADR, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
196 CYG_TEST_CHECK( E_PAR == ercd, "ref_sem bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
197 CYG_TEST_PASS( "bad calls: sig_sem, [t]wai_sem, preq_sem, ref_sem" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
198 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
199
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
200 // check the waitable functions versus dispatch disable
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
201 ercd = preq_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
202 CYG_TEST_CHECK( E_TMOUT == ercd, "preq_sem bad ercd !E_TMOUT" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
203 ercd = twai_sem( 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
204 CYG_TEST_CHECK( E_TMOUT == ercd, "twai_sem bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
205 ercd = twai_sem( 2, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
206 CYG_TEST_CHECK( E_TMOUT == ercd, "twai_sem(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
207 ercd = dis_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
208 CYG_TEST_CHECK( E_OK == ercd, "dis_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
209 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
210 ercd = wai_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
211 CYG_TEST_CHECK( E_CTX == ercd, "wai_sem bad ercd !E_CTX" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
212 ercd = twai_sem( 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
213 CYG_TEST_CHECK( E_CTX == ercd, "twai_sem bad ercd !E_CTX" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
214 ercd = twai_sem( 2, TMO_FEVR );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
215 CYG_TEST_CHECK( E_CTX == ercd, "twai_sem(FEVR) bad ercd !E_CTX" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
216 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
217 ercd = twai_sem( 2, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
218 CYG_TEST_CHECK( E_TMOUT == ercd, "twai_sem(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
219 ercd = preq_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
220 CYG_TEST_CHECK( E_TMOUT == ercd, "preq_sem bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
221 ercd = ena_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
222 CYG_TEST_CHECK( E_OK == ercd, "ena_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
223 ercd = preq_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
224 CYG_TEST_CHECK( E_TMOUT == ercd, "preq_sem bad ercd !E_TMOUT" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
225 ercd = twai_sem( 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
226 CYG_TEST_CHECK( E_TMOUT == ercd, "twai_sem bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
227 ercd = twai_sem( 2, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
228 CYG_TEST_CHECK( E_TMOUT == ercd, "twai_sem(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
229 CYG_TEST_PASS( "bad calls: wai_sem, twai_sem with dis_dsp" );
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 // check ref_sem with various states
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
232 ercd = ref_sem( &sem_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
233 CYG_TEST_CHECK( E_OK == ercd, "ref_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
234 CYG_TEST_CHECK( 0 == sem_info.wtsk, "sem.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
235 CYG_TEST_CHECK( 0 == sem_info.semcnt, "semcnt should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
236 ercd = sig_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
237 CYG_TEST_CHECK( E_OK == ercd, "sig_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
238 ercd = ref_sem( &sem_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
239 CYG_TEST_CHECK( E_OK == ercd, "ref_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
240 CYG_TEST_CHECK( 0 == sem_info.wtsk, "sem.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
241 CYG_TEST_CHECK( 1 == sem_info.semcnt, "semcnt should be 1" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
242 ercd = preq_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
243 CYG_TEST_CHECK( E_OK == ercd, "wai_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
244 ercd = ref_sem( &sem_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
245 CYG_TEST_CHECK( E_OK == ercd, "ref_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
246 CYG_TEST_CHECK( 0 == sem_info.wtsk, "sem.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
247 CYG_TEST_CHECK( 0 == sem_info.semcnt, "semcnt should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
248 ercd = ref_sem( &sem_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
249 CYG_TEST_CHECK( E_OK == ercd, "ref_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
250 CYG_TEST_CHECK( 0 == sem_info.wtsk, "sem.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
251 CYG_TEST_CHECK( 0 == sem_info.semcnt, "semcnt should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
252 ercd = sig_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
253 CYG_TEST_CHECK( E_OK == ercd, "sig_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
254 ercd = sig_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
255 CYG_TEST_CHECK( E_OK == ercd, "sig_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
256 ercd = ref_sem( &sem_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
257 CYG_TEST_CHECK( E_OK == ercd, "ref_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
258 CYG_TEST_CHECK( 0 == sem_info.wtsk, "sem.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
259 CYG_TEST_CHECK( 2 == sem_info.semcnt, "semcnt should be 2" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
260 ercd = wai_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
261 CYG_TEST_CHECK( E_OK == ercd, "wai_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
262 ercd = ref_sem( &sem_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
263 CYG_TEST_CHECK( E_OK == ercd, "ref_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
264 CYG_TEST_CHECK( 0 == sem_info.wtsk, "sem.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
265 CYG_TEST_CHECK( 1 == sem_info.semcnt, "semcnt should be 1" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
266 ercd = twai_sem( 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
267 CYG_TEST_CHECK( E_OK == ercd, "wai_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
268 ercd = ref_sem( &sem_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
269 CYG_TEST_CHECK( E_OK == ercd, "ref_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
270 CYG_TEST_CHECK( 0 == sem_info.wtsk, "sem.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
271 CYG_TEST_CHECK( 0 == sem_info.semcnt, "semcnt should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
272 intercom = 0;
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
273 ercd = dly_tsk( delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
274 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
275 intercom = 1;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
276 ercd = ref_sem( &sem_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
277 CYG_TEST_CHECK( E_OK == ercd, "ref_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
278 CYG_TEST_CHECK( 0 != sem_info.wtsk, "sem.wtsk should be non0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
279 CYG_TEST_CHECK( 0 == sem_info.semcnt, "semcnt should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
280 ercd = sig_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
281 CYG_TEST_CHECK( E_OK == ercd, "sig_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
282 ercd = ref_sem( &sem_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
283 CYG_TEST_CHECK( E_OK == ercd, "ref_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
284 CYG_TEST_CHECK( 0 == sem_info.wtsk, "sem.wtsk should be non0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
285 #if 1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
286 CYG_TEST_CHECK( 0 == sem_info.semcnt, "semcnt should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
287 #else // old, non-uITRON semantics
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
288 CYG_TEST_CHECK( 1 == sem_info.semcnt, "semcnt should be 1" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
289 #endif
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
290 ercd = dly_tsk( delay ); // let task 2 pick up the signal
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
291 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
292 ercd = ref_sem( &sem_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
293 CYG_TEST_CHECK( E_OK == ercd, "ref_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
294 CYG_TEST_CHECK( 0 == sem_info.wtsk, "sem.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
295 CYG_TEST_CHECK( 0 == sem_info.semcnt, "semcnt should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
296 CYG_TEST_PASS( "good calls: sig_sem, [t]wai,preq_sem with ref_sem" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
297
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
298 // Flags; all the illegal argument combinations first
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
299 CYG_TEST_INFO( "Testing flag ops" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
300 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
301 ercd = set_flg( -6, 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
302 CYG_TEST_CHECK( E_ID == ercd, "set_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
303 ercd = set_flg( 99, 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
304 CYG_TEST_CHECK( E_ID == ercd, "set_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
305 ercd = clr_flg( -6, 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
306 CYG_TEST_CHECK( E_ID == ercd, "clr_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
307 ercd = clr_flg( 99, 1 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
308 CYG_TEST_CHECK( E_ID == ercd, "sig_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
309 ercd = wai_flg( &flagptn, -6, 7, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
310 CYG_TEST_CHECK( E_ID == ercd, "wai_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
311 ercd = wai_flg( &flagptn, 99, 7, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
312 CYG_TEST_CHECK( E_ID == ercd, "wai_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
313 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
314 ercd = wai_flg( NULL, 2, 7, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
315 CYG_TEST_CHECK( E_PAR == ercd, "wai_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
316 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
317 ercd = wai_flg( NADR, 2, 7, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
318 CYG_TEST_CHECK( E_PAR == ercd, "wai_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
319 ercd = wai_flg( &flagptn, 2, 7, 34657 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
320 CYG_TEST_CHECK( E_PAR == ercd, "wai_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
321 ercd = wai_flg( &flagptn, 2, 0, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
322 CYG_TEST_CHECK( E_PAR == ercd, "wai_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
323 ercd = pol_flg( &flagptn, -6, 7, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
324 CYG_TEST_CHECK( E_ID == ercd, "pol_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
325 ercd = pol_flg( &flagptn, 99, 7, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
326 CYG_TEST_CHECK( E_ID == ercd, "pol_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
327 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
328 ercd = pol_flg( NULL, 2, 7, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
329 CYG_TEST_CHECK( E_PAR == ercd, "pol_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
330 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
331 ercd = pol_flg( NADR, 2, 7, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
332 CYG_TEST_CHECK( E_PAR == ercd, "pol_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
333 ercd = pol_flg( &flagptn, 2, 7, 34657 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
334 CYG_TEST_CHECK( E_PAR == ercd, "pol_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
335 ercd = pol_flg( &flagptn, 2, 0, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
336 CYG_TEST_CHECK( E_PAR == ercd, "pol_flg bad ercd !E_PAR" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
337 ercd = twai_flg( &flagptn, -6, 7, TWF_ANDW, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
338 CYG_TEST_CHECK( E_ID == ercd, "twai_flg bad ercd !E_ID" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
339 ercd = twai_flg( &flagptn, 99, 7, TWF_ANDW, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
340 CYG_TEST_CHECK( E_ID == ercd, "twai_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
341 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
342 ercd = twai_flg( NULL, 2, 7, TWF_ANDW, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
343 CYG_TEST_CHECK( E_PAR == ercd, "twai_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
344 #endif
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
345 ercd = twai_flg( NADR, 2, 7, TWF_ANDW, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
346 CYG_TEST_CHECK( E_PAR == ercd, "twai_flg bad ercd !E_PAR" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
347 ercd = twai_flg( &flagptn, 2, 7, 34657, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
348 CYG_TEST_CHECK( E_PAR == ercd, "twai_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
349 ercd = twai_flg( &flagptn, 2, 7, TWF_ANDW, -999 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
350 CYG_TEST_CHECK( E_PAR == ercd, "twai_flg bad ercd !E_PAR" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
351 ercd = twai_flg( &flagptn, 2, 0, TWF_ANDW, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
352 CYG_TEST_CHECK( E_PAR == ercd, "twai_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
353 ercd = ref_flg( &flg_info, -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
354 CYG_TEST_CHECK( E_ID == ercd, "ref_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
355 ercd = ref_flg( &flg_info, 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
356 CYG_TEST_CHECK( E_ID == ercd, "ref_flg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
357 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
358 ercd = ref_flg( NULL, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
359 CYG_TEST_CHECK( E_PAR == ercd, "ref_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
360 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
361 ercd = ref_flg( NADR, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
362 CYG_TEST_CHECK( E_PAR == ercd, "ref_flg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
363 CYG_TEST_PASS( "bad calls: set_flg, clr_flg, [t]wai,pol_flg, ref_flg" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
364 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
365
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
366 // check the waitable functions versus dispatch disable
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
367 ercd = pol_flg( &flagptn, 2, 7, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
368 CYG_TEST_CHECK( E_TMOUT == ercd, "pol_flg bad ercd !E_TMOUT" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
369 ercd = twai_flg( &flagptn, 2, 7, TWF_ANDW, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
370 CYG_TEST_CHECK( E_TMOUT == ercd, "twai_flg bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
371 ercd = twai_flg( &flagptn, 2, 7, TWF_ANDW, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
372 CYG_TEST_CHECK( E_TMOUT == ercd, "twai_flg(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
373 ercd = dis_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
374 CYG_TEST_CHECK( E_OK == ercd, "dis_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
375 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
376 ercd = wai_flg( &flagptn, 2, 7, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
377 CYG_TEST_CHECK( E_CTX == ercd, "wai_flg bad ercd !E_CTX" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
378 ercd = twai_flg( &flagptn, 2, 7, TWF_ANDW, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
379 CYG_TEST_CHECK( E_CTX == ercd, "twai_flg bad ercd !E_CTX" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
380 ercd = twai_flg( &flagptn, 2, 7, TWF_ANDW, TMO_FEVR );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
381 CYG_TEST_CHECK( E_CTX == ercd, "twai_flg(FEVR) bad ercd !E_CTX" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
382 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
383 ercd = twai_flg( &flagptn, 2, 7, TWF_ANDW, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
384 CYG_TEST_CHECK( E_TMOUT == ercd, "twai_flg(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
385 ercd = pol_flg( &flagptn, 2, 7, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
386 CYG_TEST_CHECK( E_TMOUT == ercd, "pol_flg bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
387 ercd = ena_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
388 CYG_TEST_CHECK( E_OK == ercd, "ena_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
389 ercd = pol_flg( &flagptn, 2, 7, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
390 CYG_TEST_CHECK( E_TMOUT == ercd, "pol_flg bad ercd !E_TMOUT" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
391 ercd = twai_flg( &flagptn, 2, 7, TWF_ANDW, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
392 CYG_TEST_CHECK( E_TMOUT == ercd, "twai_flg bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
393 ercd = twai_flg( &flagptn, 2, 7, TWF_ANDW, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
394 CYG_TEST_CHECK( E_TMOUT == ercd, "twai_flg(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
395 CYG_TEST_PASS( "bad calls: wai_flg, twai_flg with dis_dsp" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
396
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
397 // check ref_flg with various states
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
398 ercd = ref_flg( &flg_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
399 CYG_TEST_CHECK( E_OK == ercd, "ref_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
400 CYG_TEST_CHECK( 0 == flg_info.wtsk, "flg.wtsk should be non0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
401 CYG_TEST_CHECK( 0 == flg_info.flgptn, "flgptn should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
402 intercom = 0;
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
403 ercd = dly_tsk( delay ); // let task 2 start waiting
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
404 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
405 intercom = 1;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
406 ercd = ref_flg( &flg_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
407 CYG_TEST_CHECK( E_OK == ercd, "ref_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
408 CYG_TEST_CHECK( 0 != flg_info.wtsk, "flg.wtsk should be non0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
409 CYG_TEST_CHECK( 0 == flg_info.flgptn, "flgptn should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
410 ercd = set_flg( 2, 0x5555 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
411 CYG_TEST_CHECK( E_OK == ercd, "sig_flg bad ercd" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
412 ercd = dly_tsk( delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
413 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
414 ercd = ref_flg( &flg_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
415 CYG_TEST_CHECK( E_OK == ercd, "ref_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
416 CYG_TEST_CHECK( 0 != flg_info.wtsk, "flg.wtsk should be non0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
417 CYG_TEST_CHECK( 0x5555 == flg_info.flgptn, "flgptn should be 0x5555" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
418 ercd = clr_flg( 2, 0xF0F0 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
419 CYG_TEST_CHECK( E_OK == ercd, "clr_flg bad ercd" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
420 ercd = dly_tsk( delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
421 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
422 ercd = ref_flg( &flg_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
423 CYG_TEST_CHECK( E_OK == ercd, "ref_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
424 CYG_TEST_CHECK( 0 != flg_info.wtsk, "flg.wtsk should be non0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
425 CYG_TEST_CHECK( 0x5050 == flg_info.flgptn, "flgptn should be 0x5050" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
426 ercd = set_flg( 2, 0xFFFF );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
427 CYG_TEST_CHECK( E_OK == ercd, "sig_flg bad ercd" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
428 ercd = dly_tsk( delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
429 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
430 ercd = ref_flg( &flg_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
431 CYG_TEST_CHECK( E_OK == ercd, "ref_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
432 CYG_TEST_CHECK( 0 == flg_info.wtsk, "flg.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
433 CYG_TEST_CHECK( 0xFFFF == flg_info.flgptn, "flgptn should be 0xFFFF" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
434 CYG_TEST_PASS( "good calls: clr_flg, set_flg, wai_flg with ref_flg" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
435
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
436 // Mailboxes; all the illegal argument combinations first
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
437 CYG_TEST_INFO( "Testing mailbox ops" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
438 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
439 ercd = snd_msg( -6, msgptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
440 CYG_TEST_CHECK( E_ID == ercd, "snd_msg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
441 ercd = snd_msg( 99, msgptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
442 CYG_TEST_CHECK( E_ID == ercd, "snd_msg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
443 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
444 ercd = snd_msg( 2, NULL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
445 CYG_TEST_CHECK( E_PAR == ercd, "snd_msg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
446 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
447 ercd = snd_msg( 2, NADR );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
448 CYG_TEST_CHECK( E_PAR == ercd, "snd_msg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
449 ercd = rcv_msg( &rxptr, -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
450 CYG_TEST_CHECK( E_ID == ercd, "rcv_msg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
451 ercd = rcv_msg( &rxptr, 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
452 CYG_TEST_CHECK( E_ID == ercd, "rcv_msg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
453 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
454 ercd = rcv_msg( NULL, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
455 CYG_TEST_CHECK( E_PAR == ercd, "rcv_msg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
456 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
457 ercd = rcv_msg( NADR, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
458 CYG_TEST_CHECK( E_PAR == ercd, "rcv_msg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
459 ercd = prcv_msg( &rxptr, -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
460 CYG_TEST_CHECK( E_ID == ercd, "prcv_msg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
461 ercd = prcv_msg( &rxptr, 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
462 CYG_TEST_CHECK( E_ID == ercd, "prcv_msg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
463 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
464 ercd = prcv_msg( NULL, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
465 CYG_TEST_CHECK( E_PAR == ercd, "prcv_msg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
466 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
467 ercd = prcv_msg( NADR, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
468 CYG_TEST_CHECK( E_PAR == ercd, "prcv_msg bad ercd !E_PAR" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
469 ercd = trcv_msg( &rxptr, -6, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
470 CYG_TEST_CHECK( E_ID == ercd, "trcv_msg bad ercd !E_ID" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
471 ercd = trcv_msg( &rxptr, 99, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
472 CYG_TEST_CHECK( E_ID == ercd, "trcv_msg bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
473 ercd = trcv_msg( &rxptr, 2, -999 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
474 CYG_TEST_CHECK( E_PAR == ercd, "trcv_msg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
475 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
476 ercd = trcv_msg( NULL, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
477 CYG_TEST_CHECK( E_PAR == ercd, "trcv_msg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
478 #endif
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
479 ercd = trcv_msg( NADR, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
480 CYG_TEST_CHECK( E_PAR == ercd, "trcv_msg bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
481 ercd = ref_mbx( &mbx_info, -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
482 CYG_TEST_CHECK( E_ID == ercd, "ref_mbx bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
483 ercd = ref_mbx( &mbx_info, 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
484 CYG_TEST_CHECK( E_ID == ercd, "ref_mbx bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
485 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
486 ercd = ref_mbx( NULL, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
487 CYG_TEST_CHECK( E_PAR == ercd, "ref_mbx bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
488 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
489 ercd = ref_mbx( NADR, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
490 CYG_TEST_CHECK( E_PAR == ercd, "ref_mbx bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
491 CYG_TEST_PASS( "bad calls: snd_msg, [pt]rcv_msg, ref_mbx" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
492 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
493
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
494 // check the waitable functions versus dispatch disable
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
495 ercd = prcv_msg( &rxptr, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
496 CYG_TEST_CHECK( E_TMOUT == ercd, "prcv_msg bad ercd !E_TMOUT" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
497 ercd = trcv_msg( &rxptr, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
498 CYG_TEST_CHECK( E_TMOUT == ercd, "trcv_msg bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
499 ercd = trcv_msg( &rxptr, 2, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
500 CYG_TEST_CHECK( E_TMOUT == ercd, "trcv_msg(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
501 ercd = dis_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
502 CYG_TEST_CHECK( E_OK == ercd, "dis_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
503 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
504 ercd = rcv_msg( &rxptr, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
505 CYG_TEST_CHECK( E_CTX == ercd, "rcv_msg bad ercd !E_CTX" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
506 ercd = trcv_msg( &rxptr, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
507 CYG_TEST_CHECK( E_CTX == ercd, "trcv_msg bad ercd !E_CTX" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
508 ercd = trcv_msg( &rxptr, 2, TMO_FEVR );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
509 CYG_TEST_CHECK( E_CTX == ercd, "trcv_msg(FEVR) bad ercd !E_CTX" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
510 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
511 ercd = trcv_msg( &rxptr, 2, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
512 CYG_TEST_CHECK( E_TMOUT == ercd, "trcv_msg(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
513 ercd = prcv_msg( &rxptr, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
514 CYG_TEST_CHECK( E_TMOUT == ercd, "prcv_msg bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
515 ercd = ena_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
516 CYG_TEST_CHECK( E_OK == ercd, "ena_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
517 ercd = prcv_msg( &rxptr, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
518 CYG_TEST_CHECK( E_TMOUT == ercd, "prcv_msg bad ercd !E_TMOUT" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
519 ercd = trcv_msg( &rxptr, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
520 CYG_TEST_CHECK( E_TMOUT == ercd, "trcv_msg bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
521 ercd = trcv_msg( &rxptr, 2, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
522 CYG_TEST_CHECK( E_TMOUT == ercd, "trcv_msg(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
523 CYG_TEST_PASS( "bad calls: rcv_msg, trcv_msg with dis_dsp" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
524
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
525 // check ref_mbx with various states
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
526 ercd = ref_mbx( &mbx_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
527 CYG_TEST_CHECK( E_OK == ercd, "ref_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
528 CYG_TEST_CHECK( 0 == mbx_info.wtsk, "mbx.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
529 CYG_TEST_CHECK( NADR == mbx_info.pk_msg, "mbx peek should be NADR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
530 intercom = 0;
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
531 ercd = dly_tsk( delay ); // let task 2 start waiting
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
532 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
533 intercom = 1;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
534 ercd = ref_mbx( &mbx_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
535 CYG_TEST_CHECK( E_OK == ercd, "ref_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
536 CYG_TEST_CHECK( 0 != mbx_info.wtsk, "mbx.wtsk should be non0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
537 CYG_TEST_CHECK( NADR == mbx_info.pk_msg, "mbx peek should be NADR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
538 ercd = snd_msg( 2, msgptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
539 CYG_TEST_CHECK( E_OK == ercd, "snd_msg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
540 ercd = ref_mbx( &mbx_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
541 CYG_TEST_CHECK( E_OK == ercd, "ref_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
542 CYG_TEST_CHECK( 0 == mbx_info.wtsk, "mbx.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
543 #if 1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
544 CYG_TEST_CHECK( NADR == mbx_info.pk_msg, "mbx peek should be NADR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
545 #else // old, non-uITRON semantics
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
546 CYG_TEST_CHECK( msgptr == mbx_info.pk_msg, "mbx peek should be msgptr" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
547 #endif
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
548 ercd = dly_tsk( delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
549 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
550 ercd = ref_mbx( &mbx_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
551 CYG_TEST_CHECK( E_OK == ercd, "ref_mbx bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
552 CYG_TEST_CHECK( 0 == mbx_info.wtsk, "mbx.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
553 CYG_TEST_CHECK( NADR == mbx_info.pk_msg, "mbx peek should be NADR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
554 // fill the message box, expect E_QOVR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
555 for ( scratch = 0 ; scratch < 100 ; scratch++ ) {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
556 if ( E_OK != ( ercd = snd_msg( 2, msgptr ) ) )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
557 break;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
558 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
559 CYG_TEST_CHECK( (100 == scratch) || (E_QOVR == ercd),
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
560 "snd_msg bad ercd !E_QOVR/E_OK" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
561 // empty the message box, expect the right number and E_TMOUT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
562 for ( ; 1 ; scratch-- ) {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
563 if ( E_OK != ( ercd = prcv_msg( &rxptr, 2 ) ) )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
564 break;
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 CYG_TEST_CHECK( 0 == scratch, "rcv_msg count bad scratch!=0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
567 CYG_TEST_CHECK( E_TMOUT == ercd, "rcv_msg bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
568
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
569 CYG_TEST_PASS( "good calls: rcv_msg, snd_msg with ref_msg" );
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 // Fixed block memory pools: all the illegal argument combinations first
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
572 CYG_TEST_INFO( "Testing fixed block memory ops" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
573 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
574 ercd = rel_blf( -6, blfptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
575 CYG_TEST_CHECK( E_ID == ercd, "rel_blf bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
576 ercd = rel_blf( 99, blfptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
577 CYG_TEST_CHECK( E_ID == ercd, "rel_blf bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
578 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
579 ercd = rel_blf( 2, NULL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
580 CYG_TEST_CHECK( E_PAR == ercd, "rel_blf bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
581 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
582 ercd = rel_blf( 2, NADR );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
583 CYG_TEST_CHECK( E_PAR == ercd, "rel_blf bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
584 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
585 ercd = rel_blf( 2, blfptr ); // it did not come from a mpf
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
586 CYG_TEST_CHECK( E_PAR == ercd, "rel_blf bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
587 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
588 ercd = get_blf( &blfptr, -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
589 CYG_TEST_CHECK( E_ID == ercd, "get_blf bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
590 ercd = get_blf( &blfptr, 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
591 CYG_TEST_CHECK( E_ID == ercd, "get_blf bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
592 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
593 ercd = get_blf( NULL, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
594 CYG_TEST_CHECK( E_PAR == ercd, "get_blf bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
595 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
596 ercd = get_blf( NADR, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
597 CYG_TEST_CHECK( E_PAR == ercd, "get_blf bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
598 ercd = pget_blf( &blfptr, -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
599 CYG_TEST_CHECK( E_ID == ercd, "pget_blf bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
600 ercd = pget_blf( &blfptr, 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
601 CYG_TEST_CHECK( E_ID == ercd, "pget_blf bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
602 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
603 ercd = pget_blf( NULL, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
604 CYG_TEST_CHECK( E_PAR == ercd, "pget_blf bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
605 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
606 ercd = pget_blf( NADR, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
607 CYG_TEST_CHECK( E_PAR == ercd, "pget_blf bad ercd !E_PAR" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
608 ercd = tget_blf( &blfptr, -6, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
609 CYG_TEST_CHECK( E_ID == ercd, "tget_blf bad ercd !E_ID" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
610 ercd = tget_blf( &blfptr, 99, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
611 CYG_TEST_CHECK( E_ID == ercd, "tget_blf bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
612 ercd = tget_blf( &blfptr, 2, -999 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
613 CYG_TEST_CHECK( E_PAR == ercd, "tget_blf bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
614 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
615 ercd = tget_blf( NULL, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
616 CYG_TEST_CHECK( E_PAR == ercd, "tget_blf bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
617 #endif
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
618 ercd = tget_blf( NADR, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
619 CYG_TEST_CHECK( E_PAR == ercd, "tget_blf bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
620 ercd = ref_mpf( &mpf_info, -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
621 CYG_TEST_CHECK( E_ID == ercd, "ref_mpf bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
622 ercd = ref_mpf( &mpf_info, 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
623 CYG_TEST_CHECK( E_ID == ercd, "ref_mpf bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
624 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
625 ercd = ref_mpf( NULL, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
626 CYG_TEST_CHECK( E_PAR == ercd, "ref_mpf bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
627 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
628 ercd = ref_mpf( NADR, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
629 CYG_TEST_CHECK( E_PAR == ercd, "ref_mpf bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
630 CYG_TEST_PASS( "bad calls: rel_blf, [pt]get_blf, ref_mpf " );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
631 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
632
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
633 // check the waitable functions versus dispatch disable
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
634 ercd = pget_blf( &blfptr, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
635 CYG_TEST_CHECK( E_OK == ercd, "pget_blf bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
636 ercd = rel_blf( 2, blfptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
637 CYG_TEST_CHECK( E_OK == ercd, "rel_blf bad ercd" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
638 ercd = tget_blf( &blfptr, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
639 CYG_TEST_CHECK( E_OK == ercd, "tget_blf bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
640 ercd = dis_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
641 CYG_TEST_CHECK( E_OK == ercd, "dis_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
642 ercd = rel_blf( 2, blfptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
643 CYG_TEST_CHECK( E_OK == ercd, "rel_blf bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
644 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
645 ercd = get_blf( &blfptr, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
646 CYG_TEST_CHECK( E_CTX == ercd, "get_blf bad ercd !E_CTX" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
647 ercd = tget_blf( &blfptr, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
648 CYG_TEST_CHECK( E_CTX == ercd, "tget_blf bad ercd !E_CTX" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
649 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
650 ercd = ena_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
651 CYG_TEST_CHECK( E_OK == ercd, "ena_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
652 ercd = pget_blf( &blfptr, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
653 CYG_TEST_CHECK( E_OK == ercd, "pget_blf bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
654 ercd = rel_blf( 2, blfptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
655 CYG_TEST_CHECK( E_OK == ercd, "rel_blf bad ercd" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
656 ercd = tget_blf( &blfptr, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
657 CYG_TEST_CHECK( E_OK == ercd, "tget_blf bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
658 ercd = rel_blf( 2, blfptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
659 CYG_TEST_CHECK( E_OK == ercd, "rel_blf bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
660 // consume the whole thing then do it again, expecting E_TMOUT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
661 while ( E_OK == (ercd = pget_blf( &blfptr, 2 ) ) )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
662 continue;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
663 CYG_TEST_CHECK( E_TMOUT == ercd, "pget_blf bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
664 ercd = pget_blf( &blfptr, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
665 CYG_TEST_CHECK( E_TMOUT == ercd, "pget_blf bad ercd !E_TMOUT" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
666 ercd = tget_blf( &blfptr, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
667 CYG_TEST_CHECK( E_TMOUT == ercd, "tget_blf bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
668 ercd = tget_blf( &blfptr, 2, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
669 CYG_TEST_CHECK( E_TMOUT == ercd, "tget_blf(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
670 ercd = dis_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
671 CYG_TEST_CHECK( E_OK == ercd, "dis_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
672 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
673 ercd = get_blf( &blfptr, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
674 CYG_TEST_CHECK( E_CTX == ercd, "get_blf bad ercd !E_CTX" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
675 ercd = tget_blf( &blfptr, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
676 CYG_TEST_CHECK( E_CTX == ercd, "tget_blf bad ercd !E_CTX" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
677 ercd = tget_blf( &blfptr, 2, TMO_FEVR );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
678 CYG_TEST_CHECK( E_CTX == ercd, "tget_blf(FEVR) bad ercd !E_CTX" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
679 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
680 ercd = tget_blf( &blfptr, 2, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
681 CYG_TEST_CHECK( E_TMOUT == ercd, "tget_blf(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
682 ercd = ena_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
683 CYG_TEST_CHECK( E_OK == ercd, "ena_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
684 ercd = pget_blf( &blfptr, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
685 CYG_TEST_CHECK( E_TMOUT == ercd, "pget_blf bad ercd !E_TMOUT" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
686 ercd = tget_blf( &blfptr, 2, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
687 CYG_TEST_CHECK( E_TMOUT == ercd, "pget_blf bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
688 ercd = tget_blf( &blfptr, 2, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
689 CYG_TEST_CHECK( E_TMOUT == ercd, "tget_blf(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
690 CYG_TEST_PASS( "bad calls: rel_blf, [pt]get_blf with ena_dsp" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
691
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
692 // check ref_mpf with various states
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
693 ercd = ref_mpf( &mpf_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
694 CYG_TEST_CHECK( E_OK == ercd, "ref_mpf bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
695 CYG_TEST_CHECK( 0 == mpf_info.wtsk, "mpf.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
696 CYG_TEST_CHECK( 0 == mpf_info.frbcnt, "mpf.frbcnt should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
697 intercom = 0;
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
698 ercd = dly_tsk( delay ); // let task 2 start waiting
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
699 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
700 intercom = 1;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
701 ercd = ref_mpf( &mpf_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
702 CYG_TEST_CHECK( E_OK == ercd, "ref_mpf bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
703 CYG_TEST_CHECK( 0 != mpf_info.wtsk, "mpf.wtsk should be non0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
704 CYG_TEST_CHECK( 0 == mpf_info.frbcnt, "mpf.frbcnt should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
705 ercd = rel_blf( 2, blfptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
706 CYG_TEST_CHECK( E_OK == ercd, "rel_blf bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
707 ercd = ref_mpf( &mpf_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
708 CYG_TEST_CHECK( E_OK == ercd, "ref_mpf bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
709 CYG_TEST_CHECK( 0 == mpf_info.wtsk, "mpf.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
710 #if 1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
711 CYG_TEST_CHECK( 0 == mpf_info.frbcnt, "mpf.frbcnt should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
712 #else // old, non-uITRON semantics
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
713 CYG_TEST_CHECK( 0 != mpf_info.frbcnt, "mpf.frbcnt should be non0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
714 #endif
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
715 ercd = dly_tsk( delay ); // let task 2 start waiting
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
716 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
717 ercd = ref_mpf( &mpf_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
718 CYG_TEST_CHECK( E_OK == ercd, "ref_mpf bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
719 CYG_TEST_CHECK( 0 == mpf_info.wtsk, "mpf.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
720 CYG_TEST_CHECK( 0 == mpf_info.frbcnt, "mpf.frbcnt should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
721 CYG_TEST_PASS( "good calls: rel_blf, get_blf with ref_mpf" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
722
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
723 // Variable block memory pools; illegal arguments
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
724 CYG_TEST_INFO( "Testing variable block memory ops" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
725 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
726 ercd = rel_blk( -6, blkptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
727 CYG_TEST_CHECK( E_ID == ercd, "rel_blk bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
728 ercd = rel_blk( 99, blkptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
729 CYG_TEST_CHECK( E_ID == ercd, "rel_blk bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
730 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
731 ercd = rel_blk( 2, NULL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
732 CYG_TEST_CHECK( E_PAR == ercd, "rel_blk bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
733 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
734 ercd = rel_blk( 2, NADR );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
735 CYG_TEST_CHECK( E_PAR == ercd, "rel_blk bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
736 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
737 ercd = rel_blk( 2, blkptr ); // it did not come from a mpl
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
738 CYG_TEST_CHECK( E_PAR == ercd, "rel_blk bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
739 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
740 ercd = get_blk( &blkptr, -6, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
741 CYG_TEST_CHECK( E_ID == ercd, "get_blk bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
742 ercd = get_blk( &blkptr, 99, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
743 CYG_TEST_CHECK( E_ID == ercd, "get_blk bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
744 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
745 ercd = get_blk( NULL, 2, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
746 CYG_TEST_CHECK( E_PAR == ercd, "get_blk bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
747 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
748 ercd = get_blk( NADR, 2, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
749 CYG_TEST_CHECK( E_PAR == ercd, "get_blk bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
750 ercd = pget_blk( &blkptr, -6, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
751 CYG_TEST_CHECK( E_ID == ercd, "pget_blk bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
752 ercd = pget_blk( &blkptr, 99, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
753 CYG_TEST_CHECK( E_ID == ercd, "pget_blk bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
754 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
755 ercd = pget_blk( NULL, 2, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
756 CYG_TEST_CHECK( E_PAR == ercd, "pget_blk bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
757 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
758 ercd = pget_blk( NADR, 2, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
759 CYG_TEST_CHECK( E_PAR == ercd, "pget_blk bad ercd !E_PAR" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
760 ercd = tget_blk( &blkptr, -6, 100, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
761 CYG_TEST_CHECK( E_ID == ercd, "tget_blk bad ercd !E_ID" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
762 ercd = tget_blk( &blkptr, 99, 100, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
763 CYG_TEST_CHECK( E_ID == ercd, "tget_blk bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
764 ercd = tget_blk( &blkptr, 2, 100, -999 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
765 CYG_TEST_CHECK( E_PAR == ercd, "tget_blk bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
766 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
767 ercd = tget_blk( NULL, 2, 100, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
768 CYG_TEST_CHECK( E_PAR == ercd, "tget_blk bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
769 #endif
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
770 ercd = tget_blk( NADR, 2, 100, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
771 CYG_TEST_CHECK( E_PAR == ercd, "tget_blk bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
772 ercd = ref_mpl( &mpl_info, -6 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
773 CYG_TEST_CHECK( E_ID == ercd, "ref_mpl bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
774 ercd = ref_mpl( &mpl_info, 99 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
775 CYG_TEST_CHECK( E_ID == ercd, "ref_mpl bad ercd !E_ID" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
776 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
777 ercd = ref_mpl( NULL, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
778 CYG_TEST_CHECK( E_PAR == ercd, "ref_mpl bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
779 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
780 ercd = ref_mpl( NADR, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
781 CYG_TEST_CHECK( E_PAR == ercd, "ref_mpl bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
782 CYG_TEST_PASS( "bad calls: rel_blk, [pt]get_blk, ref_mpl " );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
783 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
784
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
785 // check the waitable functions versus dispatch disable
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
786 ercd = pget_blk( &blkptr, 2, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
787 CYG_TEST_CHECK( E_OK == ercd, "pget_blk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
788 ercd = rel_blk( 2, blkptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
789 CYG_TEST_CHECK( E_OK == ercd, "rel_blk bad ercd" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
790 ercd = tget_blk( &blkptr, 2, 100, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
791 CYG_TEST_CHECK( E_OK == ercd, "tget_blk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
792 ercd = dis_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
793 CYG_TEST_CHECK( E_OK == ercd, "dis_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
794 ercd = rel_blk( 2, blkptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
795 CYG_TEST_CHECK( E_OK == ercd, "rel_blk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
796 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
797 ercd = get_blk( &blkptr, 2, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
798 CYG_TEST_CHECK( E_CTX == ercd, "get_blk bad ercd !E_CTX" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
799 ercd = tget_blk( &blkptr, 2, 100, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
800 CYG_TEST_CHECK( E_CTX == ercd, "tget_blk bad ercd !E_CTX" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
801 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
802 ercd = ena_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
803 CYG_TEST_CHECK( E_OK == ercd, "ena_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
804 ercd = pget_blk( &blkptr, 2, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
805 CYG_TEST_CHECK( E_OK == ercd, "pget_blk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
806 ercd = rel_blk( 2, blkptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
807 CYG_TEST_CHECK( E_OK == ercd, "rel_blk bad ercd" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
808 ercd = tget_blk( &blkptr, 2, 100, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
809 CYG_TEST_CHECK( E_OK == ercd, "tget_blk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
810 ercd = rel_blk( 2, blkptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
811 CYG_TEST_CHECK( E_OK == ercd, "rel_blk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
812 // consume the whole thing then do it again, expecting E_TMOUT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
813 while ( E_OK == (ercd = pget_blk( &blkptr, 2, 100 ) ) )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
814 continue;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
815 CYG_TEST_CHECK( E_TMOUT == ercd, "pget_blk bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
816 ercd = pget_blk( &blkptr, 2, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
817 CYG_TEST_CHECK( E_TMOUT == ercd, "pget_blk bad ercd !E_TMOUT" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
818 ercd = tget_blk( &blkptr, 2, 100, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
819 CYG_TEST_CHECK( E_TMOUT == ercd, "tget_blk bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
820 ercd = tget_blk( &blkptr, 2, 100, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
821 CYG_TEST_CHECK( E_TMOUT == ercd, "tget_blk(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
822 ercd = dis_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
823 CYG_TEST_CHECK( E_OK == ercd, "dis_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
824 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
825 ercd = get_blk( &blkptr, 2, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
826 CYG_TEST_CHECK( E_CTX == ercd, "get_blk bad ercd !E_CTX" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
827 ercd = tget_blk( &blkptr, 2, 100, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
828 CYG_TEST_CHECK( E_CTX == ercd, "tget_blk bad ercd !E_CTX" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
829 ercd = tget_blk( &blkptr, 2, 100, TMO_FEVR );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
830 CYG_TEST_CHECK( E_CTX == ercd, "tget_blk(FEVR) bad ercd !E_CTX" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
831 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
832 ercd = tget_blk( &blkptr, 2, 100, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
833 CYG_TEST_CHECK( E_TMOUT == ercd, "tget_blk(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
834 ercd = ena_dsp();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
835 CYG_TEST_CHECK( E_OK == ercd, "ena_dsp bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
836 ercd = pget_blk( &blkptr, 2, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
837 CYG_TEST_CHECK( E_TMOUT == ercd, "pget_blk bad ercd !E_TMOUT" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
838 ercd = tget_blk( &blkptr, 2, 100, delay );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
839 CYG_TEST_CHECK( E_TMOUT == ercd, "pget_blk bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
840 ercd = tget_blk( &blkptr, 2, 100, TMO_POL );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
841 CYG_TEST_CHECK( E_TMOUT == ercd, "tget_blk(POL) bad ercd !E_TMOUT" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
842 CYG_TEST_PASS( "bad calls: rel_blk, [pt]get_blk with ena_dsp" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
843
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
844 // check ref_mpl with various states
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
845 ercd = ref_mpl( &mpl_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
846 CYG_TEST_CHECK( E_OK == ercd, "ref_mpl bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
847 CYG_TEST_CHECK( 0 == mpl_info.wtsk, "mpl.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
848 CYG_TEST_CHECK( mpl_info.maxsz <= mpl_info.frsz,
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
849 "mpl.maxsz not < mpl.frsz" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
850 intercom = 0;
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
851 ercd = dly_tsk( delay ); // let task 2 start waiting
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
852 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
853 intercom = 1;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
854 ercd = ref_mpl( &mpl_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
855 CYG_TEST_CHECK( E_OK == ercd, "ref_mpl bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
856 CYG_TEST_CHECK( 0 != mpl_info.wtsk, "mpl.wtsk should be non0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
857 ercd = rel_blk( 2, blkptr );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
858 CYG_TEST_CHECK( E_OK == ercd, "rel_blk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
859 ercd = ref_mpl( &mpl_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
860 CYG_TEST_CHECK( E_OK == ercd, "ref_mpl bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
861 CYG_TEST_CHECK( 0 == mpl_info.wtsk, "mpl.wtsk should be 0" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
862 ercd = dly_tsk( delay ); // let task 2 start waiting
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
863 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
864 ercd = ref_mpl( &mpl_info, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
865 CYG_TEST_CHECK( E_OK == ercd, "ref_mpl bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
866 CYG_TEST_CHECK( 0 == mpl_info.wtsk, "mpl.wtsk should be 0" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
867 CYG_TEST_PASS( "good calls: rel_blk, get_blk with ref_mpl" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
868
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
869 // all done
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
870 CYG_TEST_EXIT( "All done" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
871 ext_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
872 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
873
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
874
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
875
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
876 void task2( unsigned int arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
877 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
878 ER ercd;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
879 T_MSG *msgp = NULL;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
880 UINT flgval = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
881 VP blfp = NULL;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
882 VP blkp = NULL;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
883
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
884 CYG_TEST_INFO( "Task 2 running" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
885 ercd = get_tid( &scratch );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
886 CYG_TEST_CHECK( E_OK == ercd, "get_tid bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
887 CYG_TEST_CHECK( 2 == scratch, "tid not 2" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
888 if ( 222 != arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
889 CYG_TEST_FAIL( "Task 2 arg not 222" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
890
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
891 while ( intercom ) {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
892 ercd = rot_rdq( 0 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
893 CYG_TEST_CHECK( E_OK == ercd, "rot_rdq bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
894 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
895 ercd = wai_sem( 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
896 CYG_TEST_CHECK( E_OK == ercd, "wai_sem bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
897 while ( intercom ) {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
898 ercd = rot_rdq( 0 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
899 CYG_TEST_CHECK( E_OK == ercd, "rot_rdq bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
900 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
901 ercd = wai_flg( &flgval, 2, 99, TWF_ANDW );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
902 CYG_TEST_CHECK( E_OK == ercd, "wai_flg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
903 CYG_TEST_CHECK( 99 == (99 & flgval), "flg value no good" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
904 while ( intercom ) {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
905 ercd = rot_rdq( 0 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
906 CYG_TEST_CHECK( E_OK == ercd, "rot_rdq bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
907 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
908 ercd = rcv_msg( &msgp, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
909 CYG_TEST_CHECK( E_OK == ercd, "rcv_msg bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
910 CYG_TEST_CHECK( NULL != msgp, "no msg received" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
911 CYG_TEST_CHECK( NADR != msgp, "no msg received" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
912 while ( intercom ) {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
913 ercd = rot_rdq( 0 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
914 CYG_TEST_CHECK( E_OK == ercd, "rot_rdq bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
915 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
916 ercd = get_blf( &blfp, 2 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
917 CYG_TEST_CHECK( E_OK == ercd, "get_blf bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
918 CYG_TEST_CHECK( NULL != blfp, "no blf allocated" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
919 CYG_TEST_CHECK( NADR != blfp, "no blf allocated" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
920 while ( intercom ) {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
921 ercd = rot_rdq( 0 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
922 CYG_TEST_CHECK( E_OK == ercd, "rot_rdq bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
923 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
924 ercd = get_blk( &blkp, 2, 100 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
925 CYG_TEST_CHECK( E_OK == ercd, "get_blk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
926 CYG_TEST_CHECK( NULL != blkp, "no blk allocated" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
927 CYG_TEST_CHECK( NADR != blkp, "no blk allocated" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
928
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
929 ext_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
930 CYG_TEST_FAIL( "Task 2 failed to exit" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
931 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
932
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
933 void task3( unsigned int arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
934 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
935 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
936
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
937 void task4( unsigned int arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
938 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
939 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
940
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
941 #else // not enough (or too many) uITRON objects configured in
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
942 #define N_A_MSG "not enough uITRON objects to run test"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
943 #endif // not enough (or too many) uITRON objects configured in
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
944 #else // not C++ and some C++ specific options enabled
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
945 #define N_A_MSG "C++ specific options selected but this is C"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
946 #endif // not C++ and some C++ specific options enabled
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
947 #else // ! CYGVAR_KERNEL_COUNTERS_CLOCK - can't test without it
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
948 #define N_A_MSG "no CYGVAR_KERNEL_COUNTERS_CLOCK"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
949 #endif // ! CYGVAR_KERNEL_COUNTERS_CLOCK - can't test without it
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
950 #else // ! CYGFUN_KERNEL_THREADS_TIMER - can't test without it
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
951 #define N_A_MSG "no CYGFUN_KERNEL_THREADS_TIMER"
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
952 #endif // ! CYGFUN_KERNEL_THREADS_TIMER - can't test without it
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
953 #else // ! CYGIMP_THREAD_PRIORITY - can't test without it
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
954 #define N_A_MSG "no CYGSEM_KERNEL_SCHED_MLQUEUE"
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
955 #endif // ! CYGSEM_KERNEL_SCHED_MLQUEUE - can't test without it
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
956 #else // ! CYGPKG_UITRON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
957 #define N_A_MSG "uITRON Compatibility layer disabled"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
958 #endif // CYGPKG_UITRON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
959
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
960 #ifdef N_A_MSG
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
961 void
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
962 cyg_start( void )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
963 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
964 CYG_TEST_INIT();
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
965 CYG_TEST_NA( N_A_MSG );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
966 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
967 #endif // N_A_MSG defined ie. we are N/A.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
968
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
969 // EOF test2.c