Changed cds_std namespace to std, removed cds/details/std directory, use STL headers...
[libcds.git] / tests / unit / queue / queue_defs.h
1 //$$CDS-header$$
2
3 #ifndef __CDSUNIT_QUEUE_DEFS_H
4 #define __CDSUNIT_QUEUE_DEFS_H
5
6 // MoirQueue
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 )
23
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)
40
41 // MSQueue
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 )
58
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)
75
76
77 // OptimisticQueue
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 )
89
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)
101
102
103 // BasketQueue
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 )
120
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)
137
138
139 // FCQueue
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 )
147
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)
155
156
157 // FCDeque
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 )
177
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 )
197
198
199 // RWQueue
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 )
204
205 #define CDSUNIT_TEST_RWQueue \
206     CPPUNIT_TEST(RWQueue_Spin) \
207     CPPUNIT_TEST(RWQueue_Spin_ic) \
208     CPPUNIT_TEST(RWQueue_Spin_stat)
209
210
211 // MichalDeque
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)
229
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 )
247
248
249 // TsigasCycleQueue
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)
254
255 #define CDSUNIT_TEST_TsigasCysleQueue \
256     CPPUNIT_TEST(TsigasCycleQueue_dyn) \
257     CPPUNIT_TEST(TsigasCycleQueue_dyn_michaelAlloc) \
258     CPPUNIT_TEST(TsigasCycleQueue_dyn_ic)
259
260
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)
266
267 #define CDSUNIT_TEST_VyukovMPMCCycleQueue \
268     CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn) \
269     CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn_michaelAlloc) \
270     CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn_ic)
271
272 // SegmentedQueue
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 )
282
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 )
292
293
294 // std::queue
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 )
300
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)
306
307
308 #endif // #ifndef __CDSUNIT_QUEUE_DEFS_H