3 #ifndef __CDSUNIT_QUEUE_DEFS_H
4 #define __CDSUNIT_QUEUE_DEFS_H
7 #define CDSUNIT_DECLARE_MoirQueue( ITEM_TYPE ) \
8 TEST_CASE( MoirQueue_HP, ITEM_TYPE ) \
9 TEST_CASE( MoirQueue_HP_michaelAlloc, ITEM_TYPE ) \
10 TEST_CASE( MoirQueue_HP_seqcst, ITEM_TYPE ) \
11 TEST_CASE( MoirQueue_HP_ic, ITEM_TYPE ) \
12 TEST_CASE( MoirQueue_HP_stat, ITEM_TYPE ) \
13 TEST_CASE( MoirQueue_HRC, ITEM_TYPE ) \
14 TEST_CASE( MoirQueue_HRC_michaelAlloc, ITEM_TYPE ) \
15 TEST_CASE( MoirQueue_HRC_seqcst, ITEM_TYPE ) \
16 TEST_CASE( MoirQueue_HRC_ic, ITEM_TYPE ) \
17 TEST_CASE( MoirQueue_HRC_stat, ITEM_TYPE ) \
18 TEST_CASE( MoirQueue_PTB, ITEM_TYPE ) \
19 TEST_CASE( MoirQueue_PTB_michaelAlloc, ITEM_TYPE ) \
20 TEST_CASE( MoirQueue_PTB_seqcst, ITEM_TYPE ) \
21 TEST_CASE( MoirQueue_PTB_ic, ITEM_TYPE ) \
22 TEST_CASE( MoirQueue_PTB_stat, ITEM_TYPE )
24 #define CDSUNIT_TEST_MoirQueue \
25 CPPUNIT_TEST(MoirQueue_HP) \
26 CPPUNIT_TEST(MoirQueue_HP_michaelAlloc) \
27 CPPUNIT_TEST(MoirQueue_HP_seqcst) \
28 CPPUNIT_TEST(MoirQueue_HP_ic) \
29 CPPUNIT_TEST(MoirQueue_HP_stat) \
30 CPPUNIT_TEST(MoirQueue_HRC) \
31 CPPUNIT_TEST(MoirQueue_HRC_michaelAlloc) \
32 CPPUNIT_TEST(MoirQueue_HRC_seqcst) \
33 CPPUNIT_TEST(MoirQueue_HRC_ic) \
34 CPPUNIT_TEST(MoirQueue_HRC_stat) \
35 CPPUNIT_TEST(MoirQueue_PTB) \
36 CPPUNIT_TEST(MoirQueue_PTB_michaelAlloc) \
37 CPPUNIT_TEST(MoirQueue_PTB_seqcst) \
38 CPPUNIT_TEST(MoirQueue_PTB_ic) \
39 CPPUNIT_TEST(MoirQueue_PTB_stat)
42 #define CDSUNIT_DECLARE_MSQueue( ITEM_TYPE ) \
43 TEST_CASE( MSQueue_HP, ITEM_TYPE ) \
44 TEST_CASE( MSQueue_HP_michaelAlloc, ITEM_TYPE ) \
45 TEST_CASE( MSQueue_HP_seqcst, ITEM_TYPE ) \
46 TEST_CASE( MSQueue_HP_ic, ITEM_TYPE ) \
47 TEST_CASE( MSQueue_HP_stat, ITEM_TYPE ) \
48 TEST_CASE( MSQueue_HRC, ITEM_TYPE ) \
49 TEST_CASE( MSQueue_HRC_michaelAlloc, ITEM_TYPE ) \
50 TEST_CASE( MSQueue_HRC_seqcst, ITEM_TYPE ) \
51 TEST_CASE( MSQueue_HRC_ic, ITEM_TYPE ) \
52 TEST_CASE( MSQueue_HRC_stat, ITEM_TYPE ) \
53 TEST_CASE( MSQueue_PTB, ITEM_TYPE ) \
54 TEST_CASE( MSQueue_PTB_michaelAlloc, ITEM_TYPE ) \
55 TEST_CASE( MSQueue_PTB_seqcst, ITEM_TYPE ) \
56 TEST_CASE( MSQueue_PTB_ic, ITEM_TYPE ) \
57 TEST_CASE( MSQueue_PTB_stat, ITEM_TYPE )
59 #define CDSUNIT_TEST_MSQueue \
60 CPPUNIT_TEST(MSQueue_HP) \
61 CPPUNIT_TEST(MSQueue_HP_michaelAlloc) \
62 CPPUNIT_TEST(MSQueue_HP_seqcst) \
63 CPPUNIT_TEST(MSQueue_HP_ic) \
64 CPPUNIT_TEST(MSQueue_HP_stat) \
65 CPPUNIT_TEST(MSQueue_HRC) \
66 CPPUNIT_TEST(MSQueue_HRC_michaelAlloc) \
67 CPPUNIT_TEST(MSQueue_HRC_seqcst) \
68 CPPUNIT_TEST(MSQueue_HRC_ic) \
69 CPPUNIT_TEST(MSQueue_HRC_stat) \
70 CPPUNIT_TEST(MSQueue_PTB) \
71 CPPUNIT_TEST(MSQueue_PTB_michaelAlloc) \
72 CPPUNIT_TEST(MSQueue_PTB_seqcst) \
73 CPPUNIT_TEST(MSQueue_PTB_ic) \
74 CPPUNIT_TEST(MSQueue_PTB_stat)
78 #define CDSUNIT_DECLARE_OptimisticQueue( ITEM_TYPE ) \
79 TEST_CASE(OptimisticQueue_HP, ITEM_TYPE ) \
80 TEST_CASE(OptimisticQueue_HP_michaelAlloc, ITEM_TYPE ) \
81 TEST_CASE(OptimisticQueue_HP_seqcst, ITEM_TYPE ) \
82 TEST_CASE(OptimisticQueue_HP_ic, ITEM_TYPE ) \
83 TEST_CASE(OptimisticQueue_HP_stat, ITEM_TYPE ) \
84 TEST_CASE(OptimisticQueue_PTB, ITEM_TYPE ) \
85 TEST_CASE(OptimisticQueue_PTB_michaelAlloc, ITEM_TYPE ) \
86 TEST_CASE(OptimisticQueue_PTB_seqcst, ITEM_TYPE ) \
87 TEST_CASE(OptimisticQueue_PTB_ic, ITEM_TYPE ) \
88 TEST_CASE(OptimisticQueue_PTB_stat, ITEM_TYPE )
90 #define CDSUNIT_TEST_OptimisticQueue \
91 CPPUNIT_TEST(OptimisticQueue_HP) \
92 CPPUNIT_TEST(OptimisticQueue_HP_michaelAlloc) \
93 CPPUNIT_TEST(OptimisticQueue_HP_seqcst) \
94 CPPUNIT_TEST(OptimisticQueue_HP_ic) \
95 CPPUNIT_TEST(OptimisticQueue_HP_stat) \
96 CPPUNIT_TEST(OptimisticQueue_PTB) \
97 CPPUNIT_TEST(OptimisticQueue_PTB_michaelAlloc) \
98 CPPUNIT_TEST(OptimisticQueue_PTB_seqcst) \
99 CPPUNIT_TEST(OptimisticQueue_PTB_ic) \
100 CPPUNIT_TEST(OptimisticQueue_PTB_stat)
104 #define CDSUNIT_DECLARE_BasketQueue( ITEM_TYPE ) \
105 TEST_CASE( BasketQueue_HP, ITEM_TYPE ) \
106 TEST_CASE( BasketQueue_HP_michaelAlloc, ITEM_TYPE ) \
107 TEST_CASE( BasketQueue_HP_seqcst, ITEM_TYPE ) \
108 TEST_CASE( BasketQueue_HP_ic, ITEM_TYPE ) \
109 TEST_CASE( BasketQueue_HP_stat, ITEM_TYPE ) \
110 TEST_CASE( BasketQueue_HRC, ITEM_TYPE ) \
111 TEST_CASE( BasketQueue_HRC_michaelAlloc, ITEM_TYPE ) \
112 TEST_CASE( BasketQueue_HRC_seqcst, ITEM_TYPE ) \
113 TEST_CASE( BasketQueue_HRC_ic, ITEM_TYPE ) \
114 TEST_CASE( BasketQueue_HRC_stat, ITEM_TYPE ) \
115 TEST_CASE( BasketQueue_PTB, ITEM_TYPE ) \
116 TEST_CASE( BasketQueue_PTB_michaelAlloc, ITEM_TYPE ) \
117 TEST_CASE( BasketQueue_PTB_seqcst, ITEM_TYPE ) \
118 TEST_CASE( BasketQueue_PTB_ic, ITEM_TYPE ) \
119 TEST_CASE( BasketQueue_PTB_stat, ITEM_TYPE )
121 #define CDSUNIT_TEST_BasketQueue \
122 CPPUNIT_TEST(BasketQueue_HP) \
123 CPPUNIT_TEST(BasketQueue_HP_michaelAlloc) \
124 CPPUNIT_TEST(BasketQueue_HP_seqcst) \
125 CPPUNIT_TEST(BasketQueue_HP_ic) \
126 CPPUNIT_TEST(BasketQueue_HP_stat) \
127 CPPUNIT_TEST(BasketQueue_HRC) \
128 CPPUNIT_TEST(BasketQueue_HRC_michaelAlloc) \
129 CPPUNIT_TEST(BasketQueue_HRC_seqcst) \
130 CPPUNIT_TEST(BasketQueue_HRC_ic) \
131 CPPUNIT_TEST(BasketQueue_HRC_stat) \
132 CPPUNIT_TEST(BasketQueue_PTB) \
133 CPPUNIT_TEST(BasketQueue_PTB_michaelAlloc) \
134 CPPUNIT_TEST(BasketQueue_PTB_seqcst) \
135 CPPUNIT_TEST(BasketQueue_PTB_ic) \
136 CPPUNIT_TEST(BasketQueue_PTB_stat)
140 #define CDSUNIT_DECLARE_FCQueue( ITEM_TYPE ) \
141 TEST_CASE( FCQueue_deque, ITEM_TYPE ) \
142 TEST_CASE( FCQueue_deque_elimination, ITEM_TYPE ) \
143 TEST_CASE( FCQueue_deque_elimination_stat, ITEM_TYPE ) \
144 TEST_CASE( FCQueue_list, ITEM_TYPE ) \
145 TEST_CASE( FCQueue_list_elimination, ITEM_TYPE ) \
146 TEST_CASE( FCQueue_list_elimination_stat, ITEM_TYPE )
148 #define CDSUNIT_TEST_FCQueue \
149 CPPUNIT_TEST( FCQueue_deque) \
150 CPPUNIT_TEST( FCQueue_deque_elimination) \
151 CPPUNIT_TEST( FCQueue_deque_elimination_stat) \
152 CPPUNIT_TEST( FCQueue_list) \
153 CPPUNIT_TEST( FCQueue_list_elimination) \
154 CPPUNIT_TEST( FCQueue_list_elimination_stat)
158 #define CDSUNIT_DECLARE_FCDeque( ITEM_TYPE ) \
159 TEST_CASE( FCDequeL_default, ITEM_TYPE ) \
160 TEST_CASE( FCDequeL_mutex, ITEM_TYPE ) \
161 TEST_CASE( FCDequeL_stat, ITEM_TYPE ) \
162 TEST_CASE( FCDequeL_elimination, ITEM_TYPE ) \
163 TEST_CASE( FCDequeL_elimination_stat, ITEM_TYPE ) \
164 TEST_CASE( FCDequeL_boost, ITEM_TYPE ) \
165 TEST_CASE( FCDequeL_boost_stat, ITEM_TYPE ) \
166 TEST_CASE( FCDequeL_boost_elimination, ITEM_TYPE ) \
167 TEST_CASE( FCDequeL_boost_elimination_stat, ITEM_TYPE ) \
168 TEST_CASE( FCDequeR_default, ITEM_TYPE ) \
169 TEST_CASE( FCDequeR_mutex, ITEM_TYPE ) \
170 TEST_CASE( FCDequeR_stat, ITEM_TYPE ) \
171 TEST_CASE( FCDequeR_elimination, ITEM_TYPE ) \
172 TEST_CASE( FCDequeR_elimination_stat, ITEM_TYPE ) \
173 TEST_CASE( FCDequeR_boost, ITEM_TYPE ) \
174 TEST_CASE( FCDequeR_boost_stat, ITEM_TYPE ) \
175 TEST_CASE( FCDequeR_boost_elimination, ITEM_TYPE ) \
176 TEST_CASE( FCDequeR_boost_elimination_stat, ITEM_TYPE )
178 #define CDSUNIT_TEST_FCDeque \
179 CPPUNIT_TEST( FCDequeL_default ) \
180 CPPUNIT_TEST( FCDequeL_mutex ) \
181 CPPUNIT_TEST( FCDequeL_stat ) \
182 CPPUNIT_TEST( FCDequeL_elimination ) \
183 CPPUNIT_TEST( FCDequeL_elimination_stat ) \
184 CPPUNIT_TEST( FCDequeL_boost ) \
185 CPPUNIT_TEST( FCDequeL_boost_stat ) \
186 CPPUNIT_TEST( FCDequeL_boost_elimination ) \
187 CPPUNIT_TEST( FCDequeL_boost_elimination_stat ) \
188 CPPUNIT_TEST( FCDequeR_default ) \
189 CPPUNIT_TEST( FCDequeR_mutex ) \
190 CPPUNIT_TEST( FCDequeR_stat ) \
191 CPPUNIT_TEST( FCDequeR_elimination ) \
192 CPPUNIT_TEST( FCDequeR_elimination_stat ) \
193 CPPUNIT_TEST( FCDequeR_boost ) \
194 CPPUNIT_TEST( FCDequeR_boost_stat ) \
195 CPPUNIT_TEST( FCDequeR_boost_elimination ) \
196 CPPUNIT_TEST( FCDequeR_boost_elimination_stat )
200 #define CDSUNIT_DECLARE_RWQueue( ITEM_TYPE ) \
201 TEST_CASE( RWQueue_Spin, ITEM_TYPE ) \
202 TEST_CASE( RWQueue_Spin_ic, ITEM_TYPE ) \
203 TEST_CASE( RWQueue_Spin_stat, ITEM_TYPE )
205 #define CDSUNIT_TEST_RWQueue \
206 CPPUNIT_TEST(RWQueue_Spin) \
207 CPPUNIT_TEST(RWQueue_Spin_ic) \
208 CPPUNIT_TEST(RWQueue_Spin_stat)
212 #define CDSUNIT_DECLARE_MichaelDeque( ITEM_TYPE ) \
213 TEST_BOUNDED(MichaelDequeL_HP, ITEM_TYPE) \
214 TEST_BOUNDED(MichaelDequeL_HP_ic, ITEM_TYPE) \
215 TEST_BOUNDED(MichaelDequeL_HP_michaelAlloc, ITEM_TYPE) \
216 TEST_BOUNDED(MichaelDequeL_HP_stat, ITEM_TYPE) \
217 TEST_BOUNDED(MichaelDequeL_PTB, ITEM_TYPE) \
218 TEST_BOUNDED(MichaelDequeL_PTB_ic, ITEM_TYPE) \
219 TEST_BOUNDED(MichaelDequeL_PTB_michaelAlloc, ITEM_TYPE) \
220 TEST_BOUNDED(MichaelDequeL_PTB_stat, ITEM_TYPE) \
221 TEST_BOUNDED(MichaelDequeR_HP, ITEM_TYPE) \
222 TEST_BOUNDED(MichaelDequeR_HP_ic, ITEM_TYPE) \
223 TEST_BOUNDED(MichaelDequeR_HP_michaelAlloc, ITEM_TYPE) \
224 TEST_BOUNDED(MichaelDequeR_HP_stat, ITEM_TYPE) \
225 TEST_BOUNDED(MichaelDequeR_PTB, ITEM_TYPE) \
226 TEST_BOUNDED(MichaelDequeR_PTB_ic, ITEM_TYPE) \
227 TEST_BOUNDED(MichaelDequeR_PTB_michaelAlloc, ITEM_TYPE) \
228 TEST_BOUNDED(MichaelDequeR_PTB_stat, ITEM_TYPE)
230 #define CDSUNIT_TEST_MichaelDeque \
231 CPPUNIT_TEST(MichaelDequeL_HP ) \
232 CPPUNIT_TEST(MichaelDequeL_HP_ic ) \
233 CPPUNIT_TEST(MichaelDequeL_HP_michaelAlloc ) \
234 CPPUNIT_TEST(MichaelDequeL_HP_stat ) \
235 CPPUNIT_TEST(MichaelDequeL_PTB ) \
236 CPPUNIT_TEST(MichaelDequeL_PTB_ic ) \
237 CPPUNIT_TEST(MichaelDequeL_PTB_michaelAlloc ) \
238 CPPUNIT_TEST(MichaelDequeL_PTB_stat ) \
239 CPPUNIT_TEST(MichaelDequeR_HP ) \
240 CPPUNIT_TEST(MichaelDequeR_HP_ic ) \
241 CPPUNIT_TEST(MichaelDequeR_HP_michaelAlloc ) \
242 CPPUNIT_TEST(MichaelDequeR_HP_stat ) \
243 CPPUNIT_TEST(MichaelDequeR_PTB ) \
244 CPPUNIT_TEST(MichaelDequeR_PTB_ic ) \
245 CPPUNIT_TEST(MichaelDequeR_PTB_michaelAlloc ) \
246 CPPUNIT_TEST(MichaelDequeR_PTB_stat )
250 #define CDSUNIT_DECLARE_TsigasCysleQueue( ITEM_TYPE ) \
251 TEST_BOUNDED(TsigasCycleQueue_dyn, ITEM_TYPE) \
252 TEST_BOUNDED(TsigasCycleQueue_dyn_michaelAlloc, ITEM_TYPE) \
253 TEST_BOUNDED(TsigasCycleQueue_dyn_ic, ITEM_TYPE)
255 #define CDSUNIT_TEST_TsigasCysleQueue \
256 CPPUNIT_TEST(TsigasCycleQueue_dyn) \
257 CPPUNIT_TEST(TsigasCycleQueue_dyn_michaelAlloc) \
258 CPPUNIT_TEST(TsigasCycleQueue_dyn_ic)
261 // VyukovMPMCCycleQueue
262 #define CDSUNIT_DECLARE_VyukovMPMCCycleQueue( ITEM_TYPE ) \
263 TEST_BOUNDED(VyukovMPMCCycleQueue_dyn, ITEM_TYPE) \
264 TEST_BOUNDED(VyukovMPMCCycleQueue_dyn_michaelAlloc, ITEM_TYPE) \
265 TEST_BOUNDED(VyukovMPMCCycleQueue_dyn_ic, ITEM_TYPE)
267 #define CDSUNIT_TEST_VyukovMPMCCycleQueue \
268 CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn) \
269 CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn_michaelAlloc) \
270 CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn_ic)
273 #define CDSUNIT_DECLARE_SegmentedQueue( ITEM_TYPE ) \
274 TEST_SEGMENTED( SegmentedQueue_HP_spin, ITEM_TYPE ) \
275 TEST_SEGMENTED( SegmentedQueue_HP_spin_stat, ITEM_TYPE ) \
276 TEST_SEGMENTED( SegmentedQueue_HP_mutex, ITEM_TYPE ) \
277 TEST_SEGMENTED( SegmentedQueue_HP_mutex_stat, ITEM_TYPE ) \
278 TEST_SEGMENTED( SegmentedQueue_PTB_spin, ITEM_TYPE ) \
279 TEST_SEGMENTED( SegmentedQueue_PTB_spin_stat, ITEM_TYPE ) \
280 TEST_SEGMENTED( SegmentedQueue_PTB_mutex, ITEM_TYPE ) \
281 TEST_SEGMENTED( SegmentedQueue_PTB_mutex_stat, ITEM_TYPE )
283 #define CDSUNIT_TEST_SegmentedQueue \
284 CPPUNIT_TEST( SegmentedQueue_HP_spin ) \
285 CPPUNIT_TEST( SegmentedQueue_HP_spin_stat ) \
286 CPPUNIT_TEST( SegmentedQueue_HP_mutex ) \
287 CPPUNIT_TEST( SegmentedQueue_HP_mutex_stat ) \
288 CPPUNIT_TEST( SegmentedQueue_PTB_spin ) \
289 CPPUNIT_TEST( SegmentedQueue_PTB_spin_stat ) \
290 CPPUNIT_TEST( SegmentedQueue_PTB_mutex ) \
291 CPPUNIT_TEST( SegmentedQueue_PTB_mutex_stat )
295 #define CDSUNIT_DECLARE_StdQueue( ITEM_TYPE ) \
296 TEST_CASE( StdQueue_deque_Spinlock, ITEM_TYPE ) \
297 TEST_CASE( StdQueue_list_Spinlock, ITEM_TYPE ) \
298 TEST_CASE( StdQueue_deque_BoostMutex, ITEM_TYPE ) \
299 TEST_CASE( StdQueue_list_BoostMutex, ITEM_TYPE )
301 #define CDSUNIT_TEST_StdQueue \
302 CPPUNIT_TEST(StdQueue_deque_Spinlock) \
303 CPPUNIT_TEST(StdQueue_list_Spinlock) \
304 CPPUNIT_TEST(StdQueue_deque_BoostMutex) \
305 CPPUNIT_TEST(StdQueue_list_BoostMutex)
308 #endif // #ifndef __CDSUNIT_QUEUE_DEFS_H