MSQueue, MoirQueue refactoring done (issues #1, #2, #3)
[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::msqueue::node< cds::gc::HP > ) \
9     TEST_CASE(MSQueue_HP_ic,            cds::intrusive::msqueue::node< cds::gc::HP > ) \
10     TEST_CASE(MSQueue_HP_stat,          cds::intrusive::msqueue::node< cds::gc::HP > ) \
11     TEST_CASE(MSQueue_HP_seqcst,        cds::intrusive::msqueue::node< cds::gc::HP > ) \
12     TEST_CASE(MSQueue_DHP,              cds::intrusive::msqueue::node< cds::gc::DHP > ) \
13     TEST_CASE(MSQueue_DHP_ic,           cds::intrusive::msqueue::node< cds::gc::DHP > ) \
14     TEST_CASE(MSQueue_DHP_stat,         cds::intrusive::msqueue::node< cds::gc::DHP > ) \
15     TEST_CASE(MSQueue_DHP_seqcst,       cds::intrusive::msqueue::node< cds::gc::DHP > )
16
17 #define CDSUNIT_TEST_MSQueue \
18     CPPUNIT_TEST(MSQueue_HP) \
19     CPPUNIT_TEST(MSQueue_HP_ic) \
20     CPPUNIT_TEST(MSQueue_HP_stat) \
21     CPPUNIT_TEST(MSQueue_HP_seqcst) \
22     CPPUNIT_TEST(MSQueue_DHP) \
23     CPPUNIT_TEST(MSQueue_DHP_ic) \
24     CPPUNIT_TEST(MSQueue_DHP_stat) \
25     CPPUNIT_TEST(MSQueue_DHP_seqcst)
26
27 // MoirQueue
28 #define CDSUNIT_DECLARE_MoirQueue \
29     TEST_CASE(MoirQueue_HP,               cds::intrusive::msqueue::node< cds::gc::HP > ) \
30     TEST_CASE(MoirQueue_HP_ic,            cds::intrusive::msqueue::node< cds::gc::HP > ) \
31     TEST_CASE(MoirQueue_HP_stat,          cds::intrusive::msqueue::node< cds::gc::HP > ) \
32     TEST_CASE(MoirQueue_HP_seqcst,        cds::intrusive::msqueue::node< cds::gc::HP > ) \
33     TEST_CASE(MoirQueue_DHP,              cds::intrusive::msqueue::node< cds::gc::DHP > ) \
34     TEST_CASE(MoirQueue_DHP_ic,           cds::intrusive::msqueue::node< cds::gc::DHP > ) \
35     TEST_CASE(MoirQueue_DHP_stat,         cds::intrusive::msqueue::node< cds::gc::DHP > ) \
36     TEST_CASE(MoirQueue_DHP_seqcst,       cds::intrusive::msqueue::node< cds::gc::DHP > )
37
38 #define CDSUNIT_TEST_MoirQueue \
39     CPPUNIT_TEST(MoirQueue_HP) \
40     CPPUNIT_TEST(MoirQueue_HP_ic) \
41     CPPUNIT_TEST(MoirQueue_HP_stat) \
42     CPPUNIT_TEST(MoirQueue_HP_seqcst) \
43     CPPUNIT_TEST(MoirQueue_DHP) \
44     CPPUNIT_TEST(MoirQueue_DHP_ic) \
45     CPPUNIT_TEST(MoirQueue_DHP_stat) \
46     CPPUNIT_TEST(MoirQueue_DHP_seqcst)
47
48
49 // OptimisticQueue
50 #define CDSUNIT_DECLARE_OptimisticQueue \
51     TEST_CASE(OptimisticQueue_HP,               cds::intrusive::optimistic_queue::node< cds::gc::HP > ) \
52     TEST_CASE(OptimisticQueue_HP_ic,            cds::intrusive::optimistic_queue::node< cds::gc::HP > ) \
53     TEST_CASE(OptimisticQueue_HP_stat,          cds::intrusive::optimistic_queue::node< cds::gc::HP > ) \
54     TEST_CASE(OptimisticQueue_HP_seqcst,        cds::intrusive::optimistic_queue::node< cds::gc::HP > ) \
55     TEST_CASE(OptimisticQueue_PTB,              cds::intrusive::optimistic_queue::node< cds::gc::PTB > ) \
56     TEST_CASE(OptimisticQueue_PTB_ic,           cds::intrusive::optimistic_queue::node< cds::gc::PTB > ) \
57     TEST_CASE(OptimisticQueue_PTB_stat,         cds::intrusive::optimistic_queue::node< cds::gc::PTB > ) \
58     TEST_CASE(OptimisticQueue_PTB_seqcst,       cds::intrusive::optimistic_queue::node< cds::gc::PTB > )
59
60 #define CDSUNIT_TEST_OptimisticQueue \
61     CPPUNIT_TEST(OptimisticQueue_HP) \
62     CPPUNIT_TEST(OptimisticQueue_HP_ic) \
63     CPPUNIT_TEST(OptimisticQueue_HP_stat) \
64     CPPUNIT_TEST(OptimisticQueue_HP_seqcst) \
65     CPPUNIT_TEST(OptimisticQueue_PTB) \
66     CPPUNIT_TEST(OptimisticQueue_PTB_ic) \
67     CPPUNIT_TEST(OptimisticQueue_PTB_stat) \
68     CPPUNIT_TEST(OptimisticQueue_PTB_seqcst)
69
70
71 // BasketQueue
72 #define CDSUNIT_DECLARE_BasketQueue \
73     TEST_CASE(BasketQueue_HP,               cds::intrusive::basket_queue::node< cds::gc::HP > ) \
74     TEST_CASE(BasketQueue_HP_ic,            cds::intrusive::basket_queue::node< cds::gc::HP > ) \
75     TEST_CASE(BasketQueue_HP_stat,          cds::intrusive::basket_queue::node< cds::gc::HP > ) \
76     TEST_CASE(BasketQueue_HP_seqcst,        cds::intrusive::basket_queue::node< cds::gc::HP > ) \
77     TEST_CASE(BasketQueue_HRC,              cds::intrusive::basket_queue::node< cds::gc::HRC > ) \
78     TEST_CASE(BasketQueue_HRC_ic,           cds::intrusive::basket_queue::node< cds::gc::HRC > ) \
79     TEST_CASE(BasketQueue_HRC_stat,         cds::intrusive::basket_queue::node< cds::gc::HRC > ) \
80     TEST_CASE(BasketQueue_HRC_seqcst,       cds::intrusive::basket_queue::node< cds::gc::HRC > ) \
81     TEST_CASE(BasketQueue_PTB,              cds::intrusive::basket_queue::node< cds::gc::PTB > ) \
82     TEST_CASE(BasketQueue_PTB_ic,           cds::intrusive::basket_queue::node< cds::gc::PTB > ) \
83     TEST_CASE(BasketQueue_PTB_stat,         cds::intrusive::basket_queue::node< cds::gc::PTB > ) \
84     TEST_CASE(BasketQueue_PTB_seqcst,       cds::intrusive::basket_queue::node< cds::gc::PTB > )
85
86 #define CDSUNIT_TEST_BasketQueue \
87     CPPUNIT_TEST(BasketQueue_HP) \
88     CPPUNIT_TEST(BasketQueue_HP_ic) \
89     CPPUNIT_TEST(BasketQueue_HP_stat) \
90     CPPUNIT_TEST(BasketQueue_HP_seqcst) \
91     /*CPPUNIT_TEST(BasketQueue_HRC)*/ \
92     /*CPPUNIT_TEST(BasketQueue_HRC_ic)*/ \
93     /*CPPUNIT_TEST(BasketQueue_HRC_stat)*/ \
94     /*CPPUNIT_TEST(BasketQueue_HRC_seqcst)*/ \
95     CPPUNIT_TEST(BasketQueue_PTB) \
96     CPPUNIT_TEST(BasketQueue_PTB_ic) \
97     CPPUNIT_TEST(BasketQueue_PTB_stat) \
98     CPPUNIT_TEST(BasketQueue_PTB_seqcst)
99
100 // TsigasCycleQueue
101 #define CDSUNIT_DECLARE_TsigasCycleQueue \
102     TEST_BOUNDED(TsigasCycleQueue_dyn) \
103     TEST_BOUNDED(TsigasCycleQueue_dyn_ic)
104
105 #define CDSUNIT_TEST_TsigasCycleQueue \
106     CPPUNIT_TEST(TsigasCycleQueue_dyn) \
107     CPPUNIT_TEST(TsigasCycleQueue_dyn_ic)
108
109
110 // VyukovMPMCCycleQueue
111 #define CDSUNIT_DECLARE_VyukovMPMCCycleQueue \
112     TEST_BOUNDED(VyukovMPMCCycleQueue_dyn) \
113     TEST_BOUNDED(VyukovMPMCCycleQueue_dyn_ic)
114
115 #define CDSUNIT_TEST_VyukovMPMCCycleQueue \
116     CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn) \
117     CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn_ic)
118
119
120 // FCQueue
121 #define CDSUNIT_DECLARE_FCQueue \
122     TEST_FCQUEUE(FCQueue_list_delay2, boost::intrusive::list_base_hook<> ) \
123     TEST_FCQUEUE(FCQueue_list_delay2_elimination, boost::intrusive::list_base_hook<> ) \
124     TEST_FCQUEUE(FCQueue_list_delay2_elimination_stat, boost::intrusive::list_base_hook<> ) \
125     TEST_FCQUEUE(FCQueue_list_expbackoff_elimination, boost::intrusive::list_base_hook<> ) \
126     TEST_FCQUEUE(FCQueue_list_expbackoff_elimination_stat, boost::intrusive::list_base_hook<> )
127
128 #define CDSUNIT_TEST_FCQueue \
129     CPPUNIT_TEST(FCQueue_list_delay2) \
130     CPPUNIT_TEST(FCQueue_list_delay2_elimination) \
131     CPPUNIT_TEST(FCQueue_list_delay2_elimination_stat) \
132     CPPUNIT_TEST(FCQueue_list_expbackoff_elimination) \
133     CPPUNIT_TEST(FCQueue_list_expbackoff_elimination_stat)
134
135 // SegmentedQueue
136 #define CDSUNIT_DECLARE_SegmentedQueue \
137     TEST_SEGMENTED( SegmentedQueue_HP_spin ) \
138     TEST_SEGMENTED( SegmentedQueue_HP_spin_stat ) \
139     TEST_SEGMENTED( SegmentedQueue_HP_mutex ) \
140     TEST_SEGMENTED( SegmentedQueue_HP_mutex_stat ) \
141     TEST_SEGMENTED( SegmentedQueue_PTB_spin ) \
142     TEST_SEGMENTED( SegmentedQueue_PTB_spin_stat ) \
143     TEST_SEGMENTED( SegmentedQueue_PTB_mutex ) \
144     TEST_SEGMENTED( SegmentedQueue_PTB_mutex_stat )
145
146 #define CDSUNIT_TEST_SegmentedQueue \
147     CPPUNIT_TEST( SegmentedQueue_HP_spin ) \
148     CPPUNIT_TEST( SegmentedQueue_HP_spin_stat ) \
149     CPPUNIT_TEST( SegmentedQueue_HP_mutex ) \
150     CPPUNIT_TEST( SegmentedQueue_HP_mutex_stat ) \
151     CPPUNIT_TEST( SegmentedQueue_PTB_spin ) \
152     CPPUNIT_TEST( SegmentedQueue_PTB_spin_stat ) \
153     CPPUNIT_TEST( SegmentedQueue_PTB_mutex ) \
154     CPPUNIT_TEST( SegmentedQueue_PTB_mutex_stat )
155
156
157 // BoostSList
158 #define CDSUNIT_DECLARE_BoostSList \
159     TEST_BOOST( BoostSList_mutex, boost::intrusive::slist_base_hook<> ) \
160     TEST_BOOST( BoostSList_spin, boost::intrusive::slist_base_hook<> )
161
162 #define CDSUNIT_TEST_BoostSList \
163     CPPUNIT_TEST( BoostSList_mutex ) \
164     CPPUNIT_TEST( BoostSList_spin )
165
166 #endif // #ifndef __CDSUNIT_INTRUSIVE_QUEUE_DEFS_H