Move libcds 1.6.0 from SVN
[libcds.git] / tests / test-hdr / stack / hdr_treiber_stack_ptb.cpp
1 //$$CDS-header$$
2
3 #include "hdr_treiber_stack.h"
4 #include <cds/gc/ptb.h>
5 #include <cds/container/treiber_stack.h>
6
7 namespace stack {
8 #define TEST(X)     void TestStack::X() { test<defs::X>(); }
9     namespace cs = cds::container;
10
11     namespace defs { namespace {
12
13         typedef cs::TreiberStack< cds::gc::PTB, int > Treiber_PTB;
14         typedef cs::TreiberStack< cds::gc::PTB, int, cds::opt::memory_model<cds::opt::v::relaxed_ordering> > Treiber_PTB_relaxed;
15
16         typedef cs::TreiberStack< cds::gc::PTB, int, cds::opt::back_off< cds::backoff::yield> > Treiber_PTB_yield;
17         typedef cs::TreiberStack< cds::gc::PTB, int
18             ,cds::opt::back_off< cds::backoff::yield>
19             ,cds::opt::memory_model<cds::opt::v::relaxed_ordering>
20         > Treiber_PTB_yield_relaxed;
21
22         typedef cs::TreiberStack< cds::gc::PTB, int
23             ,cds::opt::back_off< cds::backoff::pause>
24             ,cds::opt::allocator< std::allocator< bool * > >
25         > Treiber_PTB_pause_alloc;
26
27         typedef cs::TreiberStack< cds::gc::PTB, int
28             ,cds::opt::memory_model<cds::opt::v::relaxed_ordering>
29             ,cds::opt::back_off< cds::backoff::pause>
30             ,cds::opt::allocator< std::allocator< bool * > >
31         > Treiber_PTB_pause_alloc_relaxed;
32     }}
33
34     TEST(Treiber_PTB)
35     TEST(Treiber_PTB_yield)
36     TEST(Treiber_PTB_pause_alloc)
37
38     TEST(Treiber_PTB_relaxed)
39     TEST(Treiber_PTB_yield_relaxed)
40     TEST(Treiber_PTB_pause_alloc_relaxed)
41
42 }