3 #ifndef __CDSUNIT_INTRUSIVE_STACK_DEFS_H
4 #define __CDSUNIT_INTRUSIVE_STACK_DEFS_H
6 #define CDSUNIT_DECLARE_TreiberStack \
7 TEST_CASE( Treiber_HP, cds::intrusive::single_link::node< cds::gc::HP > ) \
8 TEST_CASE( Treiber_HP_seqcst, cds::intrusive::single_link::node< cds::gc::HP > ) \
9 /*TEST_CASE( Treiber_HP_yield, cds::intrusive::single_link::node< cds::gc::HP > )*/ \
10 TEST_CASE( Treiber_HP_pause, cds::intrusive::single_link::node< cds::gc::HP > ) \
11 TEST_CASE( Treiber_HP_exp, cds::intrusive::single_link::node< cds::gc::HP > ) \
12 TEST_CASE( Treiber_HP_stat, cds::intrusive::single_link::node< cds::gc::HP > ) \
13 TEST_CASE( Treiber_HRC, cds::intrusive::single_link::node< cds::gc::HRC > ) \
14 /*TEST_CASE( Treiber_HRC_yield, cds::intrusive::single_link::node< cds::gc::HRC > )*/ \
15 TEST_CASE( Treiber_HRC_pause, cds::intrusive::single_link::node< cds::gc::HRC > ) \
16 TEST_CASE( Treiber_HRC_exp, cds::intrusive::single_link::node< cds::gc::HRC > ) \
17 TEST_CASE( Treiber_HRC_stat, cds::intrusive::single_link::node< cds::gc::HRC > ) \
18 TEST_CASE( Treiber_PTB, cds::intrusive::single_link::node< cds::gc::PTB > ) \
19 /*TEST_CASE( Treiber_PTB_yield, cds::intrusive::single_link::node< cds::gc::PTB > )*/ \
20 TEST_CASE( Treiber_PTB_pause, cds::intrusive::single_link::node< cds::gc::PTB > ) \
21 TEST_CASE( Treiber_PTB_exp, cds::intrusive::single_link::node< cds::gc::PTB > ) \
22 TEST_CASE( Treiber_PTB_stat, cds::intrusive::single_link::node< cds::gc::PTB > )
24 #define CDSUNIT_TEST_TreiberStack \
25 CPPUNIT_TEST( Treiber_HP ) \
26 CPPUNIT_TEST( Treiber_HP_seqcst ) \
27 /*CPPUNIT_TEST( Treiber_HP_yield )*/ \
28 CPPUNIT_TEST( Treiber_HP_pause ) \
29 CPPUNIT_TEST( Treiber_HP_exp ) \
30 CPPUNIT_TEST( Treiber_HP_stat ) \
31 CPPUNIT_TEST( Treiber_HRC ) \
32 /*CPPUNIT_TEST( Treiber_HRC_yield )*/ \
33 /*CPPUNIT_TEST( Treiber_HRC_pause )*/ \
34 /*CPPUNIT_TEST( Treiber_HRC_exp )*/ \
35 CPPUNIT_TEST( Treiber_HRC_stat ) \
36 CPPUNIT_TEST( Treiber_PTB ) \
37 /*CPPUNIT_TEST( Treiber_PTB_yield )*/ \
38 CPPUNIT_TEST( Treiber_PTB_pause ) \
39 CPPUNIT_TEST( Treiber_PTB_exp ) \
40 CPPUNIT_TEST( Treiber_PTB_stat )
42 #define CDSUNIT_DECLARE_EliminationStack \
43 TEST_ELIMINATION( Elimination_HP, cds::intrusive::single_link::node< cds::gc::HP > ) \
44 TEST_ELIMINATION( Elimination_HP_2ms, cds::intrusive::single_link::node< cds::gc::HP > ) \
45 TEST_ELIMINATION( Elimination_HP_2ms_stat, cds::intrusive::single_link::node< cds::gc::HP >) \
46 TEST_ELIMINATION( Elimination_HP_5ms, cds::intrusive::single_link::node< cds::gc::HP > ) \
47 TEST_ELIMINATION( Elimination_HP_5ms_stat, cds::intrusive::single_link::node< cds::gc::HP >) \
48 TEST_ELIMINATION( Elimination_HP_10ms, cds::intrusive::single_link::node< cds::gc::HP > ) \
49 TEST_ELIMINATION( Elimination_HP_10ms_stat, cds::intrusive::single_link::node< cds::gc::HP >) \
50 TEST_ELIMINATION( Elimination_HP_seqcst, cds::intrusive::single_link::node< cds::gc::HP > ) \
51 /*TEST_ELIMINATION( Elimination_HP_yield, cds::intrusive::single_link::node< cds::gc::HP > )*/ \
52 TEST_ELIMINATION( Elimination_HP_pause, cds::intrusive::single_link::node< cds::gc::HP > ) \
53 TEST_ELIMINATION( Elimination_HP_exp, cds::intrusive::single_link::node< cds::gc::HP > ) \
54 TEST_ELIMINATION( Elimination_HP_stat, cds::intrusive::single_link::node< cds::gc::HP > ) \
55 TEST_ELIMINATION( Elimination_HP_dyn, cds::intrusive::single_link::node< cds::gc::HP > ) \
56 TEST_ELIMINATION( Elimination_HP_dyn_stat, cds::intrusive::single_link::node< cds::gc::HP >) \
57 TEST_ELIMINATION( Elimination_HRC, cds::intrusive::single_link::node< cds::gc::HRC > ) \
58 /*TEST_ELIMINATION( Elimination_HRC_yield, cds::intrusive::single_link::node< cds::gc::HRC > )*/ \
59 TEST_ELIMINATION( Elimination_HRC_pause, cds::intrusive::single_link::node< cds::gc::HRC > ) \
60 TEST_ELIMINATION( Elimination_HRC_exp, cds::intrusive::single_link::node< cds::gc::HRC > ) \
61 TEST_ELIMINATION( Elimination_HRC_stat, cds::intrusive::single_link::node< cds::gc::HRC > ) \
62 TEST_ELIMINATION( Elimination_HRC_dyn, cds::intrusive::single_link::node< cds::gc::HRC > ) \
63 TEST_ELIMINATION( Elimination_HRC_dyn_stat, cds::intrusive::single_link::node< cds::gc::HRC >) \
64 TEST_ELIMINATION( Elimination_PTB, cds::intrusive::single_link::node< cds::gc::PTB > ) \
65 TEST_ELIMINATION( Elimination_PTB_2ms, cds::intrusive::single_link::node< cds::gc::PTB > ) \
66 TEST_ELIMINATION( Elimination_PTB_2ms_stat, cds::intrusive::single_link::node< cds::gc::PTB >) \
67 TEST_ELIMINATION( Elimination_PTB_5ms, cds::intrusive::single_link::node< cds::gc::PTB > ) \
68 TEST_ELIMINATION( Elimination_PTB_5ms_stat, cds::intrusive::single_link::node< cds::gc::PTB >) \
69 TEST_ELIMINATION( Elimination_PTB_10ms, cds::intrusive::single_link::node< cds::gc::PTB > ) \
70 TEST_ELIMINATION( Elimination_PTB_10ms_stat, cds::intrusive::single_link::node< cds::gc::PTB >) \
71 /*TEST_ELIMINATION( Elimination_PTB_yield, cds::intrusive::single_link::node< cds::gc::PTB > )*/ \
72 TEST_ELIMINATION( Elimination_PTB_pause, cds::intrusive::single_link::node< cds::gc::PTB > ) \
73 TEST_ELIMINATION( Elimination_PTB_exp, cds::intrusive::single_link::node< cds::gc::PTB > ) \
74 TEST_ELIMINATION( Elimination_PTB_stat, cds::intrusive::single_link::node< cds::gc::PTB > ) \
75 TEST_ELIMINATION( Elimination_PTB_dyn, cds::intrusive::single_link::node< cds::gc::PTB > ) \
76 TEST_ELIMINATION( Elimination_PTB_dyn_stat, cds::intrusive::single_link::node< cds::gc::PTB >)
78 #define CDSUNIT_TEST_EliminationStack \
79 CPPUNIT_TEST( Elimination_HP ) \
80 CPPUNIT_TEST( Elimination_HP_2ms ) \
81 CPPUNIT_TEST( Elimination_HP_2ms_stat) \
82 CPPUNIT_TEST( Elimination_HP_5ms ) \
83 CPPUNIT_TEST( Elimination_HP_5ms_stat) \
84 CPPUNIT_TEST( Elimination_HP_10ms ) \
85 CPPUNIT_TEST( Elimination_HP_10ms_stat) \
86 CPPUNIT_TEST( Elimination_HP_seqcst ) \
87 /*CPPUNIT_TEST( Elimination_HP_yield )*/ \
88 CPPUNIT_TEST( Elimination_HP_pause ) \
89 CPPUNIT_TEST( Elimination_HP_exp ) \
90 CPPUNIT_TEST( Elimination_HP_stat ) \
91 CPPUNIT_TEST( Elimination_HP_dyn ) \
92 CPPUNIT_TEST( Elimination_HP_dyn_stat) \
93 CPPUNIT_TEST( Elimination_HRC ) \
94 /*CPPUNIT_TEST( Elimination_HRC_yield )*/ \
95 /*CPPUNIT_TEST( Elimination_HRC_pause )*/ \
96 /*CPPUNIT_TEST( Elimination_HRC_exp )*/ \
97 CPPUNIT_TEST( Elimination_HRC_stat ) \
98 CPPUNIT_TEST( Elimination_HRC_dyn ) \
99 CPPUNIT_TEST( Elimination_HRC_dyn_stat) \
100 CPPUNIT_TEST( Elimination_PTB ) \
101 CPPUNIT_TEST( Elimination_PTB_2ms ) \
102 CPPUNIT_TEST( Elimination_PTB_2ms_stat) \
103 CPPUNIT_TEST( Elimination_PTB_5ms ) \
104 CPPUNIT_TEST( Elimination_PTB_5ms_stat) \
105 CPPUNIT_TEST( Elimination_PTB_10ms ) \
106 CPPUNIT_TEST( Elimination_PTB_10ms_stat) \
107 /*CPPUNIT_TEST( Elimination_PTB_yield )*/ \
108 CPPUNIT_TEST( Elimination_PTB_pause ) \
109 CPPUNIT_TEST( Elimination_PTB_exp ) \
110 CPPUNIT_TEST( Elimination_PTB_stat ) \
111 CPPUNIT_TEST( Elimination_PTB_dyn ) \
112 CPPUNIT_TEST( Elimination_PTB_dyn_stat)
114 #define CDSUNIT_DECLARE_MichaelDeque \
115 TEST_BOUNDED( MichaelDequeL_HP, cds::intrusive::michael_deque::node<cds::gc::HP> ) \
116 TEST_BOUNDED( MichaelDequeL_HP_seqcst, cds::intrusive::michael_deque::node<cds::gc::HP> ) \
117 TEST_BOUNDED( MichaelDequeL_HP_ic, cds::intrusive::michael_deque::node<cds::gc::HP> ) \
118 TEST_BOUNDED( MichaelDequeL_HP_exp, cds::intrusive::michael_deque::node<cds::gc::HP> ) \
119 TEST_BOUNDED( MichaelDequeL_HP_yield, cds::intrusive::michael_deque::node<cds::gc::HP> ) \
120 TEST_BOUNDED( MichaelDequeL_HP_stat, cds::intrusive::michael_deque::node<cds::gc::HP> ) \
121 TEST_BOUNDED( MichaelDequeL_PTB, cds::intrusive::michael_deque::node<cds::gc::PTB> ) \
122 TEST_BOUNDED( MichaelDequeL_PTB_seqcst, cds::intrusive::michael_deque::node<cds::gc::PTB> ) \
123 TEST_BOUNDED( MichaelDequeL_PTB_ic, cds::intrusive::michael_deque::node<cds::gc::PTB> ) \
124 TEST_BOUNDED( MichaelDequeL_PTB_exp, cds::intrusive::michael_deque::node<cds::gc::PTB> ) \
125 TEST_BOUNDED( MichaelDequeL_PTB_yield, cds::intrusive::michael_deque::node<cds::gc::PTB> ) \
126 TEST_BOUNDED( MichaelDequeL_PTB_stat, cds::intrusive::michael_deque::node<cds::gc::PTB> ) \
127 TEST_BOUNDED( MichaelDequeR_HP, cds::intrusive::michael_deque::node<cds::gc::HP> ) \
128 TEST_BOUNDED( MichaelDequeR_HP_seqcst, cds::intrusive::michael_deque::node<cds::gc::HP> ) \
129 TEST_BOUNDED( MichaelDequeR_HP_ic, cds::intrusive::michael_deque::node<cds::gc::HP> ) \
130 TEST_BOUNDED( MichaelDequeR_HP_exp, cds::intrusive::michael_deque::node<cds::gc::HP> ) \
131 TEST_BOUNDED( MichaelDequeR_HP_yield, cds::intrusive::michael_deque::node<cds::gc::HP> ) \
132 TEST_BOUNDED( MichaelDequeR_HP_stat, cds::intrusive::michael_deque::node<cds::gc::HP> ) \
133 TEST_BOUNDED( MichaelDequeR_PTB, cds::intrusive::michael_deque::node<cds::gc::PTB> ) \
134 TEST_BOUNDED( MichaelDequeR_PTB_seqcst, cds::intrusive::michael_deque::node<cds::gc::PTB> ) \
135 TEST_BOUNDED( MichaelDequeR_PTB_ic, cds::intrusive::michael_deque::node<cds::gc::PTB> ) \
136 TEST_BOUNDED( MichaelDequeR_PTB_exp, cds::intrusive::michael_deque::node<cds::gc::PTB> ) \
137 TEST_BOUNDED( MichaelDequeR_PTB_yield, cds::intrusive::michael_deque::node<cds::gc::PTB> ) \
138 TEST_BOUNDED( MichaelDequeR_PTB_stat, cds::intrusive::michael_deque::node<cds::gc::PTB> )
140 #define CDSUNIT_TEST_MichaelDeque \
141 CPPUNIT_TEST( MichaelDequeL_HP ) \
142 /*CPPUNIT_TEST( MichaelDequeL_HP_seqcst )*/ \
143 /*CPPUNIT_TEST( MichaelDequeL_HP_ic )*/ \
144 /*CPPUNIT_TEST( MichaelDequeL_HP_exp )*/ \
145 /*CPPUNIT_TEST( MichaelDequeL_HP_yield )*/ \
146 CPPUNIT_TEST( MichaelDequeL_HP_stat ) \
147 CPPUNIT_TEST( MichaelDequeL_PTB ) \
148 /*CPPUNIT_TEST( MichaelDequeL_PTB_seqcst )*/ \
149 /*CPPUNIT_TEST( MichaelDequeL_PTB_ic )*/ \
150 /*CPPUNIT_TEST( MichaelDequeL_PTB_exp )*/ \
151 /*CPPUNIT_TEST( MichaelDequeL_PTB_yield )*/ \
152 CPPUNIT_TEST( MichaelDequeL_PTB_stat ) \
153 CPPUNIT_TEST( MichaelDequeR_HP ) \
154 /*CPPUNIT_TEST( MichaelDequeR_HP_seqcst )*/ \
155 /*CPPUNIT_TEST( MichaelDequeR_HP_ic )*/ \
156 /*CPPUNIT_TEST( MichaelDequeR_HP_exp )*/ \
157 /*CPPUNIT_TEST( MichaelDequeR_HP_yield )*/ \
158 CPPUNIT_TEST( MichaelDequeR_HP_stat ) \
159 CPPUNIT_TEST( MichaelDequeR_PTB ) \
160 /*CPPUNIT_TEST( MichaelDequeR_PTB_seqcst )*/ \
161 /*CPPUNIT_TEST( MichaelDequeR_PTB_ic )*/ \
162 /*CPPUNIT_TEST( MichaelDequeR_PTB_exp )*/ \
163 /*CPPUNIT_TEST( MichaelDequeR_PTB_yield )*/ \
164 CPPUNIT_TEST( MichaelDequeR_PTB_stat )
166 #define CDSUNIT_DECLARE_FCStack \
167 TEST_FCSTACK( FCStack_slist, boost::intrusive::slist_base_hook<> ) \
168 TEST_FCSTACK( FCStack_slist_stat, boost::intrusive::slist_base_hook<> ) \
169 TEST_FCSTACK( FCStack_slist_elimination, boost::intrusive::slist_base_hook<> ) \
170 TEST_FCSTACK( FCStack_slist_elimination_stat, boost::intrusive::slist_base_hook<> ) \
171 TEST_FCSTACK( FCStack_slist_mutex_stat, boost::intrusive::slist_base_hook<> ) \
172 TEST_FCSTACK( FCStack_slist_mutex_elimination, boost::intrusive::slist_base_hook<> ) \
173 TEST_FCSTACK( FCStack_slist_mutex_elimination_stat, boost::intrusive::slist_base_hook<> ) \
174 TEST_FCSTACK( FCStack_list, boost::intrusive::list_base_hook<> ) \
175 TEST_FCSTACK( FCStack_list_stat, boost::intrusive::list_base_hook<> ) \
176 TEST_FCSTACK( FCStack_list_elimination, boost::intrusive::list_base_hook<> ) \
177 TEST_FCSTACK( FCStack_list_elimination_stat, boost::intrusive::list_base_hook<> ) \
178 TEST_FCSTACK( FCStack_list_mutex_stat, boost::intrusive::list_base_hook<> ) \
179 TEST_FCSTACK( FCStack_list_mutex_elimination, boost::intrusive::list_base_hook<> ) \
180 TEST_FCSTACK( FCStack_list_mutex_elimination_stat, boost::intrusive::list_base_hook<> )
182 #define CDSUNIT_TEST_FCStack \
183 CPPUNIT_TEST( FCStack_slist ) \
184 CPPUNIT_TEST( FCStack_slist_stat ) \
185 CPPUNIT_TEST( FCStack_slist_elimination ) \
186 CPPUNIT_TEST( FCStack_slist_elimination_stat ) \
187 CPPUNIT_TEST( FCStack_slist_mutex_stat ) \
188 CPPUNIT_TEST( FCStack_slist_mutex_elimination ) \
189 CPPUNIT_TEST( FCStack_slist_mutex_elimination_stat ) \
190 CPPUNIT_TEST( FCStack_list ) \
191 CPPUNIT_TEST( FCStack_list_stat ) \
192 CPPUNIT_TEST( FCStack_list_elimination ) \
193 CPPUNIT_TEST( FCStack_list_elimination_stat ) \
194 CPPUNIT_TEST( FCStack_list_mutex_stat ) \
195 CPPUNIT_TEST( FCStack_list_mutex_elimination ) \
196 CPPUNIT_TEST( FCStack_list_mutex_elimination_stat )
199 #define CDSUNIT_DECLARE_StdStack \
200 TEST_STDSTACK( StdStack_Deque_Mutex ) \
201 TEST_STDSTACK( StdStack_Deque_Spin ) \
202 TEST_STDSTACK( StdStack_Vector_Mutex ) \
203 TEST_STDSTACK( StdStack_Vector_Spin ) \
204 TEST_STDSTACK( StdStack_List_Mutex ) \
205 TEST_STDSTACK( StdStack_List_Spin )
207 #define CDSUNIT_TEST_StdStack \
208 CPPUNIT_TEST( StdStack_Deque_Mutex ) \
209 CPPUNIT_TEST( StdStack_Deque_Spin ) \
210 CPPUNIT_TEST( StdStack_Vector_Mutex ) \
211 CPPUNIT_TEST( StdStack_Vector_Spin ) \
212 CPPUNIT_TEST( StdStack_List_Mutex ) \
213 CPPUNIT_TEST( StdStack_List_Spin )
215 #endif // #ifndef __CDSUNIT_INTRUSIVE_STACK_DEFS_H