3 #ifndef CDSTEST_HDR_INTRSUSIVE_MSQUEUE_H
4 #define CDSTEST_HDR_INTRSUSIVE_MSQUEUE_H
6 #include "cppunit/cppunit_proxy.h"
7 #include <cds/intrusive/details/base.h>
10 namespace ci = cds::intrusive;
11 namespace co = cds::opt;
13 class IntrusiveQueueHeaderTest: public CppUnitMini::TestCase
17 template <typename Base>
18 struct base_hook_item : public Base
28 template <typename Member>
29 struct member_hook_item
43 void operator ()( T * p )
50 // Test for MSQueue and derivatives
51 template <class Queue>
54 typedef typename Queue::value_type value_type;
55 value_type v1, v2, v3;
59 CPPUNIT_ASSERT( q.empty() );
64 CPPUNIT_ASSERT( q.push(v1));
65 CPPUNIT_ASSERT( !q.empty() );
66 CPPUNIT_ASSERT( q.push(v2));
67 CPPUNIT_ASSERT( !q.empty() );
68 CPPUNIT_ASSERT( q.push(v3));
69 CPPUNIT_ASSERT( !q.empty() );
71 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
72 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
73 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
78 CPPUNIT_ASSERT( pv != nullptr );
79 CPPUNIT_ASSERT( pv->nVal == 1 );
80 CPPUNIT_ASSERT( !q.empty() );
81 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
82 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
83 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
87 CPPUNIT_ASSERT( pv != nullptr );
88 CPPUNIT_ASSERT( pv->nVal == 2 );
89 CPPUNIT_ASSERT( !q.empty() );
90 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
91 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
92 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
96 CPPUNIT_ASSERT( pv != nullptr );
97 CPPUNIT_ASSERT( pv->nVal == 3 );
98 CPPUNIT_ASSERT( q.empty() );
99 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
100 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
101 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
104 CPPUNIT_ASSERT( pv == nullptr );
105 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
106 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
107 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
111 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
112 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
113 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
116 // Test for BasketQueue and derivatives
117 template <class Queue>
120 typedef typename Queue::value_type value_type;
121 value_type v1, v2, v3, v4;
125 CPPUNIT_ASSERT( q.empty() );
131 CPPUNIT_ASSERT( q.push(v1));
132 CPPUNIT_ASSERT( !q.empty() );
133 CPPUNIT_ASSERT( q.push(v2));
134 CPPUNIT_ASSERT( !q.empty() );
135 CPPUNIT_ASSERT( q.push(v3));
136 CPPUNIT_ASSERT( !q.empty() );
137 CPPUNIT_ASSERT( q.push(v4));
138 CPPUNIT_ASSERT( !q.empty() );
140 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
141 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
142 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
143 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
148 CPPUNIT_ASSERT( pv != nullptr );
149 CPPUNIT_ASSERT( pv->nVal == 1 );
150 CPPUNIT_ASSERT( !q.empty() );
151 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
152 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
153 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
154 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
158 CPPUNIT_ASSERT( pv != nullptr );
159 CPPUNIT_ASSERT( pv->nVal == 2 );
160 CPPUNIT_ASSERT( !q.empty() );
161 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
162 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
163 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
164 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
168 CPPUNIT_ASSERT( pv != nullptr );
169 CPPUNIT_ASSERT( pv->nVal == 3 );
170 CPPUNIT_ASSERT( !q.empty() );
171 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
172 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
173 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
174 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
178 CPPUNIT_ASSERT( pv != nullptr );
179 CPPUNIT_ASSERT( pv->nVal == 4 );
180 CPPUNIT_ASSERT( q.empty() );
181 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
182 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
183 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
184 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
188 CPPUNIT_CHECK( pv == nullptr );
189 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
190 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
191 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
192 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
196 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
197 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
198 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
199 CPPUNIT_CHECK( v4.nDisposeCount == 1 );
202 // Test for a queue in what dequeued item should be manually disposed
203 template <class Queue>
206 typedef typename Queue::value_type value_type;
207 value_type v1, v2, v3;
209 CPPUNIT_ASSERT( q.empty() );
214 CPPUNIT_ASSERT( q.push(v1));
215 CPPUNIT_ASSERT( !q.empty() );
216 CPPUNIT_ASSERT( q.push(v2));
217 CPPUNIT_ASSERT( !q.empty() );
218 CPPUNIT_ASSERT( q.push(v3));
219 CPPUNIT_ASSERT( !q.empty() );
221 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
222 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
223 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
227 CPPUNIT_ASSERT( pv != nullptr );
228 CPPUNIT_ASSERT( pv->nVal == 1 );
229 CPPUNIT_ASSERT( !q.empty() );
230 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
231 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
232 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
235 CPPUNIT_ASSERT( pv != nullptr );
236 CPPUNIT_ASSERT( pv->nVal == 2 );
237 CPPUNIT_ASSERT( !q.empty() );
238 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
239 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
240 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
243 CPPUNIT_ASSERT( pv != nullptr );
244 CPPUNIT_ASSERT( pv->nVal == 3 );
245 CPPUNIT_ASSERT( q.empty() );
246 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
247 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
248 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
251 CPPUNIT_ASSERT( pv == nullptr );
252 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
253 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
254 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
256 CPPUNIT_ASSERT( q.push(v1));
257 CPPUNIT_ASSERT( !q.empty() );
258 CPPUNIT_ASSERT( q.push(v2));
259 CPPUNIT_ASSERT( !q.empty() );
260 CPPUNIT_ASSERT( q.push(v3));
261 CPPUNIT_ASSERT( !q.empty() );
263 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
264 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
265 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
267 CPPUNIT_CHECK( q.empty() );
268 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
269 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
270 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
274 void test_MSQueue_HP_default();
275 void test_MSQueue_HP_default_ic();
276 void test_MSQueue_HP_default_stat();
277 void test_MSQueue_HP_base();
278 void test_MSQueue_HP_member();
279 void test_MSQueue_HP_base_ic();
280 void test_MSQueue_HP_member_ic();
281 void test_MSQueue_HP_base_stat();
282 void test_MSQueue_HP_member_stat();
283 void test_MSQueue_HP_base_align();
284 void test_MSQueue_HP_member_align();
285 void test_MSQueue_HP_base_noalign();
286 void test_MSQueue_HP_member_noalign();
287 void test_MSQueue_HP_base_cachealign();
288 void test_MSQueue_HP_member_cachealign();
289 void test_MSQueue_DHP_base();
290 void test_MSQueue_DHP_member();
291 void test_MSQueue_DHP_base_ic();
292 void test_MSQueue_DHP_member_ic();
293 void test_MSQueue_DHP_base_stat();
294 void test_MSQueue_DHP_member_stat();
295 void test_MSQueue_DHP_base_align();
296 void test_MSQueue_DHP_member_align();
297 void test_MSQueue_DHP_base_noalign();
298 void test_MSQueue_DHP_member_noalign();
299 void test_MSQueue_DHP_base_cachealign();
300 void test_MSQueue_DHP_member_cachealign();
302 void test_MoirQueue_HP_default();
303 void test_MoirQueue_HP_default_ic();
304 void test_MoirQueue_HP_default_stat();
305 void test_MoirQueue_HP_base();
306 void test_MoirQueue_HP_member();
307 void test_MoirQueue_HP_base_ic();
308 void test_MoirQueue_HP_member_ic();
309 void test_MoirQueue_HP_base_stat();
310 void test_MoirQueue_HP_member_stat();
311 void test_MoirQueue_HP_base_align();
312 void test_MoirQueue_HP_member_align();
313 void test_MoirQueue_HP_base_noalign();
314 void test_MoirQueue_HP_member_noalign();
315 void test_MoirQueue_HP_base_cachealign();
316 void test_MoirQueue_HP_member_cachealign();
317 void test_MoirQueue_DHP_base();
318 void test_MoirQueue_DHP_member();
319 void test_MoirQueue_DHP_base_ic();
320 void test_MoirQueue_DHP_member_ic();
321 void test_MoirQueue_DHP_base_stat();
322 void test_MoirQueue_DHP_member_stat();
323 void test_MoirQueue_DHP_base_align();
324 void test_MoirQueue_DHP_member_align();
325 void test_MoirQueue_DHP_base_noalign();
326 void test_MoirQueue_DHP_member_noalign();
327 void test_MoirQueue_DHP_base_cachealign();
328 void test_MoirQueue_DHP_member_cachealign();
330 void test_OptimisticQueue_HP_default();
331 void test_OptimisticQueue_HP_default_ic();
332 void test_OptimisticQueue_HP_default_stat();
333 void test_OptimisticQueue_HP_base();
334 void test_OptimisticQueue_HP_member();
335 void test_OptimisticQueue_HP_base_ic();
336 void test_OptimisticQueue_HP_member_ic();
337 void test_OptimisticQueue_HP_base_stat();
338 void test_OptimisticQueue_HP_member_stat();
339 void test_OptimisticQueue_HP_base_align();
340 void test_OptimisticQueue_HP_member_align();
341 void test_OptimisticQueue_HP_base_noalign();
342 void test_OptimisticQueue_HP_member_noalign();
343 void test_OptimisticQueue_HP_base_cachealign();
344 void test_OptimisticQueue_HP_member_cachealign();
345 void test_OptimisticQueue_DHP_base();
346 void test_OptimisticQueue_DHP_member();
347 void test_OptimisticQueue_DHP_base_ic();
348 void test_OptimisticQueue_DHP_member_ic();
349 void test_OptimisticQueue_DHP_base_stat();
350 void test_OptimisticQueue_DHP_member_stat();
351 void test_OptimisticQueue_DHP_base_align();
352 void test_OptimisticQueue_DHP_member_align();
353 void test_OptimisticQueue_DHP_base_noalign();
354 void test_OptimisticQueue_DHP_member_noalign();
355 void test_OptimisticQueue_DHP_base_cachealign();
356 void test_OptimisticQueue_DHP_member_cachealign();
358 void test_BasketQueue_HP_default();
359 void test_BasketQueue_HP_default_ic();
360 void test_BasketQueue_HP_default_stat();
361 void test_BasketQueue_HP_base();
362 void test_BasketQueue_HP_member();
363 void test_BasketQueue_HP_base_ic();
364 void test_BasketQueue_HP_member_ic();
365 void test_BasketQueue_HP_base_stat();
366 void test_BasketQueue_HP_member_stat();
367 void test_BasketQueue_HP_base_align();
368 void test_BasketQueue_HP_member_align();
369 void test_BasketQueue_HP_base_noalign();
370 void test_BasketQueue_HP_member_noalign();
371 void test_BasketQueue_HP_base_cachealign();
372 void test_BasketQueue_HP_member_cachealign();
373 void test_BasketQueue_DHP_base();
374 void test_BasketQueue_DHP_member();
375 void test_BasketQueue_DHP_base_ic();
376 void test_BasketQueue_DHP_member_ic();
377 void test_BasketQueue_DHP_base_stat();
378 void test_BasketQueue_DHP_member_stat();
379 void test_BasketQueue_DHP_base_align();
380 void test_BasketQueue_DHP_member_align();
381 void test_BasketQueue_DHP_base_noalign();
382 void test_BasketQueue_DHP_member_noalign();
383 void test_BasketQueue_DHP_base_cachealign();
384 void test_BasketQueue_DHP_member_cachealign();
386 void test_TsigasCycleQueue_static();
387 void test_TsigasCycleQueue_static_ic();
388 void test_TsigasCycleQueue_dyn();
389 void test_TsigasCycleQueue_dyn_ic();
391 void test_VyukovMPMCCycleQueue_static();
392 void test_VyukovMPMCCycleQueue_static_ic();
393 void test_VyukovMPMCCycleQueue_dyn();
394 void test_VyukovMPMCCycleQueue_dyn_ic();
396 CPPUNIT_TEST_SUITE(IntrusiveQueueHeaderTest)
397 CPPUNIT_TEST(test_MSQueue_HP_default)
398 CPPUNIT_TEST(test_MSQueue_HP_default_ic)
399 CPPUNIT_TEST(test_MSQueue_HP_default_stat)
400 CPPUNIT_TEST(test_MSQueue_HP_base)
401 CPPUNIT_TEST(test_MSQueue_HP_member)
402 CPPUNIT_TEST(test_MSQueue_HP_base_ic)
403 CPPUNIT_TEST(test_MSQueue_HP_member_ic)
404 CPPUNIT_TEST(test_MSQueue_HP_base_stat)
405 CPPUNIT_TEST(test_MSQueue_HP_member_stat)
406 CPPUNIT_TEST(test_MSQueue_HP_base_align)
407 CPPUNIT_TEST(test_MSQueue_HP_member_align)
408 CPPUNIT_TEST(test_MSQueue_HP_base_noalign)
409 CPPUNIT_TEST(test_MSQueue_HP_member_noalign)
410 CPPUNIT_TEST(test_MSQueue_HP_base_cachealign)
411 CPPUNIT_TEST(test_MSQueue_HP_member_cachealign)
412 CPPUNIT_TEST(test_MSQueue_DHP_base)
413 CPPUNIT_TEST(test_MSQueue_DHP_member)
414 CPPUNIT_TEST(test_MSQueue_DHP_base_ic)
415 CPPUNIT_TEST(test_MSQueue_DHP_member_ic)
416 CPPUNIT_TEST(test_MSQueue_DHP_base_stat)
417 CPPUNIT_TEST(test_MSQueue_DHP_member_stat)
418 CPPUNIT_TEST(test_MSQueue_DHP_base_align)
419 CPPUNIT_TEST(test_MSQueue_DHP_member_align)
420 CPPUNIT_TEST(test_MSQueue_DHP_base_noalign)
421 CPPUNIT_TEST(test_MSQueue_DHP_member_noalign)
422 CPPUNIT_TEST(test_MSQueue_DHP_base_cachealign)
423 CPPUNIT_TEST(test_MSQueue_DHP_member_cachealign)
425 CPPUNIT_TEST(test_MoirQueue_HP_default)
426 CPPUNIT_TEST(test_MoirQueue_HP_default_ic)
427 CPPUNIT_TEST(test_MoirQueue_HP_default_stat)
428 CPPUNIT_TEST(test_MoirQueue_HP_base)
429 CPPUNIT_TEST(test_MoirQueue_HP_member)
430 CPPUNIT_TEST(test_MoirQueue_HP_base_ic)
431 CPPUNIT_TEST(test_MoirQueue_HP_member_ic)
432 CPPUNIT_TEST(test_MoirQueue_HP_base_stat)
433 CPPUNIT_TEST(test_MoirQueue_HP_member_stat)
434 CPPUNIT_TEST(test_MoirQueue_HP_base_align)
435 CPPUNIT_TEST(test_MoirQueue_HP_member_align)
436 CPPUNIT_TEST(test_MoirQueue_HP_base_noalign)
437 CPPUNIT_TEST(test_MoirQueue_HP_member_noalign)
438 CPPUNIT_TEST(test_MoirQueue_HP_base_cachealign)
439 CPPUNIT_TEST(test_MoirQueue_HP_member_cachealign)
440 CPPUNIT_TEST(test_MoirQueue_DHP_base)
441 CPPUNIT_TEST(test_MoirQueue_DHP_member)
442 CPPUNIT_TEST(test_MoirQueue_DHP_base_ic)
443 CPPUNIT_TEST(test_MoirQueue_DHP_member_ic)
444 CPPUNIT_TEST(test_MoirQueue_DHP_base_stat)
445 CPPUNIT_TEST(test_MoirQueue_DHP_member_stat)
446 CPPUNIT_TEST(test_MoirQueue_DHP_base_align)
447 CPPUNIT_TEST(test_MoirQueue_DHP_member_align)
448 CPPUNIT_TEST(test_MoirQueue_DHP_base_noalign)
449 CPPUNIT_TEST(test_MoirQueue_DHP_member_noalign)
450 CPPUNIT_TEST(test_MoirQueue_DHP_base_cachealign)
451 CPPUNIT_TEST(test_MoirQueue_DHP_member_cachealign)
453 CPPUNIT_TEST(test_OptimisticQueue_HP_default)
454 CPPUNIT_TEST(test_OptimisticQueue_HP_default_ic)
455 CPPUNIT_TEST(test_OptimisticQueue_HP_default_stat)
456 CPPUNIT_TEST(test_OptimisticQueue_HP_base)
457 CPPUNIT_TEST(test_OptimisticQueue_HP_member)
458 CPPUNIT_TEST(test_OptimisticQueue_HP_base_ic)
459 CPPUNIT_TEST(test_OptimisticQueue_HP_member_ic)
460 CPPUNIT_TEST(test_OptimisticQueue_HP_base_stat)
461 CPPUNIT_TEST(test_OptimisticQueue_HP_member_stat)
462 CPPUNIT_TEST(test_OptimisticQueue_HP_base_align)
463 CPPUNIT_TEST(test_OptimisticQueue_HP_member_align)
464 CPPUNIT_TEST(test_OptimisticQueue_HP_base_noalign)
465 CPPUNIT_TEST(test_OptimisticQueue_HP_member_noalign)
466 CPPUNIT_TEST(test_OptimisticQueue_HP_base_cachealign)
467 CPPUNIT_TEST(test_OptimisticQueue_HP_member_cachealign)
468 CPPUNIT_TEST(test_OptimisticQueue_DHP_base)
469 CPPUNIT_TEST(test_OptimisticQueue_DHP_member)
470 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_ic)
471 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_ic)
472 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_stat)
473 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_stat)
474 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_align)
475 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_align)
476 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_noalign)
477 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_noalign)
478 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_cachealign)
479 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_cachealign)
481 CPPUNIT_TEST(test_BasketQueue_HP_default)
482 CPPUNIT_TEST(test_BasketQueue_HP_default_ic)
483 CPPUNIT_TEST(test_BasketQueue_HP_default_stat)
484 CPPUNIT_TEST(test_BasketQueue_HP_base)
485 CPPUNIT_TEST(test_BasketQueue_HP_member)
486 CPPUNIT_TEST(test_BasketQueue_HP_base_ic)
487 CPPUNIT_TEST(test_BasketQueue_HP_member_ic)
488 CPPUNIT_TEST(test_BasketQueue_HP_base_stat)
489 CPPUNIT_TEST(test_BasketQueue_HP_member_stat)
490 CPPUNIT_TEST(test_BasketQueue_HP_base_align)
491 CPPUNIT_TEST(test_BasketQueue_HP_member_align)
492 CPPUNIT_TEST(test_BasketQueue_HP_base_noalign)
493 CPPUNIT_TEST(test_BasketQueue_HP_member_noalign)
494 CPPUNIT_TEST(test_BasketQueue_HP_base_cachealign)
495 CPPUNIT_TEST(test_BasketQueue_HP_member_cachealign)
496 CPPUNIT_TEST(test_BasketQueue_DHP_base)
497 CPPUNIT_TEST(test_BasketQueue_DHP_member)
498 CPPUNIT_TEST(test_BasketQueue_DHP_base_ic)
499 CPPUNIT_TEST(test_BasketQueue_DHP_member_ic)
500 CPPUNIT_TEST(test_BasketQueue_DHP_base_stat)
501 CPPUNIT_TEST(test_BasketQueue_DHP_member_stat)
502 CPPUNIT_TEST(test_BasketQueue_DHP_base_align)
503 CPPUNIT_TEST(test_BasketQueue_DHP_member_align)
504 CPPUNIT_TEST(test_BasketQueue_DHP_base_noalign)
505 CPPUNIT_TEST(test_BasketQueue_DHP_member_noalign)
506 CPPUNIT_TEST(test_BasketQueue_DHP_base_cachealign)
507 CPPUNIT_TEST(test_BasketQueue_DHP_member_cachealign)
509 CPPUNIT_TEST(test_TsigasCycleQueue_static)
510 CPPUNIT_TEST(test_TsigasCycleQueue_static_ic)
511 CPPUNIT_TEST(test_TsigasCycleQueue_dyn)
512 CPPUNIT_TEST(test_TsigasCycleQueue_dyn_ic)
514 CPPUNIT_TEST(test_VyukovMPMCCycleQueue_static);
515 CPPUNIT_TEST(test_VyukovMPMCCycleQueue_static_ic);
516 CPPUNIT_TEST(test_VyukovMPMCCycleQueue_dyn);
517 CPPUNIT_TEST(test_VyukovMPMCCycleQueue_dyn_ic);
519 CPPUNIT_TEST_SUITE_END()
523 #endif // #ifndef CDSTEST_HDR_INTRSUSIVE_MSQUEUE_H