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_DHP, ITEM_TYPE ) \
14 TEST_CASE( MoirQueue_DHP_michaelAlloc, ITEM_TYPE ) \
15 TEST_CASE( MoirQueue_DHP_seqcst, ITEM_TYPE ) \
16 TEST_CASE( MoirQueue_DHP_ic, ITEM_TYPE ) \
17 TEST_CASE( MoirQueue_DHP_stat, ITEM_TYPE )
19 #define CDSUNIT_TEST_MoirQueue \
20 CPPUNIT_TEST(MoirQueue_HP) \
21 CPPUNIT_TEST(MoirQueue_HP_michaelAlloc) \
22 CPPUNIT_TEST(MoirQueue_HP_seqcst) \
23 CPPUNIT_TEST(MoirQueue_HP_ic) \
24 CPPUNIT_TEST(MoirQueue_HP_stat) \
25 CPPUNIT_TEST(MoirQueue_DHP) \
26 CPPUNIT_TEST(MoirQueue_DHP_michaelAlloc) \
27 CPPUNIT_TEST(MoirQueue_DHP_seqcst) \
28 CPPUNIT_TEST(MoirQueue_DHP_ic) \
29 CPPUNIT_TEST(MoirQueue_DHP_stat)
32 #define CDSUNIT_DECLARE_MSQueue( ITEM_TYPE ) \
33 TEST_CASE( MSQueue_HP, ITEM_TYPE ) \
34 TEST_CASE( MSQueue_HP_michaelAlloc, ITEM_TYPE ) \
35 TEST_CASE( MSQueue_HP_seqcst, ITEM_TYPE ) \
36 TEST_CASE( MSQueue_HP_ic, ITEM_TYPE ) \
37 TEST_CASE( MSQueue_HP_stat, ITEM_TYPE ) \
38 TEST_CASE( MSQueue_DHP, ITEM_TYPE ) \
39 TEST_CASE( MSQueue_DHP_michaelAlloc, ITEM_TYPE ) \
40 TEST_CASE( MSQueue_DHP_seqcst, ITEM_TYPE ) \
41 TEST_CASE( MSQueue_DHP_ic, ITEM_TYPE ) \
42 TEST_CASE( MSQueue_DHP_stat, ITEM_TYPE )
44 #define CDSUNIT_TEST_MSQueue \
45 CPPUNIT_TEST(MSQueue_HP) \
46 CPPUNIT_TEST(MSQueue_HP_michaelAlloc) \
47 CPPUNIT_TEST(MSQueue_HP_seqcst) \
48 CPPUNIT_TEST(MSQueue_HP_ic) \
49 CPPUNIT_TEST(MSQueue_HP_stat) \
50 CPPUNIT_TEST(MSQueue_DHP) \
51 CPPUNIT_TEST(MSQueue_DHP_michaelAlloc) \
52 CPPUNIT_TEST(MSQueue_DHP_seqcst) \
53 CPPUNIT_TEST(MSQueue_DHP_ic) \
54 CPPUNIT_TEST(MSQueue_DHP_stat)
58 #define CDSUNIT_DECLARE_OptimisticQueue( ITEM_TYPE ) \
59 TEST_CASE(OptimisticQueue_HP, ITEM_TYPE ) \
60 TEST_CASE(OptimisticQueue_HP_michaelAlloc, ITEM_TYPE ) \
61 TEST_CASE(OptimisticQueue_HP_seqcst, ITEM_TYPE ) \
62 TEST_CASE(OptimisticQueue_HP_ic, ITEM_TYPE ) \
63 TEST_CASE(OptimisticQueue_HP_stat, ITEM_TYPE ) \
64 TEST_CASE(OptimisticQueue_DHP, ITEM_TYPE ) \
65 TEST_CASE(OptimisticQueue_DHP_michaelAlloc, ITEM_TYPE ) \
66 TEST_CASE(OptimisticQueue_DHP_seqcst, ITEM_TYPE ) \
67 TEST_CASE(OptimisticQueue_DHP_ic, ITEM_TYPE ) \
68 TEST_CASE(OptimisticQueue_DHP_stat, ITEM_TYPE )
70 #define CDSUNIT_TEST_OptimisticQueue \
71 CPPUNIT_TEST(OptimisticQueue_HP) \
72 CPPUNIT_TEST(OptimisticQueue_HP_michaelAlloc) \
73 CPPUNIT_TEST(OptimisticQueue_HP_seqcst) \
74 CPPUNIT_TEST(OptimisticQueue_HP_ic) \
75 CPPUNIT_TEST(OptimisticQueue_HP_stat) \
76 CPPUNIT_TEST(OptimisticQueue_DHP) \
77 CPPUNIT_TEST(OptimisticQueue_DHP_michaelAlloc) \
78 CPPUNIT_TEST(OptimisticQueue_DHP_seqcst) \
79 CPPUNIT_TEST(OptimisticQueue_DHP_ic) \
80 CPPUNIT_TEST(OptimisticQueue_DHP_stat)
84 #define CDSUNIT_DECLARE_BasketQueue( ITEM_TYPE ) \
85 TEST_CASE( BasketQueue_HP, ITEM_TYPE ) \
86 TEST_CASE( BasketQueue_HP_michaelAlloc, ITEM_TYPE ) \
87 TEST_CASE( BasketQueue_HP_seqcst, ITEM_TYPE ) \
88 TEST_CASE( BasketQueue_HP_ic, ITEM_TYPE ) \
89 TEST_CASE( BasketQueue_HP_stat, ITEM_TYPE ) \
90 TEST_CASE( BasketQueue_DHP, ITEM_TYPE ) \
91 TEST_CASE( BasketQueue_DHP_michaelAlloc, ITEM_TYPE ) \
92 TEST_CASE( BasketQueue_DHP_seqcst, ITEM_TYPE ) \
93 TEST_CASE( BasketQueue_DHP_ic, ITEM_TYPE ) \
94 TEST_CASE( BasketQueue_DHP_stat, ITEM_TYPE )
96 #define CDSUNIT_TEST_BasketQueue \
97 CPPUNIT_TEST(BasketQueue_HP) \
98 CPPUNIT_TEST(BasketQueue_HP_michaelAlloc) \
99 CPPUNIT_TEST(BasketQueue_HP_seqcst) \
100 CPPUNIT_TEST(BasketQueue_HP_ic) \
101 CPPUNIT_TEST(BasketQueue_HP_stat) \
102 CPPUNIT_TEST(BasketQueue_DHP) \
103 CPPUNIT_TEST(BasketQueue_DHP_michaelAlloc) \
104 CPPUNIT_TEST(BasketQueue_DHP_seqcst) \
105 CPPUNIT_TEST(BasketQueue_DHP_ic) \
106 CPPUNIT_TEST(BasketQueue_DHP_stat)
110 #define CDSUNIT_DECLARE_FCQueue( ITEM_TYPE ) \
111 TEST_CASE( FCQueue_deque, ITEM_TYPE ) \
112 TEST_CASE( FCQueue_deque_elimination, ITEM_TYPE ) \
113 TEST_CASE( FCQueue_deque_elimination_stat, ITEM_TYPE ) \
114 TEST_CASE( FCQueue_list, ITEM_TYPE ) \
115 TEST_CASE( FCQueue_list_elimination, ITEM_TYPE ) \
116 TEST_CASE( FCQueue_list_elimination_stat, ITEM_TYPE )
118 #define CDSUNIT_TEST_FCQueue \
119 CPPUNIT_TEST( FCQueue_deque) \
120 CPPUNIT_TEST( FCQueue_deque_elimination) \
121 CPPUNIT_TEST( FCQueue_deque_elimination_stat) \
122 CPPUNIT_TEST( FCQueue_list) \
123 CPPUNIT_TEST( FCQueue_list_elimination) \
124 CPPUNIT_TEST( FCQueue_list_elimination_stat)
128 #define CDSUNIT_DECLARE_FCDeque( ITEM_TYPE ) \
129 TEST_CASE( FCDequeL_default, ITEM_TYPE ) \
130 TEST_CASE( FCDequeL_mutex, ITEM_TYPE ) \
131 TEST_CASE( FCDequeL_stat, ITEM_TYPE ) \
132 TEST_CASE( FCDequeL_elimination, ITEM_TYPE ) \
133 TEST_CASE( FCDequeL_elimination_stat, ITEM_TYPE ) \
134 TEST_CASE( FCDequeL_boost, ITEM_TYPE ) \
135 TEST_CASE( FCDequeL_boost_stat, ITEM_TYPE ) \
136 TEST_CASE( FCDequeL_boost_elimination, ITEM_TYPE ) \
137 TEST_CASE( FCDequeL_boost_elimination_stat, ITEM_TYPE ) \
138 TEST_CASE( FCDequeR_default, ITEM_TYPE ) \
139 TEST_CASE( FCDequeR_mutex, ITEM_TYPE ) \
140 TEST_CASE( FCDequeR_stat, ITEM_TYPE ) \
141 TEST_CASE( FCDequeR_elimination, ITEM_TYPE ) \
142 TEST_CASE( FCDequeR_elimination_stat, ITEM_TYPE ) \
143 TEST_CASE( FCDequeR_boost, ITEM_TYPE ) \
144 TEST_CASE( FCDequeR_boost_stat, ITEM_TYPE ) \
145 TEST_CASE( FCDequeR_boost_elimination, ITEM_TYPE ) \
146 TEST_CASE( FCDequeR_boost_elimination_stat, ITEM_TYPE )
148 #define CDSUNIT_TEST_FCDeque \
149 CPPUNIT_TEST( FCDequeL_default ) \
150 CPPUNIT_TEST( FCDequeL_mutex ) \
151 CPPUNIT_TEST( FCDequeL_stat ) \
152 CPPUNIT_TEST( FCDequeL_elimination ) \
153 CPPUNIT_TEST( FCDequeL_elimination_stat ) \
154 CPPUNIT_TEST( FCDequeL_boost ) \
155 CPPUNIT_TEST( FCDequeL_boost_stat ) \
156 CPPUNIT_TEST( FCDequeL_boost_elimination ) \
157 CPPUNIT_TEST( FCDequeL_boost_elimination_stat ) \
158 CPPUNIT_TEST( FCDequeR_default ) \
159 CPPUNIT_TEST( FCDequeR_mutex ) \
160 CPPUNIT_TEST( FCDequeR_stat ) \
161 CPPUNIT_TEST( FCDequeR_elimination ) \
162 CPPUNIT_TEST( FCDequeR_elimination_stat ) \
163 CPPUNIT_TEST( FCDequeR_boost ) \
164 CPPUNIT_TEST( FCDequeR_boost_stat ) \
165 CPPUNIT_TEST( FCDequeR_boost_elimination ) \
166 CPPUNIT_TEST( FCDequeR_boost_elimination_stat )
170 #define CDSUNIT_DECLARE_RWQueue( ITEM_TYPE ) \
171 TEST_CASE( RWQueue_Spin, ITEM_TYPE ) \
172 TEST_CASE( RWQueue_Spin_ic, ITEM_TYPE ) \
173 TEST_CASE( RWQueue_mutex, ITEM_TYPE )
175 #define CDSUNIT_TEST_RWQueue \
176 CPPUNIT_TEST(RWQueue_Spin) \
177 CPPUNIT_TEST(RWQueue_Spin_ic) \
178 CPPUNIT_TEST(RWQueue_mutex)
181 #define CDSUNIT_DECLARE_TsigasCysleQueue( ITEM_TYPE ) \
182 TEST_BOUNDED(TsigasCycleQueue_dyn, ITEM_TYPE) \
183 TEST_BOUNDED(TsigasCycleQueue_dyn_michaelAlloc, ITEM_TYPE) \
184 TEST_BOUNDED(TsigasCycleQueue_dyn_ic, ITEM_TYPE)
186 #define CDSUNIT_TEST_TsigasCysleQueue \
187 CPPUNIT_TEST(TsigasCycleQueue_dyn) \
188 CPPUNIT_TEST(TsigasCycleQueue_dyn_michaelAlloc) \
189 CPPUNIT_TEST(TsigasCycleQueue_dyn_ic)
192 // VyukovMPMCCycleQueue
193 #define CDSUNIT_DECLARE_VyukovMPMCCycleQueue( ITEM_TYPE ) \
194 TEST_BOUNDED(VyukovMPMCCycleQueue_dyn, ITEM_TYPE) \
195 TEST_BOUNDED(VyukovMPMCCycleQueue_dyn_michaelAlloc, ITEM_TYPE) \
196 TEST_BOUNDED(VyukovMPMCCycleQueue_dyn_ic, ITEM_TYPE)
198 #define CDSUNIT_TEST_VyukovMPMCCycleQueue \
199 CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn) \
200 CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn_michaelAlloc) \
201 CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn_ic)
204 #define CDSUNIT_DECLARE_SegmentedQueue( ITEM_TYPE ) \
205 TEST_SEGMENTED( SegmentedQueue_HP_spin, ITEM_TYPE ) \
206 TEST_SEGMENTED( SegmentedQueue_HP_spin_padding, ITEM_TYPE ) \
207 TEST_SEGMENTED( SegmentedQueue_HP_spin_stat, ITEM_TYPE ) \
208 TEST_SEGMENTED( SegmentedQueue_HP_mutex, ITEM_TYPE ) \
209 TEST_SEGMENTED( SegmentedQueue_HP_mutex_padding, ITEM_TYPE ) \
210 TEST_SEGMENTED( SegmentedQueue_HP_mutex_stat, ITEM_TYPE ) \
211 TEST_SEGMENTED( SegmentedQueue_DHP_spin, ITEM_TYPE ) \
212 TEST_SEGMENTED( SegmentedQueue_DHP_spin_padding, ITEM_TYPE ) \
213 TEST_SEGMENTED( SegmentedQueue_DHP_spin_stat, ITEM_TYPE ) \
214 TEST_SEGMENTED( SegmentedQueue_DHP_mutex, ITEM_TYPE ) \
215 TEST_SEGMENTED( SegmentedQueue_DHP_mutex_padding, ITEM_TYPE ) \
216 TEST_SEGMENTED( SegmentedQueue_DHP_mutex_stat, ITEM_TYPE )
218 #define CDSUNIT_TEST_SegmentedQueue \
219 CPPUNIT_TEST( SegmentedQueue_HP_spin ) \
220 CPPUNIT_TEST( SegmentedQueue_HP_spin_padding ) \
221 CPPUNIT_TEST( SegmentedQueue_HP_spin_stat ) \
222 CPPUNIT_TEST( SegmentedQueue_HP_mutex ) \
223 CPPUNIT_TEST( SegmentedQueue_HP_mutex_padding ) \
224 CPPUNIT_TEST( SegmentedQueue_HP_mutex_stat ) \
225 CPPUNIT_TEST( SegmentedQueue_DHP_spin ) \
226 CPPUNIT_TEST( SegmentedQueue_DHP_spin_padding ) \
227 CPPUNIT_TEST( SegmentedQueue_DHP_spin_stat ) \
228 CPPUNIT_TEST( SegmentedQueue_DHP_mutex ) \
229 CPPUNIT_TEST( SegmentedQueue_DHP_mutex_padding ) \
230 CPPUNIT_TEST( SegmentedQueue_DHP_mutex_stat )
233 #define CDSUNIT_DECLARE_StdQueue( ITEM_TYPE ) \
234 TEST_CASE( StdQueue_deque_Spinlock, ITEM_TYPE ) \
235 TEST_CASE( StdQueue_list_Spinlock, ITEM_TYPE ) \
236 TEST_CASE( StdQueue_deque_BoostMutex, ITEM_TYPE ) \
237 TEST_CASE( StdQueue_list_BoostMutex, ITEM_TYPE )
239 #define CDSUNIT_TEST_StdQueue \
240 CPPUNIT_TEST(StdQueue_deque_Spinlock) \
241 CPPUNIT_TEST(StdQueue_list_Spinlock) \
242 CPPUNIT_TEST(StdQueue_deque_BoostMutex) \
243 CPPUNIT_TEST(StdQueue_list_BoostMutex)
246 #endif // #ifndef CDSUNIT_QUEUE_DEFS_H