Move libcds 1.6.0 from SVN
[libcds.git] / tests / test-hdr / deque / hdr_michael_deque_ptb.cpp
1 //$$CDS-header$$
2
3 #include "hdr_deque.h"
4 #include <cds/gc/ptb.h>
5 #include <cds/container/michael_deque.h>
6
7 namespace deque {
8 #define TEST(X) void DequeHeaderTest::test_##X() { test<X>(); }
9
10     namespace cc = cds::container;
11     namespace co = cds::opt;
12
13     namespace {
14         typedef cds::gc::PTB PTB;
15         typedef deque::DequeHeaderTest::value_type value_type;
16
17         typedef cc::MichaelDeque< PTB, value_type > MichaelDeque_PTB;
18
19         /// PTB + item counter
20         typedef cc::MichaelDeque< PTB, value_type
21             ,co::item_counter< cds::atomicity::item_counter >
22             ,co::memory_model< co::v::sequential_consistent >
23         > MichaelDeque_PTB_ic;
24
25         /// PTB + stat
26         typedef cc::MichaelDeque< PTB, value_type
27             ,co::stat< cds::intrusive::michael_deque::stat<> >
28         > MichaelDeque_PTB_stat;
29
30         /// PTB + noalign
31         typedef cc::MichaelDeque< PTB, value_type
32             ,co::alignment< co::no_special_alignment >
33             ,co::item_counter< cds::atomicity::item_counter >
34         > MichaelDeque_PTB_noalign;
35
36     }   // namespace
37
38     TEST( MichaelDeque_PTB)
39     TEST( MichaelDeque_PTB_ic)
40     TEST( MichaelDeque_PTB_stat)
41     TEST( MichaelDeque_PTB_noalign)
42
43 } // namespace deque