3 #include "cppunit/cppunit_proxy.h"
4 #include <cds/intrusive/details/base.h>
7 namespace ci = cds::intrusive;
8 namespace co = cds::opt;
10 class IntrusiveQueueHeaderTest: public CppUnitMini::TestCase
14 template <typename Base>
15 struct base_hook_item : public Base
25 template <typename Member>
26 struct member_hook_item
40 void operator ()( T * p )
47 // Test for MSQueue and derivatives
48 template <class Queue>
51 typedef typename Queue::value_type value_type;
52 value_type v1, v2, v3;
56 CPPUNIT_ASSERT( q.empty() );
61 CPPUNIT_ASSERT( q.push(v1));
62 CPPUNIT_ASSERT( !q.empty() );
63 CPPUNIT_ASSERT( q.push(v2));
64 CPPUNIT_ASSERT( !q.empty() );
65 CPPUNIT_ASSERT( q.push(v3));
66 CPPUNIT_ASSERT( !q.empty() );
68 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
69 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
70 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
75 CPPUNIT_ASSERT( pv != nullptr );
76 CPPUNIT_ASSERT( pv->nVal == 1 );
77 CPPUNIT_ASSERT( !q.empty() );
78 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
79 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
80 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
84 CPPUNIT_ASSERT( pv != nullptr );
85 CPPUNIT_ASSERT( pv->nVal == 2 );
86 CPPUNIT_ASSERT( !q.empty() );
87 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
88 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
89 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
93 CPPUNIT_ASSERT( pv != nullptr );
94 CPPUNIT_ASSERT( pv->nVal == 3 );
95 CPPUNIT_ASSERT( q.empty() );
96 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
97 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
98 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
101 CPPUNIT_ASSERT( pv == nullptr );
102 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
103 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
104 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
108 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
109 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
110 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
113 // Test for BasketQueue and derivatives
114 template <class Queue>
117 typedef typename Queue::value_type value_type;
118 value_type v1, v2, v3, v4;
122 CPPUNIT_ASSERT( q.empty() );
128 CPPUNIT_ASSERT( q.push(v1));
129 CPPUNIT_ASSERT( !q.empty() );
130 CPPUNIT_ASSERT( q.push(v2));
131 CPPUNIT_ASSERT( !q.empty() );
132 CPPUNIT_ASSERT( q.push(v3));
133 CPPUNIT_ASSERT( !q.empty() );
134 CPPUNIT_ASSERT( q.push(v4));
135 CPPUNIT_ASSERT( !q.empty() );
137 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
138 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
139 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
140 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
145 CPPUNIT_ASSERT( pv != nullptr );
146 CPPUNIT_ASSERT( pv->nVal == 1 );
147 CPPUNIT_ASSERT( !q.empty() );
148 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
149 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
150 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
151 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
155 CPPUNIT_ASSERT( pv != nullptr );
156 CPPUNIT_ASSERT( pv->nVal == 2 );
157 CPPUNIT_ASSERT( !q.empty() );
158 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
159 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
160 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
161 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
165 CPPUNIT_ASSERT( pv != nullptr );
166 CPPUNIT_ASSERT( pv->nVal == 3 );
167 CPPUNIT_ASSERT( !q.empty() );
168 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
169 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
170 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
171 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
175 CPPUNIT_ASSERT( pv != nullptr );
176 CPPUNIT_ASSERT( pv->nVal == 4 );
177 CPPUNIT_ASSERT( q.empty() );
178 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
179 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
180 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
181 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
185 CPPUNIT_CHECK( pv == nullptr );
186 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
187 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
188 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
189 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
193 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
194 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
195 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
196 CPPUNIT_CHECK( v4.nDisposeCount == 1 );
199 // Test for a queue in what dequeued item should be manually disposed
200 template <class Queue>
203 typedef typename Queue::value_type value_type;
204 value_type v1, v2, v3;
206 CPPUNIT_ASSERT( q.empty() );
211 CPPUNIT_ASSERT( q.push(v1));
212 CPPUNIT_ASSERT( !q.empty() );
213 CPPUNIT_ASSERT( q.push(v2));
214 CPPUNIT_ASSERT( !q.empty() );
215 CPPUNIT_ASSERT( q.push(v3));
216 CPPUNIT_ASSERT( !q.empty() );
218 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
219 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
220 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
224 CPPUNIT_ASSERT( pv != nullptr );
225 CPPUNIT_ASSERT( pv->nVal == 1 );
226 CPPUNIT_ASSERT( !q.empty() );
227 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
228 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
229 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
232 CPPUNIT_ASSERT( pv != nullptr );
233 CPPUNIT_ASSERT( pv->nVal == 2 );
234 CPPUNIT_ASSERT( !q.empty() );
235 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
236 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
237 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
240 CPPUNIT_ASSERT( pv != nullptr );
241 CPPUNIT_ASSERT( pv->nVal == 3 );
242 CPPUNIT_ASSERT( q.empty() );
243 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
244 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
245 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
248 CPPUNIT_ASSERT( pv == nullptr );
249 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
250 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
251 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
253 CPPUNIT_ASSERT( q.push(v1));
254 CPPUNIT_ASSERT( !q.empty() );
255 CPPUNIT_ASSERT( q.push(v2));
256 CPPUNIT_ASSERT( !q.empty() );
257 CPPUNIT_ASSERT( q.push(v3));
258 CPPUNIT_ASSERT( !q.empty() );
260 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
261 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
262 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
264 CPPUNIT_CHECK( q.empty() );
265 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
266 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
267 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
271 void test_MSQueue_HP_default();
272 void test_MSQueue_HP_default_ic();
273 void test_MSQueue_HP_default_stat();
274 void test_MSQueue_HP_base();
275 void test_MSQueue_HP_member();
276 void test_MSQueue_HP_base_ic();
277 void test_MSQueue_HP_member_ic();
278 void test_MSQueue_HP_base_stat();
279 void test_MSQueue_HP_member_stat();
280 void test_MSQueue_HP_base_align();
281 void test_MSQueue_HP_member_align();
282 void test_MSQueue_HP_base_noalign();
283 void test_MSQueue_HP_member_noalign();
284 void test_MSQueue_HP_base_cachealign();
285 void test_MSQueue_HP_member_cachealign();
286 void test_MSQueue_DHP_base();
287 void test_MSQueue_DHP_member();
288 void test_MSQueue_DHP_base_ic();
289 void test_MSQueue_DHP_member_ic();
290 void test_MSQueue_DHP_base_stat();
291 void test_MSQueue_DHP_member_stat();
292 void test_MSQueue_DHP_base_align();
293 void test_MSQueue_DHP_member_align();
294 void test_MSQueue_DHP_base_noalign();
295 void test_MSQueue_DHP_member_noalign();
296 void test_MSQueue_DHP_base_cachealign();
297 void test_MSQueue_DHP_member_cachealign();
299 void test_MoirQueue_HP_default();
300 void test_MoirQueue_HP_default_ic();
301 void test_MoirQueue_HP_default_stat();
302 void test_MoirQueue_HP_base();
303 void test_MoirQueue_HP_member();
304 void test_MoirQueue_HP_base_ic();
305 void test_MoirQueue_HP_member_ic();
306 void test_MoirQueue_HP_base_stat();
307 void test_MoirQueue_HP_member_stat();
308 void test_MoirQueue_HP_base_align();
309 void test_MoirQueue_HP_member_align();
310 void test_MoirQueue_HP_base_noalign();
311 void test_MoirQueue_HP_member_noalign();
312 void test_MoirQueue_HP_base_cachealign();
313 void test_MoirQueue_HP_member_cachealign();
314 void test_MoirQueue_DHP_base();
315 void test_MoirQueue_DHP_member();
316 void test_MoirQueue_DHP_base_ic();
317 void test_MoirQueue_DHP_member_ic();
318 void test_MoirQueue_DHP_base_stat();
319 void test_MoirQueue_DHP_member_stat();
320 void test_MoirQueue_DHP_base_align();
321 void test_MoirQueue_DHP_member_align();
322 void test_MoirQueue_DHP_base_noalign();
323 void test_MoirQueue_DHP_member_noalign();
324 void test_MoirQueue_DHP_base_cachealign();
325 void test_MoirQueue_DHP_member_cachealign();
327 void test_OptimisticQueue_HP_default();
328 void test_OptimisticQueue_HP_default_ic();
329 void test_OptimisticQueue_HP_default_stat();
330 void test_OptimisticQueue_HP_base();
331 void test_OptimisticQueue_HP_member();
332 void test_OptimisticQueue_HP_base_ic();
333 void test_OptimisticQueue_HP_member_ic();
334 void test_OptimisticQueue_HP_base_stat();
335 void test_OptimisticQueue_HP_member_stat();
336 void test_OptimisticQueue_HP_base_align();
337 void test_OptimisticQueue_HP_member_align();
338 void test_OptimisticQueue_HP_base_noalign();
339 void test_OptimisticQueue_HP_member_noalign();
340 void test_OptimisticQueue_HP_base_cachealign();
341 void test_OptimisticQueue_HP_member_cachealign();
342 void test_OptimisticQueue_DHP_base();
343 void test_OptimisticQueue_DHP_member();
344 void test_OptimisticQueue_DHP_base_ic();
345 void test_OptimisticQueue_DHP_member_ic();
346 void test_OptimisticQueue_DHP_base_stat();
347 void test_OptimisticQueue_DHP_member_stat();
348 void test_OptimisticQueue_DHP_base_align();
349 void test_OptimisticQueue_DHP_member_align();
350 void test_OptimisticQueue_DHP_base_noalign();
351 void test_OptimisticQueue_DHP_member_noalign();
352 void test_OptimisticQueue_DHP_base_cachealign();
353 void test_OptimisticQueue_DHP_member_cachealign();
355 void test_BasketQueue_HP_default();
356 void test_BasketQueue_HP_default_ic();
357 void test_BasketQueue_HP_default_stat();
358 void test_BasketQueue_HP_base();
359 void test_BasketQueue_HP_member();
360 void test_BasketQueue_HP_base_ic();
361 void test_BasketQueue_HP_member_ic();
362 void test_BasketQueue_HP_base_stat();
363 void test_BasketQueue_HP_member_stat();
364 void test_BasketQueue_HP_base_align();
365 void test_BasketQueue_HP_member_align();
366 void test_BasketQueue_HP_base_noalign();
367 void test_BasketQueue_HP_member_noalign();
368 void test_BasketQueue_HP_base_cachealign();
369 void test_BasketQueue_HP_member_cachealign();
370 void test_BasketQueue_DHP_base();
371 void test_BasketQueue_DHP_member();
372 void test_BasketQueue_DHP_base_ic();
373 void test_BasketQueue_DHP_member_ic();
374 void test_BasketQueue_DHP_base_stat();
375 void test_BasketQueue_DHP_member_stat();
376 void test_BasketQueue_DHP_base_align();
377 void test_BasketQueue_DHP_member_align();
378 void test_BasketQueue_DHP_base_noalign();
379 void test_BasketQueue_DHP_member_noalign();
380 void test_BasketQueue_DHP_base_cachealign();
381 void test_BasketQueue_DHP_member_cachealign();
383 void test_TsigasCycleQueue_stat();
384 void test_TsigasCycleQueue_stat_ic();
385 void test_TsigasCycleQueue_dyn();
386 void test_TsigasCycleQueue_dyn_ic();
388 void test_VyukovMPMCCycleQueue_stat();
389 void test_VyukovMPMCCycleQueue_stat_ic();
390 void test_VyukovMPMCCycleQueue_dyn();
391 void test_VyukovMPMCCycleQueue_dyn_ic();
393 CPPUNIT_TEST_SUITE(IntrusiveQueueHeaderTest)
394 CPPUNIT_TEST(test_MSQueue_HP_default)
395 CPPUNIT_TEST(test_MSQueue_HP_default_ic)
396 CPPUNIT_TEST(test_MSQueue_HP_default_stat)
397 CPPUNIT_TEST(test_MSQueue_HP_base)
398 CPPUNIT_TEST(test_MSQueue_HP_member)
399 CPPUNIT_TEST(test_MSQueue_HP_base_ic)
400 CPPUNIT_TEST(test_MSQueue_HP_member_ic)
401 CPPUNIT_TEST(test_MSQueue_HP_base_stat)
402 CPPUNIT_TEST(test_MSQueue_HP_member_stat)
403 CPPUNIT_TEST(test_MSQueue_HP_base_align)
404 CPPUNIT_TEST(test_MSQueue_HP_member_align)
405 CPPUNIT_TEST(test_MSQueue_HP_base_noalign)
406 CPPUNIT_TEST(test_MSQueue_HP_member_noalign)
407 CPPUNIT_TEST(test_MSQueue_HP_base_cachealign)
408 CPPUNIT_TEST(test_MSQueue_HP_member_cachealign)
409 CPPUNIT_TEST(test_MSQueue_DHP_base)
410 CPPUNIT_TEST(test_MSQueue_DHP_member)
411 CPPUNIT_TEST(test_MSQueue_DHP_base_ic)
412 CPPUNIT_TEST(test_MSQueue_DHP_member_ic)
413 CPPUNIT_TEST(test_MSQueue_DHP_base_stat)
414 CPPUNIT_TEST(test_MSQueue_DHP_member_stat)
415 CPPUNIT_TEST(test_MSQueue_DHP_base_align)
416 CPPUNIT_TEST(test_MSQueue_DHP_member_align)
417 CPPUNIT_TEST(test_MSQueue_DHP_base_noalign)
418 CPPUNIT_TEST(test_MSQueue_DHP_member_noalign)
419 CPPUNIT_TEST(test_MSQueue_DHP_base_cachealign)
420 CPPUNIT_TEST(test_MSQueue_DHP_member_cachealign)
422 CPPUNIT_TEST(test_MoirQueue_HP_default)
423 CPPUNIT_TEST(test_MoirQueue_HP_default_ic)
424 CPPUNIT_TEST(test_MoirQueue_HP_default_stat)
425 CPPUNIT_TEST(test_MoirQueue_HP_base)
426 CPPUNIT_TEST(test_MoirQueue_HP_member)
427 CPPUNIT_TEST(test_MoirQueue_HP_base_ic)
428 CPPUNIT_TEST(test_MoirQueue_HP_member_ic)
429 CPPUNIT_TEST(test_MoirQueue_HP_base_stat)
430 CPPUNIT_TEST(test_MoirQueue_HP_member_stat)
431 CPPUNIT_TEST(test_MoirQueue_HP_base_align)
432 CPPUNIT_TEST(test_MoirQueue_HP_member_align)
433 CPPUNIT_TEST(test_MoirQueue_HP_base_noalign)
434 CPPUNIT_TEST(test_MoirQueue_HP_member_noalign)
435 CPPUNIT_TEST(test_MoirQueue_HP_base_cachealign)
436 CPPUNIT_TEST(test_MoirQueue_HP_member_cachealign)
437 CPPUNIT_TEST(test_MoirQueue_DHP_base)
438 CPPUNIT_TEST(test_MoirQueue_DHP_member)
439 CPPUNIT_TEST(test_MoirQueue_DHP_base_ic)
440 CPPUNIT_TEST(test_MoirQueue_DHP_member_ic)
441 CPPUNIT_TEST(test_MoirQueue_DHP_base_stat)
442 CPPUNIT_TEST(test_MoirQueue_DHP_member_stat)
443 CPPUNIT_TEST(test_MoirQueue_DHP_base_align)
444 CPPUNIT_TEST(test_MoirQueue_DHP_member_align)
445 CPPUNIT_TEST(test_MoirQueue_DHP_base_noalign)
446 CPPUNIT_TEST(test_MoirQueue_DHP_member_noalign)
447 CPPUNIT_TEST(test_MoirQueue_DHP_base_cachealign)
448 CPPUNIT_TEST(test_MoirQueue_DHP_member_cachealign)
450 CPPUNIT_TEST(test_OptimisticQueue_HP_default)
451 CPPUNIT_TEST(test_OptimisticQueue_HP_default_ic)
452 CPPUNIT_TEST(test_OptimisticQueue_HP_default_stat)
453 CPPUNIT_TEST(test_OptimisticQueue_HP_base)
454 CPPUNIT_TEST(test_OptimisticQueue_HP_member)
455 CPPUNIT_TEST(test_OptimisticQueue_HP_base_ic)
456 CPPUNIT_TEST(test_OptimisticQueue_HP_member_ic)
457 CPPUNIT_TEST(test_OptimisticQueue_HP_base_stat)
458 CPPUNIT_TEST(test_OptimisticQueue_HP_member_stat)
459 CPPUNIT_TEST(test_OptimisticQueue_HP_base_align)
460 CPPUNIT_TEST(test_OptimisticQueue_HP_member_align)
461 CPPUNIT_TEST(test_OptimisticQueue_HP_base_noalign)
462 CPPUNIT_TEST(test_OptimisticQueue_HP_member_noalign)
463 CPPUNIT_TEST(test_OptimisticQueue_HP_base_cachealign)
464 CPPUNIT_TEST(test_OptimisticQueue_HP_member_cachealign)
465 CPPUNIT_TEST(test_OptimisticQueue_DHP_base)
466 CPPUNIT_TEST(test_OptimisticQueue_DHP_member)
467 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_ic)
468 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_ic)
469 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_stat)
470 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_stat)
471 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_align)
472 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_align)
473 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_noalign)
474 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_noalign)
475 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_cachealign)
476 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_cachealign)
478 CPPUNIT_TEST(test_BasketQueue_HP_default)
479 CPPUNIT_TEST(test_BasketQueue_HP_default_ic)
480 CPPUNIT_TEST(test_BasketQueue_HP_default_stat)
481 CPPUNIT_TEST(test_BasketQueue_HP_base)
482 CPPUNIT_TEST(test_BasketQueue_HP_member)
483 CPPUNIT_TEST(test_BasketQueue_HP_base_ic)
484 CPPUNIT_TEST(test_BasketQueue_HP_member_ic)
485 CPPUNIT_TEST(test_BasketQueue_HP_base_stat)
486 CPPUNIT_TEST(test_BasketQueue_HP_member_stat)
487 CPPUNIT_TEST(test_BasketQueue_HP_base_align)
488 CPPUNIT_TEST(test_BasketQueue_HP_member_align)
489 CPPUNIT_TEST(test_BasketQueue_HP_base_noalign)
490 CPPUNIT_TEST(test_BasketQueue_HP_member_noalign)
491 CPPUNIT_TEST(test_BasketQueue_HP_base_cachealign)
492 CPPUNIT_TEST(test_BasketQueue_HP_member_cachealign)
493 CPPUNIT_TEST(test_BasketQueue_DHP_base)
494 CPPUNIT_TEST(test_BasketQueue_DHP_member)
495 CPPUNIT_TEST(test_BasketQueue_DHP_base_ic)
496 CPPUNIT_TEST(test_BasketQueue_DHP_member_ic)
497 CPPUNIT_TEST(test_BasketQueue_DHP_base_stat)
498 CPPUNIT_TEST(test_BasketQueue_DHP_member_stat)
499 CPPUNIT_TEST(test_BasketQueue_DHP_base_align)
500 CPPUNIT_TEST(test_BasketQueue_DHP_member_align)
501 CPPUNIT_TEST(test_BasketQueue_DHP_base_noalign)
502 CPPUNIT_TEST(test_BasketQueue_DHP_member_noalign)
503 CPPUNIT_TEST(test_BasketQueue_DHP_base_cachealign)
504 CPPUNIT_TEST(test_BasketQueue_DHP_member_cachealign)
506 CPPUNIT_TEST(test_TsigasCycleQueue_stat)
507 CPPUNIT_TEST(test_TsigasCycleQueue_stat_ic)
508 CPPUNIT_TEST(test_TsigasCycleQueue_dyn)
509 CPPUNIT_TEST(test_TsigasCycleQueue_dyn_ic)
511 CPPUNIT_TEST(test_VyukovMPMCCycleQueue_stat);
512 CPPUNIT_TEST(test_VyukovMPMCCycleQueue_stat_ic);
513 CPPUNIT_TEST(test_VyukovMPMCCycleQueue_dyn);
514 CPPUNIT_TEST(test_VyukovMPMCCycleQueue_dyn_ic);
516 CPPUNIT_TEST_SUITE_END()