Move libcds 1.6.0 from SVN
[libcds.git] / tests / test-hdr / deque / hdr_michael_deque_hp.cpp
1 //$$CDS-header$$
2
3 #include "hdr_deque.h"
4 #include <cds/gc/hp.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::HP HP;
15         typedef deque::DequeHeaderTest::value_type value_type;
16
17         typedef cc::MichaelDeque< HP, value_type > MichaelDeque_HP;
18
19         /// HP + item counter
20         typedef cc::MichaelDeque< HP, value_type
21             ,co::item_counter< cds::atomicity::item_counter >
22             ,co::memory_model< co::v::sequential_consistent >
23         > MichaelDeque_HP_ic;
24
25         /// HP + stat
26         typedef cc::MichaelDeque< HP, value_type
27             ,co::stat< cds::intrusive::michael_deque::stat<> >
28         > MichaelDeque_HP_stat;
29
30         /// HP + noalign
31         typedef cc::MichaelDeque< HP, value_type
32             ,co::alignment< co::no_special_alignment >
33             ,co::item_counter< cds::atomicity::item_counter >
34         > MichaelDeque_HP_noalign;
35
36     }   // namespace
37
38     TEST( MichaelDeque_HP)
39     TEST( MichaelDeque_HP_ic)
40     TEST( MichaelDeque_HP_stat)
41     TEST( MichaelDeque_HP_noalign)
42
43 } // namespace deque
44
45 CPPUNIT_TEST_SUITE_REGISTRATION(deque::DequeHeaderTest);