TsigasCycleQueue refactoring
[libcds.git] / tests / test-hdr / queue / hdr_optimistic_dhp.cpp
1 //$$CDS-header$$
2
3 #include <cds/container/optimistic_queue.h>
4 #include <cds/gc/dhp.h>
5
6 #include "queue/hdr_queue_new.h"
7
8 namespace queue {
9
10     void HdrTestQueue::OptimisticQueue_DHP()
11     {
12         test_no_ic<cds::container::OptimisticQueue< cds::gc::DHP, int > >();
13     }
14
15     void HdrTestQueue::OptimisticQueue_DHP_Counted()
16     {
17         struct queue_traits : public cds::container::optimistic_queue::traits
18         {
19             typedef cds::atomicity::item_counter item_counter;
20         };
21         test_ic<cds::container::OptimisticQueue< cds::gc::DHP, int, queue_traits > >();
22     }
23
24     void HdrTestQueue::OptimisticQueue_DHP_relax()
25     {
26         struct queue_traits : public cds::container::optimistic_queue::traits
27         {
28             typedef cds::opt::v::relaxed_ordering memory_model;
29         };
30         test_no_ic<cds::container::OptimisticQueue< cds::gc::DHP, int, queue_traits > >();
31     }
32
33     void HdrTestQueue::OptimisticQueue_DHP_Counted_relax()
34     {
35         struct queue_traits : public cds::container::optimistic_queue::traits
36         {
37             typedef cds::atomicity::item_counter item_counter;
38             typedef cds::opt::v::relaxed_ordering memory_model;
39         };
40         test_ic <
41             cds::container::OptimisticQueue< cds::gc::DHP, int, queue_traits > >();
42     }
43
44     void HdrTestQueue::OptimisticQueue_DHP_seqcst()
45     {
46         test_no_ic<
47             cds::container::OptimisticQueue< cds::gc::DHP, int,
48                 typename cds::container::optimistic_queue::make_traits<
49                     cds::opt::memory_model< cds::opt::v::sequential_consistent>
50                 >::type
51             >
52         >();
53     }
54
55     void HdrTestQueue::OptimisticQueue_DHP_Counted_seqcst()
56     {
57         test_ic<
58             cds::container::OptimisticQueue< cds::gc::DHP, int,
59                 typename cds::container::optimistic_queue::make_traits<
60                     cds::opt::item_counter< cds::atomicity::item_counter >
61                     ,cds::opt::memory_model< cds::opt::v::sequential_consistent>
62                 >::type
63             >
64         >();
65     }
66
67     void HdrTestQueue::OptimisticQueue_DHP_relax_align()
68     {
69         test_no_ic<
70             cds::container::OptimisticQueue< cds::gc::DHP, int,
71                 typename cds::container::optimistic_queue::make_traits<
72                     cds::opt::memory_model< cds::opt::v::relaxed_ordering>
73                     ,cds::opt::alignment< 16 >
74                 >::type
75             >
76         >();
77     }
78
79     void HdrTestQueue::OptimisticQueue_DHP_Counted_relax_align()
80     {
81         test_ic<
82             cds::container::OptimisticQueue< cds::gc::DHP, int,
83                 typename cds::container::optimistic_queue::make_traits<
84                     cds::opt::item_counter< cds::atomicity::item_counter >
85                     ,cds::opt::memory_model< cds::opt::v::relaxed_ordering>
86                     ,cds::opt::alignment< 32 >
87                 >::type
88             >
89         >();
90     }
91
92     void HdrTestQueue::OptimisticQueue_DHP_seqcst_align()
93     {
94         test_no_ic<
95             cds::container::OptimisticQueue< cds::gc::DHP, int,
96                 typename cds::container::optimistic_queue::make_traits<
97                     cds::opt::memory_model< cds::opt::v::sequential_consistent>
98                     ,cds::opt::alignment< cds::opt::no_special_alignment >
99                 >::type
100             >
101         >();
102     }
103
104     void HdrTestQueue::OptimisticQueue_DHP_Counted_seqcst_align()
105     {
106         test_ic<
107             cds::container::OptimisticQueue< cds::gc::DHP, int,
108                 typename cds::container::optimistic_queue::make_traits<
109                     cds::opt::item_counter< cds::atomicity::item_counter >
110                     ,cds::opt::memory_model< cds::opt::v::sequential_consistent>
111                     ,cds::opt::alignment< cds::opt::cache_line_alignment >
112                 >::type
113             >
114         >();
115     }
116
117 }   // namespace queue