43444feef72f761f17296e0a49ede74f327d9bf3
[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_DHP,              cds::intrusive::optimistic_queue::node< cds::gc::DHP > ) \
56     TEST_CASE(OptimisticQueue_DHP_ic,           cds::intrusive::optimistic_queue::node< cds::gc::DHP > ) \
57     TEST_CASE(OptimisticQueue_DHP_stat,         cds::intrusive::optimistic_queue::node< cds::gc::DHP > ) \
58     TEST_CASE(OptimisticQueue_DHP_seqcst,       cds::intrusive::optimistic_queue::node< cds::gc::DHP > )
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_DHP) \
66     CPPUNIT_TEST(OptimisticQueue_DHP_ic) \
67     CPPUNIT_TEST(OptimisticQueue_DHP_stat) \
68     CPPUNIT_TEST(OptimisticQueue_DHP_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_DHP,              cds::intrusive::basket_queue::node< cds::gc::DHP > ) \
78     TEST_CASE(BasketQueue_DHP_ic,           cds::intrusive::basket_queue::node< cds::gc::DHP > ) \
79     TEST_CASE(BasketQueue_DHP_stat,         cds::intrusive::basket_queue::node< cds::gc::DHP > ) \
80     TEST_CASE(BasketQueue_DHP_seqcst,       cds::intrusive::basket_queue::node< cds::gc::DHP > )
81
82 #define CDSUNIT_TEST_BasketQueue \
83     CPPUNIT_TEST(BasketQueue_HP) \
84     CPPUNIT_TEST(BasketQueue_HP_ic) \
85     CPPUNIT_TEST(BasketQueue_HP_stat) \
86     CPPUNIT_TEST(BasketQueue_HP_seqcst) \
87     CPPUNIT_TEST(BasketQueue_DHP) \
88     CPPUNIT_TEST(BasketQueue_DHP_ic) \
89     CPPUNIT_TEST(BasketQueue_DHP_stat) \
90     CPPUNIT_TEST(BasketQueue_DHP_seqcst)
91
92 // TsigasCycleQueue
93 #define CDSUNIT_DECLARE_TsigasCycleQueue \
94     TEST_BOUNDED(TsigasCycleQueue_dyn) \
95     TEST_BOUNDED(TsigasCycleQueue_dyn_ic)
96
97 #define CDSUNIT_TEST_TsigasCycleQueue \
98     CPPUNIT_TEST(TsigasCycleQueue_dyn) \
99     CPPUNIT_TEST(TsigasCycleQueue_dyn_ic)
100
101
102 // VyukovMPMCCycleQueue
103 #define CDSUNIT_DECLARE_VyukovMPMCCycleQueue \
104     TEST_BOUNDED(VyukovMPMCCycleQueue_dyn) \
105     TEST_BOUNDED(VyukovMPMCCycleQueue_dyn_ic)
106
107 #define CDSUNIT_TEST_VyukovMPMCCycleQueue \
108     CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn) \
109     CPPUNIT_TEST(VyukovMPMCCycleQueue_dyn_ic)
110
111
112 // FCQueue
113 #define CDSUNIT_DECLARE_FCQueue \
114     TEST_FCQUEUE(FCQueue_list_delay2, boost::intrusive::list_base_hook<> ) \
115     TEST_FCQUEUE(FCQueue_list_delay2_elimination, boost::intrusive::list_base_hook<> ) \
116     TEST_FCQUEUE(FCQueue_list_delay2_elimination_stat, boost::intrusive::list_base_hook<> ) \
117     TEST_FCQUEUE(FCQueue_list_expbackoff_elimination, boost::intrusive::list_base_hook<> ) \
118     TEST_FCQUEUE(FCQueue_list_expbackoff_elimination_stat, boost::intrusive::list_base_hook<> )
119
120 #define CDSUNIT_TEST_FCQueue \
121     CPPUNIT_TEST(FCQueue_list_delay2) \
122     CPPUNIT_TEST(FCQueue_list_delay2_elimination) \
123     CPPUNIT_TEST(FCQueue_list_delay2_elimination_stat) \
124     CPPUNIT_TEST(FCQueue_list_expbackoff_elimination) \
125     CPPUNIT_TEST(FCQueue_list_expbackoff_elimination_stat)
126
127 // SegmentedQueue
128 #define CDSUNIT_DECLARE_SegmentedQueue \
129     TEST_SEGMENTED( SegmentedQueue_HP_spin ) \
130     TEST_SEGMENTED( SegmentedQueue_HP_spin_stat ) \
131     TEST_SEGMENTED( SegmentedQueue_HP_mutex ) \
132     TEST_SEGMENTED( SegmentedQueue_HP_mutex_stat ) \
133     TEST_SEGMENTED( SegmentedQueue_PTB_spin ) \
134     TEST_SEGMENTED( SegmentedQueue_PTB_spin_stat ) \
135     TEST_SEGMENTED( SegmentedQueue_PTB_mutex ) \
136     TEST_SEGMENTED( SegmentedQueue_PTB_mutex_stat )
137
138 #define CDSUNIT_TEST_SegmentedQueue \
139     CPPUNIT_TEST( SegmentedQueue_HP_spin ) \
140     CPPUNIT_TEST( SegmentedQueue_HP_spin_stat ) \
141     CPPUNIT_TEST( SegmentedQueue_HP_mutex ) \
142     CPPUNIT_TEST( SegmentedQueue_HP_mutex_stat ) \
143     CPPUNIT_TEST( SegmentedQueue_PTB_spin ) \
144     CPPUNIT_TEST( SegmentedQueue_PTB_spin_stat ) \
145     CPPUNIT_TEST( SegmentedQueue_PTB_mutex ) \
146     CPPUNIT_TEST( SegmentedQueue_PTB_mutex_stat )
147
148
149 // BoostSList
150 #define CDSUNIT_DECLARE_BoostSList \
151     TEST_BOOST( BoostSList_mutex, boost::intrusive::slist_base_hook<> ) \
152     TEST_BOOST( BoostSList_spin, boost::intrusive::slist_base_hook<> )
153
154 #define CDSUNIT_TEST_BoostSList \
155     CPPUNIT_TEST( BoostSList_mutex ) \
156     CPPUNIT_TEST( BoostSList_spin )
157
158 #endif // #ifndef __CDSUNIT_INTRUSIVE_QUEUE_DEFS_H