annotate packages/compat/uitron/current/tests/test4.c @ 64:c38311975d4f ecos-sw-2000-01-28

Merge from eCos master repository on 2000-01-28-04:28:11-GMT
author jlarmour
date Fri, 28 Jan 2000 04:59:39 +0000
parents 443894e2e912
children bf00f99aec69
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 // test4.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 four
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 //===========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
8 //####COPYRIGHTBEGIN####
64
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
9 //
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
10 // -------------------------------------------
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
11 // The contents of this file are subject to the Red Hat eCos Public License
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
12 // Version 1.0 (the "License"); you may not use this file except in
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
13 // compliance with the License. You may obtain a copy of the License at
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
14 // http://sourceware.cygnus.com/ecos
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
15 //
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
16 // Software distributed under the License is distributed on an
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
17 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
18 // License for the specific language governing rights and limitations under
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
19 // the License.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
20 //
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
21 // The Original Code is eCos - Embedded Configurable Operating System,
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
22 // released September 30, 1998.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
23 //
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
24 // The Initial Developer of the Original Code is Red Hat.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
25 // Portions created by Red Hat are
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
26 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
27 // All Rights Reserved.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
28 // -------------------------------------------
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
29 //
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
30 //####COPYRIGHTEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
31 //===========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
32 //#####DESCRIPTIONBEGIN####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
33 //
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
34 // Author(s): dsm
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
35 // Contributors: dsm
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
36 // Date: 1998-06-12
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
37 // Purpose: uITRON API testing
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
38 // Description:
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 //####DESCRIPTIONEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
41 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
42 //===========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
43
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
44 #include <pkgconf/uitron.h> // uITRON setup CYGNUM_UITRON_SEMAS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
45 // CYGPKG_UITRON et al
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
46 #include <cyg/infra/testcase.h> // testing infrastructure
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 #ifdef CYGPKG_UITRON // we DO want the uITRON package
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 #ifdef CYGSEM_KERNEL_SCHED_MLQUEUE // we DO want prioritized threads
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 #ifdef CYGFUN_KERNEL_THREADS_TIMER // we DO want timout-able calls
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
53
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
54 #ifdef CYGVAR_KERNEL_COUNTERS_CLOCK // we DO want the realtime clock
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 // 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
57 #if defined( __cplusplus ) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
58 (!defined( CYGIMP_UITRON_INLINE_FUNCS ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
59 !defined( CYGIMP_UITRON_CPP_OUTLINE_FUNCS) )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
60
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
61 // =================== TEST CONFIGURATION ===================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
62 #if \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
63 /* test configuration for enough tasks */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
64 (CYGNUM_UITRON_TASKS >= 4) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
65 (CYGNUM_UITRON_TASKS < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
66 (CYGNUM_UITRON_START_TASKS == 1) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
67 ( !defined(CYGPKG_UITRON_TASKS_CREATE_DELETE) || \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
68 CYGNUM_UITRON_TASKS_INITIALLY >= 4 ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
69 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
70 /* test configuration for enough cyclic handlers */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
71 defined( CYGPKG_UITRON_CYCLICS ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
72 (CYGNUM_UITRON_CYCLICS >= 3) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
73 (CYGNUM_UITRON_CYCLICS < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
74 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
75 /* test configuration for enough alarm handlers */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
76 defined( CYGPKG_UITRON_ALARMS ) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
77 (CYGNUM_UITRON_ALARMS >= 3) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
78 (CYGNUM_UITRON_ALARMS < 90) && \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
79 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
80 /* the end of the large #if statement */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
81 1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
82
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
83 // ============================ END ============================
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
86
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
87 #include <cyg/compat/uitron/uit_func.h> // uITRON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
88
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
89 externC void
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
90 cyg_package_start( void )
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 CYG_TEST_INIT();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
93 CYG_TEST_INFO( "Calling cyg_uitron_start()" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
94 cyg_uitron_start();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
95 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
96
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
97 volatile int intercount = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
98 INT scratch;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
99
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
100 void hand1(void)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
101 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
102 CYG_TEST_INFO("Handler 1 called");
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
103 intercount++;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
104 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
105
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
106 void hand2(void)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
107 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
108 CYG_TEST_CHECK( 2 == intercount, "handler out of sync" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
109 CYG_TEST_INFO("Handler 2 called");
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
110 intercount++;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
111 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
112
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
113 void task1( unsigned int arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
114 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
115 ER ercd;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
116
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
117 T_DCYC dcyc;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
118 T_DALM dalm;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
119 T_RCYC rcyc;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
120 T_RALM ralm;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
121
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
122 unsigned int tm;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
123
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
124 static char foo[] = "Test message";
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
125 VP info = (VP)foo;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
126
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
127 // Increase times when running on HW since overhead of GDB packet
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
128 // acknowledgements may cause tests of timing to fail.
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
129 if (cyg_test_is_simulator)
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
130 tm = 1;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
131 else
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
132 tm = 4;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
133
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
134 CYG_TEST_INFO( "Task 1 running" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
135 ercd = get_tid( &scratch );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
136 CYG_TEST_CHECK( E_OK == ercd, "get_tid bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
137 CYG_TEST_CHECK( 1 == scratch, "tid not 1" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
138
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
139 dcyc.exinf = (VP)info;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
140 dcyc.cycatr = TA_HLNG;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
141 dcyc.cychdr = (FP)&hand1;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
142 dcyc.cycact = TCY_INI; // bad
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
143 dcyc.cyctim = 2;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
144
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
145 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
146 ercd = def_cyc(3, &dcyc);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
147 CYG_TEST_CHECK( E_PAR == ercd, "def_cyc bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
148 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
149
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
150 dcyc.cycact = TCY_OFF; // make good
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
151 dcyc.cyctim = 0; // bad
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
152
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
153 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
154 ercd = def_cyc(3, &dcyc);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
155 CYG_TEST_CHECK( E_PAR == ercd, "def_cyc bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
156 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
157
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
158 dcyc.cyctim = 1; // make good
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
159
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
160 ercd = def_cyc(3, &dcyc);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
161 CYG_TEST_CHECK( E_OK == ercd, "def_cyc bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
162
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
163 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
164 ercd = def_cyc(-6, &dcyc);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
165 CYG_TEST_CHECK( E_PAR == ercd, "def_cyc bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
166 ercd = def_cyc(99, &dcyc);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
167 CYG_TEST_CHECK( E_PAR == ercd, "def_cyc bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
168
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
169 ercd = act_cyc(-6, TCY_OFF);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
170 CYG_TEST_CHECK( E_PAR == ercd, "act_cyc bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
171 ercd = act_cyc(99, TCY_OFF);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
172 CYG_TEST_CHECK( E_PAR == ercd, "act_cyc bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
173 ercd = act_cyc( 3, ~0);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
174 CYG_TEST_CHECK( E_PAR == ercd, "act_cyc bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
175
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
176 ercd = ref_cyc(&rcyc, -6);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
177 CYG_TEST_CHECK( E_PAR == ercd, "ref_cyc bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
178 ercd = ref_cyc(&rcyc, 99);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
179 CYG_TEST_CHECK( E_PAR == ercd, "ref_cyc bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
180 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
181 ercd = ref_cyc(NULL, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
182 CYG_TEST_CHECK( E_PAR == ercd, "ref_cyc bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
183 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
184 ercd = ref_cyc(NADR, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
185 CYG_TEST_CHECK( E_PAR == ercd, "ref_cyc bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
186 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
187
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
188 ercd = def_cyc(3, (T_DCYC *)NADR);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
189 CYG_TEST_CHECK( E_OK == ercd, "def_cyc bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
190 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
191 ercd = ref_cyc(&rcyc, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
192 CYG_TEST_CHECK( E_NOEXS == ercd, "ref_cyc bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
193 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
194
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
195 CYG_TEST_PASS( "bad calls: def_cyc, act_cyc, ref_cyc" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
196
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
197 dalm.exinf = (VP)info;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
198 dalm.almatr = TA_HLNG;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
199 dalm.almhdr = (FP)&hand2;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
200 dalm.tmmode = ~0; // bad
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
201 dalm.almtim = 20;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
202
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
203 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
204 ercd = def_alm(3, &dalm);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
205 CYG_TEST_CHECK( E_PAR == ercd, "def_alm bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
206 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
207
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
208 dalm.tmmode = TTM_REL; // make good
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
209 dalm.almtim = 0; // bad
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
210
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
211 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
212 ercd = def_alm(3, &dalm);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
213 CYG_TEST_CHECK( E_PAR == ercd, "def_alm bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
214 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
215
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
216 dalm.almtim = 1000; // make good
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
217
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
218 ercd = def_alm(3, &dalm);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
219 CYG_TEST_CHECK( E_OK == ercd, "def_alm bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
220
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
221 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
222 ercd = ref_alm(&ralm, -6);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
223 CYG_TEST_CHECK( E_PAR == ercd, "ref_alm bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
224 ercd = ref_alm(&ralm, 99);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
225 CYG_TEST_CHECK( E_PAR == ercd, "ref_alm bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
226 #ifndef CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
227 ercd = ref_alm(NULL, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
228 CYG_TEST_CHECK( E_PAR == ercd, "ref_alm bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
229 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
230 ercd = ref_alm(NADR, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
231 CYG_TEST_CHECK( E_PAR == ercd, "ref_alm bad ercd !E_PAR" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
232
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
233 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
234 ercd = def_alm(3, (T_DALM *)NADR);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
235 CYG_TEST_CHECK( E_OK == ercd, "def_cyc bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
236 #ifdef CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
237 ercd = ref_alm(&ralm, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
238 CYG_TEST_CHECK( E_NOEXS == ercd, "ref_cyc bad ercd !E_NOEXS" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
239 #endif // we can test bad param error returns
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
240
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
241 CYG_TEST_PASS( "bad calls: def_alm, act_alm, ref_alm" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
242
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
243 dcyc.exinf = (VP)info;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
244 dcyc.cycatr = TA_HLNG;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
245 dcyc.cychdr = (FP)&hand1;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
246 dcyc.cycact = TCY_ON;
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
247 dcyc.cyctim = 50*tm;
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
248
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
249 ercd = def_cyc(3, &dcyc);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
250 CYG_TEST_CHECK( E_OK == ercd, "ref_cyc bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
251 ercd = ref_cyc(&rcyc, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
252 CYG_TEST_CHECK( E_OK == ercd, "ref_cyc bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
253 CYG_TEST_CHECK( info == rcyc.exinf, "rcyc.exinf should be info" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
254 CYG_TEST_CHECK( 45*tm < rcyc.lfttim, "rcyc.lfttim too small" );
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
255 CYG_TEST_CHECK( rcyc.lfttim <= 50*tm, "rcyc.lfttim too big" );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
256 CYG_TEST_CHECK( TCY_ON == rcyc.cycact, "rcyc.cycact should be TCY_ON" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
257 ercd = act_cyc(3, TCY_OFF);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
258 CYG_TEST_CHECK( E_OK == ercd, "act_cyc bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
259 ercd = ref_cyc(&rcyc, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
260 CYG_TEST_CHECK( E_OK == ercd, "ref_cyc bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
261 CYG_TEST_CHECK( info == rcyc.exinf, "rcyc.exinf should be info" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
262 CYG_TEST_CHECK( 45*tm < rcyc.lfttim, "rcyc.lfttim too small" );
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
263 CYG_TEST_CHECK( rcyc.lfttim <= 50*tm, "rcyc.lfttim too big" );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
264 CYG_TEST_CHECK( TCY_OFF == rcyc.cycact, "rcyc.cycact should be TCY_OFF" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
265 ercd = act_cyc(3, TCY_ON);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
266 CYG_TEST_CHECK( E_OK == ercd, "act_cyc bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
267
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
268 CYG_TEST_PASS("good calls: def_cyc, act_cyc, ref_cyc");
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
269
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
270 dalm.exinf = (VP)info;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
271 dalm.almatr = TA_HLNG;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
272 dalm.almhdr = (FP)&hand2;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
273 dalm.tmmode = TTM_REL;
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
274 dalm.almtim = 120*tm;
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
275
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
276 ercd = def_alm(3, &dalm);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
277 CYG_TEST_CHECK( E_OK == ercd, "def_alm bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
278 ercd = ref_alm(&ralm, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
279 CYG_TEST_CHECK( E_OK == ercd, "ref_alm bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
280 CYG_TEST_CHECK( info == ralm.exinf, "ralm.exinf should be info" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
281 CYG_TEST_CHECK( 115*tm < ralm.lfttim, "ralm.lfttim too small" );
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
282 CYG_TEST_CHECK( ralm.lfttim <= 120*tm, "ralm.lfttim too big" );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
283
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
284 // Expect handlers to be called at approximate times
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
285 // time intercount
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
286 // tm*50 hand1 0
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
287 // tm*100 hand1 1
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
288 // tm*120 hand2 2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
289 // tm*150 hand1 3
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
290
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
291 ercd = dly_tsk(160*tm);
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
292 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
293 CYG_TEST_CHECK( 4 == intercount, "handlers not both called" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
294
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
295 ercd = act_cyc(3, TCY_OFF);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
296 CYG_TEST_CHECK( E_OK == ercd, "act_cyc(off) bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
297
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
298 ercd = dly_tsk(60*tm); // enough for at least one tick
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
299 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
300 CYG_TEST_CHECK( 4 == intercount, "cyclic not disabled" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
301
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
302 // approx time now 220, so we expect a cycle in about 30 ticks
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
303 ercd = act_cyc(3, TCY_ON);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
304 CYG_TEST_CHECK( E_OK == ercd, "act_cyc(on) bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
305 ercd = ref_cyc(&rcyc, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
306 CYG_TEST_CHECK( E_OK == ercd, "ref_cyc bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
307 CYG_TEST_CHECK( info == rcyc.exinf, "rcyc.exinf should be info" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
308 CYG_TEST_CHECK( 25*tm < rcyc.lfttim, "rcyc.lfttim too small" );
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
309 CYG_TEST_CHECK( rcyc.lfttim <= 35*tm, "rcyc.lfttim too big" );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
310 CYG_TEST_CHECK( TCY_ON == rcyc.cycact, "rcyc.cycact should be TCY_ON" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
311
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
312 // now resynchronize with right now:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
313 ercd = act_cyc(3, TCY_ON|TCY_INI);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
314 CYG_TEST_CHECK( E_OK == ercd, "act_cyc(on) bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
315 ercd = ref_cyc(&rcyc, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
316 CYG_TEST_CHECK( E_OK == ercd, "ref_cyc bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
317 CYG_TEST_CHECK( info == rcyc.exinf, "rcyc.exinf should be info" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
318 CYG_TEST_CHECK( 45*tm < rcyc.lfttim, "rcyc.lfttim too small" );
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
319 CYG_TEST_CHECK( rcyc.lfttim <= 50*tm, "rcyc.lfttim too big" );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
320 CYG_TEST_CHECK( TCY_ON == rcyc.cycact, "rcyc.cycact should be TCY_ON" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
321
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
322 // wait a bit and check that time marches on, or even down
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
323 ercd = dly_tsk(10*tm);
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
324 CYG_TEST_CHECK( E_OK == ercd, "dly_tsk bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
325 ercd = ref_cyc(&rcyc, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
326 CYG_TEST_CHECK( E_OK == ercd, "ref_cyc bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
327 CYG_TEST_CHECK( info == rcyc.exinf, "rcyc.exinf should be info" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
328 CYG_TEST_CHECK( 35*tm < rcyc.lfttim, "rcyc.lfttim too small" );
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
329 CYG_TEST_CHECK( rcyc.lfttim <= 45*tm, "rcyc.lfttim too big" );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
330 CYG_TEST_CHECK( TCY_ON == rcyc.cycact, "rcyc.cycact should be TCY_ON" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
331
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
332 // now turn it off and re-synch with right now:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
333 ercd = act_cyc(3, TCY_OFF|TCY_INI);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
334 CYG_TEST_CHECK( E_OK == ercd, "act_cyc(on) bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
335 ercd = ref_cyc(&rcyc, 3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
336 CYG_TEST_CHECK( E_OK == ercd, "ref_cyc bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
337 CYG_TEST_CHECK( info == rcyc.exinf, "rcyc.exinf should be info" );
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
338 CYG_TEST_CHECK( 45*tm < rcyc.lfttim, "rcyc.lfttim too small" );
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
339 CYG_TEST_CHECK( rcyc.lfttim <= 50*tm, "rcyc.lfttim too big" );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
340 CYG_TEST_CHECK( TCY_OFF == rcyc.cycact, "rcyc.cycact should be TCY_OFF" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
341
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
342 ercd = act_cyc(3, TCY_OFF);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
343 CYG_TEST_CHECK( E_OK == ercd, "act_cyc(on) bad ercd" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
344
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
345 CYG_TEST_PASS("good calls: def_cyc, act_cyc, ref_cyc, def_alm, ref_alm");
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
346
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
347 // all done
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
348 CYG_TEST_EXIT( "All done" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
349 ext_tsk();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
350 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
351
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
352
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
353
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
354 void task2( unsigned int arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
355 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
356 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
357
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
358 void task3( unsigned int arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
359 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
360 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
361
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
362 void task4( unsigned int arg )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
363 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
364 }
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 #else // not enough (or too many) uITRON objects configured in
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
367 #define N_A_MSG "not enough uITRON objects to run test"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
368 #endif // not enough (or too many) uITRON objects configured in
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
369 #else // not C++ and some C++ specific options enabled
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
370 #define N_A_MSG "C++ specific options selected but this is C"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
371 #endif // not C++ and some C++ specific options enabled
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
372 #else // ! CYGVAR_KERNEL_COUNTERS_CLOCK - can't test without it
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
373 #define N_A_MSG "no CYGVAR_KERNEL_COUNTERS_CLOCK"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
374 #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
375 #else // ! CYGFUN_KERNEL_THREADS_TIMER - can't test without it
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
376 #define N_A_MSG "no CYGFUN_KERNEL_THREADS_TIMER"
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
377 #endif // ! CYGFUN_KERNEL_THREADS_TIMER - can't test without it
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
378 #else // ! CYGIMP_THREAD_PRIORITY - can't test without it
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
379 #define N_A_MSG "no CYGSEM_KERNEL_SCHED_MLQUEUE"
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
380 #endif // ! CYGSEM_KERNEL_SCHED_MLQUEUE - can't test without it
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
381 #else // ! CYGPKG_UITRON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
382 #define N_A_MSG "uITRON Compatibility layer disabled"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
383 #endif // CYGPKG_UITRON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
384
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
385 #ifdef N_A_MSG
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
386 void
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
387 cyg_start( void )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
388 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
389 CYG_TEST_INIT();
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
390 CYG_TEST_NA( N_A_MSG );
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
391 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
392 #endif // N_A_MSG defined ie. we are N/A.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
393
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
394 // EOF test4.c