2 This file is a part of libcds - Concurrent Data Structures library
4 (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
6 Source code repo: http://github.com/khizmax/libcds/
7 Download: http://sourceforge.net/projects/libcds/files/
9 Redistribution and use in source and binary forms, with or without
10 modification, are permitted provided that the following conditions are met:
12 * Redistributions of source code must retain the above copyright notice, this
13 list of conditions and the following disclaimer.
15 * Redistributions in binary form must reproduce the above copyright notice,
16 this list of conditions and the following disclaimer in the documentation
17 and/or other materials provided with the distribution.
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 #ifndef CDSTEST_HDR_INTRSUSIVE_MSQUEUE_H
32 #define CDSTEST_HDR_INTRSUSIVE_MSQUEUE_H
34 #include "cppunit/cppunit_proxy.h"
35 #include <cds/intrusive/details/base.h>
38 namespace ci = cds::intrusive;
39 namespace co = cds::opt;
41 class IntrusiveQueueHeaderTest: public CppUnitMini::TestCase
45 template <typename Base>
46 struct base_hook_item : public Base
56 template <typename Member>
57 struct member_hook_item
71 void operator ()( T * p )
78 // Test for MSQueue and derivatives
79 template <class Queue>
82 typedef typename Queue::value_type value_type;
83 value_type v1, v2, v3;
87 CPPUNIT_ASSERT( q.empty() );
92 CPPUNIT_ASSERT( q.push(v1));
93 CPPUNIT_ASSERT( !q.empty() );
94 CPPUNIT_ASSERT( q.push(v2));
95 CPPUNIT_ASSERT( !q.empty() );
96 CPPUNIT_ASSERT( q.push(v3));
97 CPPUNIT_ASSERT( !q.empty() );
99 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
100 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
101 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
106 CPPUNIT_ASSERT( pv != nullptr );
107 CPPUNIT_ASSERT( pv->nVal == 1 );
108 CPPUNIT_ASSERT( !q.empty() );
109 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
110 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
111 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
115 CPPUNIT_ASSERT( pv != nullptr );
116 CPPUNIT_ASSERT( pv->nVal == 2 );
117 CPPUNIT_ASSERT( !q.empty() );
118 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
119 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
120 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
124 CPPUNIT_ASSERT( pv != nullptr );
125 CPPUNIT_ASSERT( pv->nVal == 3 );
126 CPPUNIT_ASSERT( q.empty() );
127 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
128 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
129 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
132 CPPUNIT_ASSERT( pv == nullptr );
133 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
134 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
135 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
139 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
140 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
141 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
144 // Test for BasketQueue and derivatives
145 template <class Queue>
148 typedef typename Queue::value_type value_type;
149 value_type v1, v2, v3, v4;
153 CPPUNIT_ASSERT( q.empty() );
159 CPPUNIT_ASSERT( q.push(v1));
160 CPPUNIT_ASSERT( !q.empty() );
161 CPPUNIT_ASSERT( q.push(v2));
162 CPPUNIT_ASSERT( !q.empty() );
163 CPPUNIT_ASSERT( q.push(v3));
164 CPPUNIT_ASSERT( !q.empty() );
165 CPPUNIT_ASSERT( q.push(v4));
166 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 );
176 CPPUNIT_ASSERT( pv != nullptr );
177 CPPUNIT_ASSERT( pv->nVal == 1 );
178 CPPUNIT_ASSERT( !q.empty() );
179 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
180 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
181 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
182 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
186 CPPUNIT_ASSERT( pv != nullptr );
187 CPPUNIT_ASSERT( pv->nVal == 2 );
188 CPPUNIT_ASSERT( !q.empty() );
189 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
190 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
191 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
192 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
196 CPPUNIT_ASSERT( pv != nullptr );
197 CPPUNIT_ASSERT( pv->nVal == 3 );
198 CPPUNIT_ASSERT( !q.empty() );
199 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
200 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
201 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
202 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
206 CPPUNIT_ASSERT( pv != nullptr );
207 CPPUNIT_ASSERT( pv->nVal == 4 );
208 CPPUNIT_ASSERT( q.empty() );
209 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
210 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
211 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
212 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
216 CPPUNIT_CHECK( pv == nullptr );
217 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
218 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
219 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
220 CPPUNIT_CHECK( v4.nDisposeCount == 0 );
224 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
225 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
226 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
227 CPPUNIT_CHECK( v4.nDisposeCount == 1 );
230 // Test for a queue in what dequeued item should be manually disposed
231 template <class Queue>
234 typedef typename Queue::value_type value_type;
235 value_type v1, v2, v3;
237 CPPUNIT_ASSERT( q.empty() );
242 CPPUNIT_ASSERT( q.push(v1));
243 CPPUNIT_ASSERT( !q.empty() );
244 CPPUNIT_ASSERT( q.push(v2));
245 CPPUNIT_ASSERT( !q.empty() );
246 CPPUNIT_ASSERT( q.push(v3));
247 CPPUNIT_ASSERT( !q.empty() );
249 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
250 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
251 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
255 CPPUNIT_ASSERT( pv != nullptr );
256 CPPUNIT_ASSERT( pv->nVal == 1 );
257 CPPUNIT_ASSERT( !q.empty() );
258 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
259 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
260 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
263 CPPUNIT_ASSERT( pv != nullptr );
264 CPPUNIT_ASSERT( pv->nVal == 2 );
265 CPPUNIT_ASSERT( !q.empty() );
266 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
267 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
268 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
271 CPPUNIT_ASSERT( pv != nullptr );
272 CPPUNIT_ASSERT( pv->nVal == 3 );
273 CPPUNIT_ASSERT( q.empty() );
274 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
275 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
276 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
279 CPPUNIT_ASSERT( pv == nullptr );
280 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
281 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
282 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
284 CPPUNIT_ASSERT( q.push(v1));
285 CPPUNIT_ASSERT( !q.empty() );
286 CPPUNIT_ASSERT( q.push(v2));
287 CPPUNIT_ASSERT( !q.empty() );
288 CPPUNIT_ASSERT( q.push(v3));
289 CPPUNIT_ASSERT( !q.empty() );
291 CPPUNIT_CHECK( v1.nDisposeCount == 0 );
292 CPPUNIT_CHECK( v2.nDisposeCount == 0 );
293 CPPUNIT_CHECK( v3.nDisposeCount == 0 );
295 CPPUNIT_CHECK( q.empty() );
296 CPPUNIT_CHECK( v1.nDisposeCount == 1 );
297 CPPUNIT_CHECK( v2.nDisposeCount == 1 );
298 CPPUNIT_CHECK( v3.nDisposeCount == 1 );
302 void test_MSQueue_HP_default();
303 void test_MSQueue_HP_default_ic();
304 void test_MSQueue_HP_default_stat();
305 void test_MSQueue_HP_base();
306 void test_MSQueue_HP_member();
307 void test_MSQueue_HP_base_ic();
308 void test_MSQueue_HP_member_ic();
309 void test_MSQueue_HP_base_stat();
310 void test_MSQueue_HP_member_stat();
311 void test_MSQueue_HP_base_align();
312 void test_MSQueue_HP_member_align();
313 void test_MSQueue_HP_base_noalign();
314 void test_MSQueue_HP_member_noalign();
315 void test_MSQueue_HP_base_cachealign();
316 void test_MSQueue_HP_member_cachealign();
317 void test_MSQueue_DHP_base();
318 void test_MSQueue_DHP_member();
319 void test_MSQueue_DHP_base_ic();
320 void test_MSQueue_DHP_member_ic();
321 void test_MSQueue_DHP_base_stat();
322 void test_MSQueue_DHP_member_stat();
323 void test_MSQueue_DHP_base_align();
324 void test_MSQueue_DHP_member_align();
325 void test_MSQueue_DHP_base_noalign();
326 void test_MSQueue_DHP_member_noalign();
327 void test_MSQueue_DHP_base_cachealign();
328 void test_MSQueue_DHP_member_cachealign();
330 void test_MoirQueue_HP_default();
331 void test_MoirQueue_HP_default_ic();
332 void test_MoirQueue_HP_default_stat();
333 void test_MoirQueue_HP_base();
334 void test_MoirQueue_HP_member();
335 void test_MoirQueue_HP_base_ic();
336 void test_MoirQueue_HP_member_ic();
337 void test_MoirQueue_HP_base_stat();
338 void test_MoirQueue_HP_member_stat();
339 void test_MoirQueue_HP_base_align();
340 void test_MoirQueue_HP_member_align();
341 void test_MoirQueue_HP_base_noalign();
342 void test_MoirQueue_HP_member_noalign();
343 void test_MoirQueue_HP_base_cachealign();
344 void test_MoirQueue_HP_member_cachealign();
345 void test_MoirQueue_DHP_base();
346 void test_MoirQueue_DHP_member();
347 void test_MoirQueue_DHP_base_ic();
348 void test_MoirQueue_DHP_member_ic();
349 void test_MoirQueue_DHP_base_stat();
350 void test_MoirQueue_DHP_member_stat();
351 void test_MoirQueue_DHP_base_align();
352 void test_MoirQueue_DHP_member_align();
353 void test_MoirQueue_DHP_base_noalign();
354 void test_MoirQueue_DHP_member_noalign();
355 void test_MoirQueue_DHP_base_cachealign();
356 void test_MoirQueue_DHP_member_cachealign();
358 void test_OptimisticQueue_HP_default();
359 void test_OptimisticQueue_HP_default_ic();
360 void test_OptimisticQueue_HP_default_stat();
361 void test_OptimisticQueue_HP_base();
362 void test_OptimisticQueue_HP_member();
363 void test_OptimisticQueue_HP_base_ic();
364 void test_OptimisticQueue_HP_member_ic();
365 void test_OptimisticQueue_HP_base_stat();
366 void test_OptimisticQueue_HP_member_stat();
367 void test_OptimisticQueue_HP_base_align();
368 void test_OptimisticQueue_HP_member_align();
369 void test_OptimisticQueue_HP_base_noalign();
370 void test_OptimisticQueue_HP_member_noalign();
371 void test_OptimisticQueue_HP_base_cachealign();
372 void test_OptimisticQueue_HP_member_cachealign();
373 void test_OptimisticQueue_DHP_base();
374 void test_OptimisticQueue_DHP_member();
375 void test_OptimisticQueue_DHP_base_ic();
376 void test_OptimisticQueue_DHP_member_ic();
377 void test_OptimisticQueue_DHP_base_stat();
378 void test_OptimisticQueue_DHP_member_stat();
379 void test_OptimisticQueue_DHP_base_align();
380 void test_OptimisticQueue_DHP_member_align();
381 void test_OptimisticQueue_DHP_base_noalign();
382 void test_OptimisticQueue_DHP_member_noalign();
383 void test_OptimisticQueue_DHP_base_cachealign();
384 void test_OptimisticQueue_DHP_member_cachealign();
386 void test_BasketQueue_HP_default();
387 void test_BasketQueue_HP_default_ic();
388 void test_BasketQueue_HP_default_stat();
389 void test_BasketQueue_HP_base();
390 void test_BasketQueue_HP_member();
391 void test_BasketQueue_HP_base_ic();
392 void test_BasketQueue_HP_member_ic();
393 void test_BasketQueue_HP_base_stat();
394 void test_BasketQueue_HP_member_stat();
395 void test_BasketQueue_HP_base_align();
396 void test_BasketQueue_HP_member_align();
397 void test_BasketQueue_HP_base_noalign();
398 void test_BasketQueue_HP_member_noalign();
399 void test_BasketQueue_HP_base_cachealign();
400 void test_BasketQueue_HP_member_cachealign();
401 void test_BasketQueue_DHP_base();
402 void test_BasketQueue_DHP_member();
403 void test_BasketQueue_DHP_base_ic();
404 void test_BasketQueue_DHP_member_ic();
405 void test_BasketQueue_DHP_base_stat();
406 void test_BasketQueue_DHP_member_stat();
407 void test_BasketQueue_DHP_base_align();
408 void test_BasketQueue_DHP_member_align();
409 void test_BasketQueue_DHP_base_noalign();
410 void test_BasketQueue_DHP_member_noalign();
411 void test_BasketQueue_DHP_base_cachealign();
412 void test_BasketQueue_DHP_member_cachealign();
414 void test_TsigasCycleQueue_static();
415 void test_TsigasCycleQueue_static_ic();
416 void test_TsigasCycleQueue_dyn();
417 void test_TsigasCycleQueue_dyn_ic();
419 void test_VyukovMPMCCycleQueue_static();
420 void test_VyukovMPMCCycleQueue_static_ic();
421 void test_VyukovMPMCCycleQueue_dyn();
422 void test_VyukovMPMCCycleQueue_dyn_ic();
424 CPPUNIT_TEST_SUITE(IntrusiveQueueHeaderTest)
425 CPPUNIT_TEST(test_MSQueue_HP_default)
426 CPPUNIT_TEST(test_MSQueue_HP_default_ic)
427 CPPUNIT_TEST(test_MSQueue_HP_default_stat)
428 CPPUNIT_TEST(test_MSQueue_HP_base)
429 CPPUNIT_TEST(test_MSQueue_HP_member)
430 CPPUNIT_TEST(test_MSQueue_HP_base_ic)
431 CPPUNIT_TEST(test_MSQueue_HP_member_ic)
432 CPPUNIT_TEST(test_MSQueue_HP_base_stat)
433 CPPUNIT_TEST(test_MSQueue_HP_member_stat)
434 CPPUNIT_TEST(test_MSQueue_HP_base_align)
435 CPPUNIT_TEST(test_MSQueue_HP_member_align)
436 CPPUNIT_TEST(test_MSQueue_HP_base_noalign)
437 CPPUNIT_TEST(test_MSQueue_HP_member_noalign)
438 CPPUNIT_TEST(test_MSQueue_HP_base_cachealign)
439 CPPUNIT_TEST(test_MSQueue_HP_member_cachealign)
440 CPPUNIT_TEST(test_MSQueue_DHP_base)
441 CPPUNIT_TEST(test_MSQueue_DHP_member)
442 CPPUNIT_TEST(test_MSQueue_DHP_base_ic)
443 CPPUNIT_TEST(test_MSQueue_DHP_member_ic)
444 CPPUNIT_TEST(test_MSQueue_DHP_base_stat)
445 CPPUNIT_TEST(test_MSQueue_DHP_member_stat)
446 CPPUNIT_TEST(test_MSQueue_DHP_base_align)
447 CPPUNIT_TEST(test_MSQueue_DHP_member_align)
448 CPPUNIT_TEST(test_MSQueue_DHP_base_noalign)
449 CPPUNIT_TEST(test_MSQueue_DHP_member_noalign)
450 CPPUNIT_TEST(test_MSQueue_DHP_base_cachealign)
451 CPPUNIT_TEST(test_MSQueue_DHP_member_cachealign)
453 CPPUNIT_TEST(test_MoirQueue_HP_default)
454 CPPUNIT_TEST(test_MoirQueue_HP_default_ic)
455 CPPUNIT_TEST(test_MoirQueue_HP_default_stat)
456 CPPUNIT_TEST(test_MoirQueue_HP_base)
457 CPPUNIT_TEST(test_MoirQueue_HP_member)
458 CPPUNIT_TEST(test_MoirQueue_HP_base_ic)
459 CPPUNIT_TEST(test_MoirQueue_HP_member_ic)
460 CPPUNIT_TEST(test_MoirQueue_HP_base_stat)
461 CPPUNIT_TEST(test_MoirQueue_HP_member_stat)
462 CPPUNIT_TEST(test_MoirQueue_HP_base_align)
463 CPPUNIT_TEST(test_MoirQueue_HP_member_align)
464 CPPUNIT_TEST(test_MoirQueue_HP_base_noalign)
465 CPPUNIT_TEST(test_MoirQueue_HP_member_noalign)
466 CPPUNIT_TEST(test_MoirQueue_HP_base_cachealign)
467 CPPUNIT_TEST(test_MoirQueue_HP_member_cachealign)
468 CPPUNIT_TEST(test_MoirQueue_DHP_base)
469 CPPUNIT_TEST(test_MoirQueue_DHP_member)
470 CPPUNIT_TEST(test_MoirQueue_DHP_base_ic)
471 CPPUNIT_TEST(test_MoirQueue_DHP_member_ic)
472 CPPUNIT_TEST(test_MoirQueue_DHP_base_stat)
473 CPPUNIT_TEST(test_MoirQueue_DHP_member_stat)
474 CPPUNIT_TEST(test_MoirQueue_DHP_base_align)
475 CPPUNIT_TEST(test_MoirQueue_DHP_member_align)
476 CPPUNIT_TEST(test_MoirQueue_DHP_base_noalign)
477 CPPUNIT_TEST(test_MoirQueue_DHP_member_noalign)
478 CPPUNIT_TEST(test_MoirQueue_DHP_base_cachealign)
479 CPPUNIT_TEST(test_MoirQueue_DHP_member_cachealign)
481 CPPUNIT_TEST(test_OptimisticQueue_HP_default)
482 CPPUNIT_TEST(test_OptimisticQueue_HP_default_ic)
483 CPPUNIT_TEST(test_OptimisticQueue_HP_default_stat)
484 CPPUNIT_TEST(test_OptimisticQueue_HP_base)
485 CPPUNIT_TEST(test_OptimisticQueue_HP_member)
486 CPPUNIT_TEST(test_OptimisticQueue_HP_base_ic)
487 CPPUNIT_TEST(test_OptimisticQueue_HP_member_ic)
488 CPPUNIT_TEST(test_OptimisticQueue_HP_base_stat)
489 CPPUNIT_TEST(test_OptimisticQueue_HP_member_stat)
490 CPPUNIT_TEST(test_OptimisticQueue_HP_base_align)
491 CPPUNIT_TEST(test_OptimisticQueue_HP_member_align)
492 CPPUNIT_TEST(test_OptimisticQueue_HP_base_noalign)
493 CPPUNIT_TEST(test_OptimisticQueue_HP_member_noalign)
494 CPPUNIT_TEST(test_OptimisticQueue_HP_base_cachealign)
495 CPPUNIT_TEST(test_OptimisticQueue_HP_member_cachealign)
496 CPPUNIT_TEST(test_OptimisticQueue_DHP_base)
497 CPPUNIT_TEST(test_OptimisticQueue_DHP_member)
498 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_ic)
499 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_ic)
500 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_stat)
501 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_stat)
502 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_align)
503 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_align)
504 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_noalign)
505 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_noalign)
506 CPPUNIT_TEST(test_OptimisticQueue_DHP_base_cachealign)
507 CPPUNIT_TEST(test_OptimisticQueue_DHP_member_cachealign)
509 CPPUNIT_TEST(test_BasketQueue_HP_default)
510 CPPUNIT_TEST(test_BasketQueue_HP_default_ic)
511 CPPUNIT_TEST(test_BasketQueue_HP_default_stat)
512 CPPUNIT_TEST(test_BasketQueue_HP_base)
513 CPPUNIT_TEST(test_BasketQueue_HP_member)
514 CPPUNIT_TEST(test_BasketQueue_HP_base_ic)
515 CPPUNIT_TEST(test_BasketQueue_HP_member_ic)
516 CPPUNIT_TEST(test_BasketQueue_HP_base_stat)
517 CPPUNIT_TEST(test_BasketQueue_HP_member_stat)
518 CPPUNIT_TEST(test_BasketQueue_HP_base_align)
519 CPPUNIT_TEST(test_BasketQueue_HP_member_align)
520 CPPUNIT_TEST(test_BasketQueue_HP_base_noalign)
521 CPPUNIT_TEST(test_BasketQueue_HP_member_noalign)
522 CPPUNIT_TEST(test_BasketQueue_HP_base_cachealign)
523 CPPUNIT_TEST(test_BasketQueue_HP_member_cachealign)
524 CPPUNIT_TEST(test_BasketQueue_DHP_base)
525 CPPUNIT_TEST(test_BasketQueue_DHP_member)
526 CPPUNIT_TEST(test_BasketQueue_DHP_base_ic)
527 CPPUNIT_TEST(test_BasketQueue_DHP_member_ic)
528 CPPUNIT_TEST(test_BasketQueue_DHP_base_stat)
529 CPPUNIT_TEST(test_BasketQueue_DHP_member_stat)
530 CPPUNIT_TEST(test_BasketQueue_DHP_base_align)
531 CPPUNIT_TEST(test_BasketQueue_DHP_member_align)
532 CPPUNIT_TEST(test_BasketQueue_DHP_base_noalign)
533 CPPUNIT_TEST(test_BasketQueue_DHP_member_noalign)
534 CPPUNIT_TEST(test_BasketQueue_DHP_base_cachealign)
535 CPPUNIT_TEST(test_BasketQueue_DHP_member_cachealign)
537 CPPUNIT_TEST(test_TsigasCycleQueue_static)
538 CPPUNIT_TEST(test_TsigasCycleQueue_static_ic)
539 CPPUNIT_TEST(test_TsigasCycleQueue_dyn)
540 CPPUNIT_TEST(test_TsigasCycleQueue_dyn_ic)
542 CPPUNIT_TEST(test_VyukovMPMCCycleQueue_static);
543 CPPUNIT_TEST(test_VyukovMPMCCycleQueue_static_ic);
544 CPPUNIT_TEST(test_VyukovMPMCCycleQueue_dyn);
545 CPPUNIT_TEST(test_VyukovMPMCCycleQueue_dyn_ic);
547 CPPUNIT_TEST_SUITE_END()
551 #endif // #ifndef CDSTEST_HDR_INTRSUSIVE_MSQUEUE_H