Remove MichaelDeque
[libcds.git] / tests / unit / queue / intrusive_queue_defs.h
1 //$$CDS-header$$
2
3 #ifndef __CDSUNIT_INTRUSIVE_QUEUE_DEFS_H
4 #define __CDSUNIT_INTRUSIVE_QUEUE_DEFS_H
5
6 // MSQueue
7 #define CDSUNIT_DECLARE_MSQueue \
8     TEST_CASE(MSQueue_HP,               cds::intrusive::single_link::node< cds::gc::HP > ) \
9     TEST_CASE(MSQueue_HP_ic,            cds::intrusive::single_link::node< cds::gc::HP > ) \
10     TEST_CASE(MSQueue_HP_stat,          cds::intrusive::single_link::node< cds::gc::HP > ) \
11     TEST_CASE(MSQueue_HP_seqcst,        cds::intrusive::single_link::node< cds::gc::HP > ) \
12     TEST_CASE(MSQueue_HRC,              cds::intrusive::single_link::node< cds::gc::HRC > ) \
13     TEST_CASE(MSQueue_HRC_ic,           cds::intrusive::single_link::node< cds::gc::HRC > ) \
14     TEST_CASE(MSQueue_HRC_stat,         cds::intrusive::single_link::node< cds::gc::HRC > ) \
15     TEST_CASE(MSQueue_HRC_seqcst,       cds::intrusive::single_link::node< cds::gc::HRC > ) \
16     TEST_CASE(MSQueue_PTB,              cds::intrusive::single_link::node< cds::gc::PTB > ) \
17     TEST_CASE(MSQueue_PTB_ic,           cds::intrusive::single_link::node< cds::gc::PTB > ) \
18     TEST_CASE(MSQueue_PTB_stat,         cds::intrusive::single_link::node< cds::gc::PTB > ) \
19     TEST_CASE(MSQueue_PTB_seqcst,       cds::intrusive::single_link::node< cds::gc::PTB > )
20
21 #define CDSUNIT_TEST_MSQueue \
22     CPPUNIT_TEST(MSQueue_HP) \
23     CPPUNIT_TEST(MSQueue_HP_ic) \
24     CPPUNIT_TEST(MSQueue_HP_stat) \
25     CPPUNIT_TEST(MSQueue_HP_seqcst) \
26     /*CPPUNIT_TEST(MSQueue_HRC)*/ \
27     /*CPPUNIT_TEST(MSQueue_HRC_ic)*/ \
28     /*CPPUNIT_TEST(MSQueue_HRC_stat)*/ \
29     /*CPPUNIT_TEST(MSQueue_HRC_seqcst)*/ \
30     CPPUNIT_TEST(MSQueue_PTB) \
31     CPPUNIT_TEST(MSQueue_PTB_ic) \
32     CPPUNIT_TEST(MSQueue_PTB_stat) \
33     CPPUNIT_TEST(MSQueue_PTB_seqcst)
34
35 // MoirQueue
36 #define CDSUNIT_DECLARE_MoirQueue \
37     TEST_CASE(MoirQueue_HP,               cds::intrusive::single_link::node< cds::gc::HP > ) \
38     TEST_CASE(MoirQueue_HP_ic,            cds::intrusive::single_link::node< cds::gc::HP > ) \
39     TEST_CASE(MoirQueue_HP_stat,          cds::intrusive::single_link::node< cds::gc::HP > ) \
40     TEST_CASE(MoirQueue_HP_seqcst,        cds::intrusive::single_link::node< cds::gc::HP > ) \
41     TEST_CASE(MoirQueue_HRC,              cds::intrusive::single_link::node< cds::gc::HRC > ) \
42     TEST_CASE(MoirQueue_HRC_ic,           cds::intrusive::single_link::node< cds::gc::HRC > ) \
43     TEST_CASE(MoirQueue_HRC_stat,         cds::intrusive::single_link::node< cds::gc::HRC > ) \
44     TEST_CASE(MoirQueue_HRC_seqcst,       cds::intrusive::single_link::node< cds::gc::HRC > ) \
45     TEST_CASE(MoirQueue_PTB,              cds::intrusive::single_link::node< cds::gc::PTB > ) \
46     TEST_CASE(MoirQueue_PTB_ic,           cds::intrusive::single_link::node< cds::gc::PTB > ) \
47     TEST_CASE(MoirQueue_PTB_stat,         cds::intrusive::single_link::node< cds::gc::PTB > ) \
48     TEST_CASE(MoirQueue_PTB_seqcst,       cds::intrusive::single_link::node< cds::gc::PTB > )
49
50 #define CDSUNIT_TEST_MoirQueue \
51     CPPUNIT_TEST(MoirQueue_HP) \
52     CPPUNIT_TEST(MoirQueue_HP_ic) \
53     CPPUNIT_TEST(MoirQueue_HP_stat) \
54     CPPUNIT_TEST(MoirQueue_HP_seqcst) \
55     /*CPPUNIT_TEST(MoirQueue_HRC)*/ \
56     /*CPPUNIT_TEST(MoirQueue_HRC_ic)*/ \
57     /*CPPUNIT_TEST(MoirQueue_HRC_stat)*/ \
58     /*CPPUNIT_TEST(MoirQueue_HRC_seqcst)*/ \
59     CPPUNIT_TEST(MoirQueue_PTB) \
60     CPPUNIT_TEST(MoirQueue_PTB_ic) \
61     CPPUNIT_TEST(MoirQueue_PTB_stat) \
62     CPPUNIT_TEST(MoirQueue_PTB_seqcst)
63
64
65 // OptimisticQueue
66 #define CDSUNIT_DECLARE_OptimisticQueue \
67     TEST_CASE(OptimisticQueue_HP,               cds::intrusive::optimistic_queue::node< cds::gc::HP > ) \
68     TEST_CASE(OptimisticQueue_HP_ic,            cds::intrusive::optimistic_queue::node< cds::gc::HP > ) \
69     TEST_CASE(OptimisticQueue_HP_stat,          cds::intrusive::optimistic_queue::node< cds::gc::HP > ) \
70     TEST_CASE(OptimisticQueue_HP_seqcst,        cds::intrusive::optimistic_queue::node< cds::gc::HP > ) \
71     TEST_CASE(OptimisticQueue_PTB,              cds::intrusive::optimistic_queue::node< cds::gc::PTB > ) \
72     TEST_CASE(OptimisticQueue_PTB_ic,           cds::intrusive::optimistic_queue::node< cds::gc::PTB > ) \
73     TEST_CASE(OptimisticQueue_PTB_stat,         cds::intrusive::optimistic_queue::node< cds::gc::PTB > ) \
74     TEST_CASE(OptimisticQueue_PTB_seqcst,       cds::intrusive::optimistic_queue::node< cds::gc::PTB > )
75
76 #define CDSUNIT_TEST_OptimisticQueue \
77     CPPUNIT_TEST(OptimisticQueue_HP) \
78     CPPUNIT_TEST(OptimisticQueue_HP_ic) \
79     CPPUNIT_TEST(OptimisticQueue_HP_stat) \
80     CPPUNIT_TEST(OptimisticQueue_HP_seqcst) \
81     CPPUNIT_TEST(OptimisticQueue_PTB) \
82     CPPUNIT_TEST(OptimisticQueue_PTB_ic) \
83     CPPUNIT_TEST(OptimisticQueue_PTB_stat) \
84     CPPUNIT_TEST(OptimisticQueue_PTB_seqcst)
85
86
87 // BasketQueue
88 #define CDSUNIT_DECLARE_BasketQueue \
89     TEST_CASE(BasketQueue_HP,               cds::intrusive::basket_queue::node< cds::gc::HP > ) \
90     TEST_CASE(BasketQueue_HP_ic,            cds::intrusive::basket_queue::node< cds::gc::HP > ) \
91     TEST_CASE(BasketQueue_HP_stat,          cds::intrusive::basket_queue::node< cds::gc::HP > ) \
92     TEST_CASE(BasketQueue_HP_seqcst,        cds::intrusive::basket_queue::node< cds::gc::HP > ) \
93     TEST_CASE(BasketQueue_HRC,              cds::intrusive::basket_queue::node< cds::gc::HRC > ) \
94     TEST_CASE(BasketQueue_HRC_ic,           cds::intrusive::basket_queue::node< cds::gc::HRC > ) \
95     TEST_CASE(BasketQueue_HRC_stat,         cds::intrusive::basket_queue::node< cds::gc::HRC > ) \
96     TEST_CASE(BasketQueue_HRC_seqcst,       cds::intrusive::basket_queue::node< cds::gc::HRC > ) \
97     TEST_CASE(BasketQueue_PTB,              cds::intrusive::basket_queue::node< cds::gc::PTB > ) \
98     TEST_CASE(BasketQueue_PTB_ic,           cds::intrusive::basket_queue::node< cds::gc::PTB > ) \
99     TEST_CASE(BasketQueue_PTB_stat,         cds::intrusive::basket_queue::node< cds::gc::PTB > ) \
100     TEST_CASE(BasketQueue_PTB_seqcst,       cds::intrusive::basket_queue::node< cds::gc::PTB > )
101
102 #define CDSUNIT_TEST_BasketQueue \
103     CPPUNIT_TEST(BasketQueue_HP) \
104     CPPUNIT_TEST(BasketQueue_HP_ic) \
105     CPPUNIT_TEST(BasketQueue_HP_stat) \
106     CPPUNIT_TEST(BasketQueue_HP_seqcst) \
107     /*CPPUNIT_TEST(BasketQueue_HRC)*/ \
108     /*CPPUNIT_TEST(BasketQueue_HRC_ic)*/ \
109     /*CPPUNIT_TEST(BasketQueue_HRC_stat)*/ \
110     /*CPPUNIT_TEST(BasketQueue_HRC_seqcst)*/ \
111     CPPUNIT_TEST(BasketQueue_PTB) \
112     CPPUNIT_TEST(BasketQueue_PTB_ic) \
113     CPPUNIT_TEST(BasketQueue_PTB_stat) \
114     CPPUNIT_TEST(BasketQueue_PTB_seqcst)
115
116 // TsigasCycleQueue
117 #define CDSUNIT_DECLARE_TsigasCycleQueue \
118     TEST_BOUNDED(TsigasCycleQueue_dyn) \
119     TEST_BOUNDED(TsigasCycleQueue_dyn_ic)
120
121 #define CDSUNIT_TEST_TsigasCycleQueue \
122     CPPUNIT_TEST(TsigasCycleQueue_dyn) \
123     CPPUNIT_TEST(TsigasCycleQueue_dyn_ic)
124
125
126 // VyukovMPMCCycleQueue
127 #define CDSUNIT_DECLARE_VyukovMPMCCycleQueue \
128     TEST_BOUNDED(VyukovMPMCCycleQueue_dyn) \
129     TEST_BOUNDED(VyukovMPMCCycleQueue_dyn_ic)
130
131 #define CDSUNIT_TEST_VyukovMPMCCycleQueue \
132     CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn) \
133     CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn_ic)
134
135
136 // FCQueue
137 #define CDSUNIT_DECLARE_FCQueue \
138     TEST_FCQUEUE(FCQueue_list_delay2, boost::intrusive::list_base_hook<> ) \
139     TEST_FCQUEUE(FCQueue_list_delay2_elimination, boost::intrusive::list_base_hook<> ) \
140     TEST_FCQUEUE(FCQueue_list_delay2_elimination_stat, boost::intrusive::list_base_hook<> ) \
141     TEST_FCQUEUE(FCQueue_list_expbackoff_elimination, boost::intrusive::list_base_hook<> ) \
142     TEST_FCQUEUE(FCQueue_list_expbackoff_elimination_stat, boost::intrusive::list_base_hook<> )
143
144 #define CDSUNIT_TEST_FCQueue \
145     CPPUNIT_TEST(FCQueue_list_delay2) \
146     CPPUNIT_TEST(FCQueue_list_delay2_elimination) \
147     CPPUNIT_TEST(FCQueue_list_delay2_elimination_stat) \
148     CPPUNIT_TEST(FCQueue_list_expbackoff_elimination) \
149     CPPUNIT_TEST(FCQueue_list_expbackoff_elimination_stat)
150
151 // SegmentedQueue
152 #define CDSUNIT_DECLARE_SegmentedQueue \
153     TEST_SEGMENTED( SegmentedQueue_HP_spin ) \
154     TEST_SEGMENTED( SegmentedQueue_HP_spin_stat ) \
155     TEST_SEGMENTED( SegmentedQueue_HP_mutex ) \
156     TEST_SEGMENTED( SegmentedQueue_HP_mutex_stat ) \
157     TEST_SEGMENTED( SegmentedQueue_PTB_spin ) \
158     TEST_SEGMENTED( SegmentedQueue_PTB_spin_stat ) \
159     TEST_SEGMENTED( SegmentedQueue_PTB_mutex ) \
160     TEST_SEGMENTED( SegmentedQueue_PTB_mutex_stat )
161
162 #define CDSUNIT_TEST_SegmentedQueue \
163     CPPUNIT_TEST( SegmentedQueue_HP_spin ) \
164     CPPUNIT_TEST( SegmentedQueue_HP_spin_stat ) \
165     CPPUNIT_TEST( SegmentedQueue_HP_mutex ) \
166     CPPUNIT_TEST( SegmentedQueue_HP_mutex_stat ) \
167     CPPUNIT_TEST( SegmentedQueue_PTB_spin ) \
168     CPPUNIT_TEST( SegmentedQueue_PTB_spin_stat ) \
169     CPPUNIT_TEST( SegmentedQueue_PTB_mutex ) \
170     CPPUNIT_TEST( SegmentedQueue_PTB_mutex_stat )
171
172
173 // BoostSList
174 #define CDSUNIT_DECLARE_BoostSList \
175     TEST_BOOST( BoostSList_mutex, boost::intrusive::slist_base_hook<> ) \
176     TEST_BOOST( BoostSList_spin, boost::intrusive::slist_base_hook<> )
177
178 #define CDSUNIT_TEST_BoostSList \
179     CPPUNIT_TEST( BoostSList_mutex ) \
180     CPPUNIT_TEST( BoostSList_spin )
181
182 #endif // #ifndef __CDSUNIT_INTRUSIVE_QUEUE_DEFS_H