Changed: use padding option instead of alignment one
[libcds.git] / tests / test-hdr / queue / hdr_moirqueue_dhp.cpp
1 //$$CDS-header$$
2
3 #include <cds/gc/dhp.h>
4 #include <cds/container/moir_queue.h>
5 #include "queue/hdr_queue.h"
6
7 namespace queue {
8
9     void HdrTestQueue::MoirQueue_DHP()
10     {
11         typedef cds::container::MoirQueue< cds::gc::DHP, int > test_queue;
12         test_no_ic< test_queue >();
13     }
14
15     void HdrTestQueue::MoirQueue_DHP_Counted()
16     {
17         typedef cds::container::MoirQueue < cds::gc::DHP, int,
18             typename cds::container::msqueue::make_traits <
19                 cds::opt::item_counter < cds::atomicity::item_counter >
20             > ::type
21         > test_queue;
22
23         test_ic< test_queue >();
24     }
25
26     void HdrTestQueue::MoirQueue_DHP_relax()
27     {
28         typedef cds::container::MoirQueue < cds::gc::DHP, int,
29             typename cds::container::msqueue::make_traits <
30                 cds::opt::memory_model < cds::opt::v::relaxed_ordering >
31             > ::type
32         > test_queue;
33
34         test_no_ic< test_queue >();
35     }
36
37     void HdrTestQueue::MoirQueue_DHP_Counted_relax()
38     {
39         typedef cds::container::MoirQueue < cds::gc::DHP, int,
40             typename cds::container::msqueue::make_traits <
41                 cds::opt::item_counter< cds::atomicity::item_counter >
42                 , cds::opt::memory_model < cds::opt::v::relaxed_ordering >
43             > ::type
44         > test_queue;
45
46         test_ic< test_queue >();
47     }
48
49     void HdrTestQueue::MoirQueue_DHP_seqcst()
50     {
51         typedef cds::container::MoirQueue < cds::gc::DHP, int,
52             typename cds::container::msqueue::make_traits <
53                 cds::opt::memory_model < cds::opt::v::sequential_consistent >
54             > ::type
55         > test_queue;
56
57         test_no_ic< test_queue >();
58     }
59
60     void HdrTestQueue::MoirQueue_DHP_Counted_seqcst()
61     {
62         typedef cds::container::MoirQueue < cds::gc::DHP, int,
63             typename cds::container::msqueue::make_traits <
64                 cds::opt::item_counter< cds::atomicity::item_counter >
65                 , cds::opt::memory_model < cds::opt::v::sequential_consistent >
66             > ::type
67         > test_queue;
68
69         test_ic< test_queue >();
70     }
71
72     void HdrTestQueue::MoirQueue_DHP_relax_align()
73     {
74         typedef cds::container::MoirQueue < cds::gc::DHP, int,
75             typename cds::container::msqueue::make_traits <
76                 cds::opt::memory_model< cds::opt::v::relaxed_ordering>
77                 , cds::opt::padding < 16 >
78             > ::type
79         > test_queue;
80
81         test_no_ic< test_queue >();
82     }
83
84     void HdrTestQueue::MoirQueue_DHP_Counted_relax_align()
85     {
86         typedef cds::container::MoirQueue < cds::gc::DHP, int,
87             typename cds::container::msqueue::make_traits <
88                 cds::opt::item_counter< cds::atomicity::item_counter >
89                 , cds::opt::memory_model< cds::opt::v::relaxed_ordering>
90                 , cds::opt::padding < 32 >
91             >::type
92         > test_queue;
93
94         test_ic< test_queue >();
95     }
96
97     void HdrTestQueue::MoirQueue_DHP_seqcst_align()
98     {
99         typedef cds::container::MoirQueue < cds::gc::DHP, int,
100             typename cds::container::msqueue::make_traits <
101                 cds::opt::memory_model< cds::opt::v::sequential_consistent>
102                 ,cds::opt::padding < cds::opt::no_special_padding >
103             > ::type
104         > test_queue;
105
106         test_no_ic< test_queue >();
107     }
108
109     void HdrTestQueue::MoirQueue_DHP_Counted_seqcst_align()
110     {
111         typedef cds::container::MoirQueue < cds::gc::DHP, int,
112             typename cds::container::msqueue::make_traits <
113                 cds::opt::item_counter< cds::atomicity::item_counter >
114                 , cds::opt::memory_model< cds::opt::v::sequential_consistent>
115                 , cds::opt::padding < cds::opt::cache_line_padding >
116             > ::type
117         > test_queue;
118         test_ic< test_queue >();
119     }
120 }   // namespace queue