e4cabfec9195032f99c9aa18260cbe8145f4c2cd
[libcds.git] / tests / unit / map2 / map_defs.h
1 //$$CDS-header$$
2
3 #define CDSUNIT_DECLARE_StdMap \
4     TEST_CASE(tag_StdMap, StdMap_Spin) \
5     TEST_CASE(tag_StdMap, StdHashMap_Spin) \
6     TEST_CASE(tag_StdMap, StdMap_Mutex) \
7     TEST_CASE(tag_StdMap, StdHashMap_Mutex)
8
9 #define CDSUNIT_TEST_StdMap \
10     CPPUNIT_TEST(StdMap_Spin) \
11     CPPUNIT_TEST(StdHashMap_Spin) \
12     CPPUNIT_TEST(StdMap_Mutex) \
13     CPPUNIT_TEST(StdHashMap_Mutex) \
14
15 #define CDSUNIT_DECLARE_StdMap_NoLock \
16     TEST_CASE(tag_StdMap, StdMap_NoLock) \
17     TEST_CASE(tag_StdMap, StdHashMap_NoLock) \
18
19 #define CDSUNIT_TEST_StdMap_NoLock \
20     CPPUNIT_TEST(StdMap_NoLock) \
21     CPPUNIT_TEST(StdHashMap_NoLock) \
22
23
24 // **************************************************************************************
25 // MichaelMap
26
27 #undef CDSUNIT_DECLARE_MichaelMap_RCU_signal
28 #undef CDSUNIT_TEST_MichaelMap_RCU_signal
29 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
30 #   define CDSUNIT_DECLARE_MichaelMap_RCU_signal \
31     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_SHB_cmp_stdAlloc) \
32     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_SHB_cmp_stdAlloc) \
33     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_SHB_less_michaelAlloc) \
34     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_SHT_cmp_stdAlloc) \
35     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_SHT_less_michaelAlloc) \
36     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_SHB_cmp_stdAlloc) \
37     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_SHB_less_michaelAlloc) \
38     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc) \
39     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_SHT_less_michaelAlloc)
40
41 #   define CDSUNIT_TEST_MichaelMap_RCU_signal \
42     CPPUNIT_TEST(MichaelMap_RCU_SHB_cmp_stdAlloc) \
43     CPPUNIT_TEST(MichaelMap_RCU_SHB_less_michaelAlloc) \
44     CPPUNIT_TEST(MichaelMap_RCU_SHT_cmp_stdAlloc) \
45     CPPUNIT_TEST(MichaelMap_RCU_SHT_less_michaelAlloc) \
46     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHB_cmp_stdAlloc) \
47     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHB_less_michaelAlloc) \
48     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc) \
49     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHT_less_michaelAlloc)
50
51 #else
52 #   define CDSUNIT_DECLARE_MichaelMap_RCU_signal
53 #   define CDSUNIT_TEST_MichaelMap_RCU_signal
54 #endif
55
56 #undef CDSUNIT_DECLARE_MichaelMap
57 #define CDSUNIT_DECLARE_MichaelMap  \
58     TEST_CASE(tag_MichaelHashMap, MichaelMap_HP_cmp_stdAlloc) \
59     TEST_CASE(tag_MichaelHashMap, MichaelMap_HP_less_michaelAlloc) \
60     TEST_CASE(tag_MichaelHashMap, MichaelMap_DHP_cmp_stdAlloc) \
61     TEST_CASE(tag_MichaelHashMap, MichaelMap_DHP_less_michaelAlloc) \
62     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPI_cmp_stdAlloc) \
63     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPI_less_michaelAlloc) \
64     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPB_cmp_stdAlloc) \
65     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPB_less_michaelAlloc) \
66     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPT_cmp_stdAlloc) \
67     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPT_less_michaelAlloc) \
68     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_HP_cmp_stdAlloc) \
69     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_HP_less_michaelAlloc) \
70     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_DHP_cmp_stdAlloc) \
71     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_DHP_less_michaelAlloc) \
72     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPI_cmp_stdAlloc) \
73     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPI_less_michaelAlloc) \
74     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPB_cmp_stdAlloc) \
75     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPB_less_michaelAlloc) \
76     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPT_cmp_stdAlloc) \
77     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPT_less_michaelAlloc)\
78     CDSUNIT_DECLARE_MichaelMap_RCU_signal
79
80 #undef  CDSUNIT_TEST_MichaelMap
81 #define CDSUNIT_TEST_MichaelMap  \
82     CPPUNIT_TEST(MichaelMap_HP_cmp_stdAlloc) \
83     CPPUNIT_TEST(MichaelMap_HP_less_michaelAlloc) \
84     CPPUNIT_TEST(MichaelMap_DHP_cmp_stdAlloc) \
85     CPPUNIT_TEST(MichaelMap_DHP_less_michaelAlloc) \
86     CPPUNIT_TEST(MichaelMap_RCU_GPI_cmp_stdAlloc) \
87     CPPUNIT_TEST(MichaelMap_RCU_GPI_less_michaelAlloc) \
88     CPPUNIT_TEST(MichaelMap_RCU_GPB_cmp_stdAlloc) \
89     CPPUNIT_TEST(MichaelMap_RCU_GPB_less_michaelAlloc) \
90     CPPUNIT_TEST(MichaelMap_RCU_GPT_cmp_stdAlloc) \
91     CPPUNIT_TEST(MichaelMap_RCU_GPT_less_michaelAlloc) \
92     CPPUNIT_TEST(MichaelMap_Lazy_HP_cmp_stdAlloc) \
93     CPPUNIT_TEST(MichaelMap_Lazy_HP_less_michaelAlloc) \
94     CPPUNIT_TEST(MichaelMap_Lazy_DHP_cmp_stdAlloc) \
95     CPPUNIT_TEST(MichaelMap_Lazy_DHP_less_michaelAlloc) \
96     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPI_cmp_stdAlloc) \
97     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPI_less_michaelAlloc) \
98     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPB_cmp_stdAlloc) \
99     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPB_less_michaelAlloc) \
100     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPT_cmp_stdAlloc) \
101     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPT_less_michaelAlloc)\
102     CDSUNIT_TEST_MichaelMap_RCU_signal
103
104 #undef  CDSUNIT_DECLARE_MichaelMap_nogc
105 #define CDSUNIT_DECLARE_MichaelMap_nogc  \
106     TEST_CASE(tag_MichaelHashMap, MichaelMap_NOGC_cmp_stdAlloc) \
107     TEST_CASE(tag_MichaelHashMap, MichaelMap_NOGC_less_michaelAlloc) \
108     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_NOGC_cmp_stdAlloc) \
109     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_NOGC_unord_stdAlloc) \
110     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_NOGC_less_michaelAlloc)
111
112 #undef  CDSUNIT_TEST_MichaelMap_nogc
113 #define CDSUNIT_TEST_MichaelMap_nogc  \
114     CPPUNIT_TEST(MichaelMap_NOGC_cmp_stdAlloc) \
115     CPPUNIT_TEST(MichaelMap_NOGC_less_michaelAlloc) \
116     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_cmp_stdAlloc) \
117     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_unord_stdAlloc) \
118     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_less_michaelAlloc) \
119
120
121 // **************************************************************************************
122 // SplitListMap
123
124 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
125 #   define CDSUNIT_DECLARE_SplitList_RCU_signal  \
126     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_dyn_cmp)\
127     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_dyn_cmp_stat)\
128     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_st_cmp)\
129     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_dyn_less)\
130     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_st_less)\
131     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_st_less_stat)\
132     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_dyn_cmp)\
133     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_dyn_cmp_stat)\
134     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_st_cmp)\
135     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_dyn_less)\
136     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_st_less)\
137     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_st_less_stat)\
138     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_dyn_cmp)\
139     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_dyn_cmp_stat)\
140     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_st_cmp)\
141     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_dyn_less)\
142     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_st_less)\
143     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_st_less_stat)\
144     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_dyn_cmp)\
145     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_dyn_cmp_stat)\
146     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_st_cmp)\
147     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_dyn_less)\
148     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_st_less)\
149     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_st_less_stat)
150
151 #   define CDSUNIT_TEST_SplitList_RCU_signal \
152     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_cmp)\
153     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_cmp_stat)\
154     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_cmp)\
155     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_less)\
156     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_less)\
157     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_less_stat)\
158     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_cmp)\
159     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_cmp_stat)\
160     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_cmp)\
161     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_less)\
162     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_less)\
163     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_less_stat)\
164     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_cmp)\
165     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_cmp_stat)\
166     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_cmp)\
167     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_less)\
168     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_less)\
169     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_less_stat)\
170     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_cmp)\
171     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_cmp_stat)\
172     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_cmp)\
173     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_less)\
174     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_less)\
175     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_less_stat)
176
177 #else
178 #   define CDSUNIT_DECLARE_SplitList_RCU_signal
179 #   define CDSUNIT_TEST_SplitList_RCU_signal
180 #endif
181
182 #define CDSUNIT_DECLARE_SplitList \
183     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_dyn_cmp)\
184     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_dyn_cmp_stat)\
185     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_st_cmp)\
186     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_dyn_less)\
187     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_st_less)\
188     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_st_less_stat)\
189     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_dyn_cmp)\
190     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_dyn_cmp_stat)\
191     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_st_cmp)\
192     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_dyn_less)\
193     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_st_less)\
194     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_st_less_stat)\
195     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_dyn_cmp)\
196     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_dyn_cmp_stat)\
197     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_st_cmp)\
198     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_dyn_less)\
199     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_st_less)\
200     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_st_less_stat)\
201     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_dyn_cmp)\
202     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_dyn_cmp_stat)\
203     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_st_cmp)\
204     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_dyn_less)\
205     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_st_less)\
206     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_st_less_stat)\
207     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_dyn_cmp)\
208     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_dyn_cmp_stat)\
209     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_st_cmp)\
210     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_dyn_less)\
211     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_st_less)\
212     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_st_less_stat)\
213     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_dyn_cmp)\
214     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_dyn_cmp_stat)\
215     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_st_cmp)\
216     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_dyn_less)\
217     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_st_less)\
218     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_st_less_stat)\
219     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_dyn_cmp)\
220     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_dyn_cmp_stat)\
221     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_st_cmp)\
222     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_dyn_less)\
223     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_st_less)\
224     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_st_less_stat)\
225     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_dyn_cmp)\
226     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_dyn_cmp_stat)\
227     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_st_cmp)\
228     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_dyn_less)\
229     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_st_less)\
230     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_st_less_stat)\
231     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_dyn_cmp)\
232     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_dyn_cmp_stat)\
233     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_st_cmp)\
234     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_dyn_less)\
235     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_st_less)\
236     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_st_less_stat)\
237     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_dyn_cmp)\
238     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_dyn_cmp_stat)\
239     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_st_cmp)\
240     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_dyn_less)\
241     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_st_less)\
242     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_st_less_stat)\
243     CDSUNIT_DECLARE_SplitList_RCU_signal
244
245 #define CDSUNIT_TEST_SplitList  \
246     CPPUNIT_TEST(SplitList_Michael_HP_dyn_cmp)\
247     CPPUNIT_TEST(SplitList_Michael_HP_dyn_cmp_stat)\
248     CPPUNIT_TEST(SplitList_Michael_HP_st_cmp)\
249     CPPUNIT_TEST(SplitList_Michael_HP_dyn_less)\
250     CPPUNIT_TEST(SplitList_Michael_HP_st_less)\
251     CPPUNIT_TEST(SplitList_Michael_HP_st_less_stat)\
252     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_cmp)\
253     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_cmp_stat)\
254     CPPUNIT_TEST(SplitList_Michael_DHP_st_cmp)\
255     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_less)\
256     CPPUNIT_TEST(SplitList_Michael_DHP_st_less)\
257     CPPUNIT_TEST(SplitList_Michael_DHP_st_less_stat)\
258     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_cmp)\
259     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_cmp_stat)\
260     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_cmp)\
261     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_less)\
262     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_less)\
263     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_less_stat)\
264     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_cmp)\
265     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_cmp_stat)\
266     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_cmp)\
267     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_less)\
268     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_less)\
269     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_less_stat)\
270     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_cmp)\
271     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_cmp_stat)\
272     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_cmp)\
273     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_less)\
274     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_less)\
275     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_less_stat)\
276     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_cmp)\
277     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_cmp_stat)\
278     CPPUNIT_TEST(SplitList_Lazy_HP_st_cmp)\
279     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_less)\
280     CPPUNIT_TEST(SplitList_Lazy_HP_st_less)\
281     CPPUNIT_TEST(SplitList_Lazy_HP_st_less_stat)\
282     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_cmp)\
283     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_cmp_stat)\
284     CPPUNIT_TEST(SplitList_Lazy_DHP_st_cmp)\
285     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_less)\
286     CPPUNIT_TEST(SplitList_Lazy_DHP_st_less)\
287     CPPUNIT_TEST(SplitList_Lazy_DHP_st_less_stat)\
288     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp)\
289     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp_stat)\
290     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_cmp)\
291     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_less)\
292     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_less)\
293     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_less_stat)\
294     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp)\
295     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp_stat)\
296     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_cmp)\
297     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_less)\
298     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_less)\
299     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_less_stat)\
300     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp)\
301     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp_stat)\
302     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_cmp)\
303     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_less)\
304     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_less)\
305     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_less_stat)\
306     CDSUNIT_TEST_SplitList_RCU_signal
307
308 #define CDSUNIT_DECLARE_SplitList_nogc  \
309     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_dyn_cmp)\
310     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_st_cmp)\
311     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_dyn_less)\
312     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_st_less)\
313     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_dyn_cmp)\
314     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_st_cmp)\
315     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_dyn_less)\
316     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_st_less)
317
318 #define CDSUNIT_TEST_SplitList_nogc  \
319     CPPUNIT_TEST(SplitList_Michael_NOGC_dyn_cmp)\
320     CPPUNIT_TEST(SplitList_Michael_NOGC_st_cmp)\
321     CPPUNIT_TEST(SplitList_Michael_NOGC_dyn_less)\
322     CPPUNIT_TEST(SplitList_Michael_NOGC_st_less)\
323     CPPUNIT_TEST(SplitList_Lazy_NOGC_dyn_cmp)\
324     CPPUNIT_TEST(SplitList_Lazy_NOGC_st_cmp)\
325     CPPUNIT_TEST(SplitList_Lazy_NOGC_dyn_less)\
326     CPPUNIT_TEST(SplitList_Lazy_NOGC_st_less)
327
328
329 // **************************************************************************************
330 // SkipListMap
331
332 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
333 #   define CDSUNIT_DECLARE_SkipListMap_RCU_signal \
334     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_less_pascal)\
335     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_cmp_pascal_stat)\
336     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_less_xorshift)\
337     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_cmp_xorshift_stat)\
338     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_less_pascal)\
339     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_cmp_pascal_stat)\
340     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_less_xorshift)\
341     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_cmp_xorshift_stat)
342
343 #   define CDSUNIT_TEST_SkipListMap_RCU_signal \
344     CPPUNIT_TEST(SkipListMap_rcu_shb_less_pascal)\
345     CPPUNIT_TEST(SkipListMap_rcu_shb_cmp_pascal_stat)\
346     CPPUNIT_TEST(SkipListMap_rcu_shb_less_xorshift)\
347     CPPUNIT_TEST(SkipListMap_rcu_shb_cmp_xorshift_stat)\
348     CPPUNIT_TEST(SkipListMap_rcu_sht_less_pascal)\
349     CPPUNIT_TEST(SkipListMap_rcu_sht_cmp_pascal_stat)\
350     CPPUNIT_TEST(SkipListMap_rcu_sht_less_xorshift)\
351     CPPUNIT_TEST(SkipListMap_rcu_sht_cmp_xorshift_stat)
352
353 #else
354 #   define CDSUNIT_DECLARE_SkipListMap_RCU_signal
355 #   define CDSUNIT_TEST_SkipListMap_RCU_signal
356 #endif
357
358 #define CDSUNIT_DECLARE_SkipListMap \
359     TEST_CASE(tag_SkipListMap, SkipListMap_hp_less_pascal)\
360     TEST_CASE(tag_SkipListMap, SkipListMap_hp_cmp_pascal_stat)\
361     TEST_CASE(tag_SkipListMap, SkipListMap_hp_less_xorshift)\
362     TEST_CASE(tag_SkipListMap, SkipListMap_hp_cmp_xorshift_stat)\
363     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_less_pascal)\
364     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_cmp_pascal_stat)\
365     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_less_xorshift)\
366     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_cmp_xorshift_stat)\
367     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_less_pascal)\
368     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_cmp_pascal_stat)\
369     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_less_xorshift)\
370     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_cmp_xorshift_stat)\
371     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_less_pascal)\
372     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_cmp_pascal_stat)\
373     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_less_xorshift)\
374     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_cmp_xorshift_stat)\
375     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_less_pascal)\
376     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_cmp_pascal_stat)\
377     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_less_xorshift)\
378     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_cmp_xorshift_stat)\
379     CDSUNIT_DECLARE_SkipListMap_RCU_signal
380
381 #define CDSUNIT_TEST_SkipListMap \
382     CPPUNIT_TEST(SkipListMap_hp_less_pascal)\
383     CPPUNIT_TEST(SkipListMap_hp_cmp_pascal_stat)\
384     CPPUNIT_TEST(SkipListMap_hp_less_xorshift)\
385     CPPUNIT_TEST(SkipListMap_hp_cmp_xorshift_stat)\
386     CPPUNIT_TEST(SkipListMap_dhp_less_pascal)\
387     CPPUNIT_TEST(SkipListMap_dhp_cmp_pascal_stat)\
388     CPPUNIT_TEST(SkipListMap_dhp_less_xorshift)\
389     CPPUNIT_TEST(SkipListMap_dhp_cmp_xorshift_stat)\
390     CPPUNIT_TEST(SkipListMap_rcu_gpi_less_pascal)\
391     CPPUNIT_TEST(SkipListMap_rcu_gpi_cmp_pascal_stat)\
392     CPPUNIT_TEST(SkipListMap_rcu_gpi_less_xorshift)\
393     CPPUNIT_TEST(SkipListMap_rcu_gpi_cmp_xorshift_stat)\
394     CPPUNIT_TEST(SkipListMap_rcu_gpb_less_pascal)\
395     CPPUNIT_TEST(SkipListMap_rcu_gpb_cmp_pascal_stat)\
396     CPPUNIT_TEST(SkipListMap_rcu_gpb_less_xorshift)\
397     CPPUNIT_TEST(SkipListMap_rcu_gpb_cmp_xorshift_stat)\
398     CPPUNIT_TEST(SkipListMap_rcu_gpt_less_pascal)\
399     CPPUNIT_TEST(SkipListMap_rcu_gpt_cmp_pascal_stat)\
400     CPPUNIT_TEST(SkipListMap_rcu_gpt_less_xorshift)\
401     CPPUNIT_TEST(SkipListMap_rcu_gpt_cmp_xorshift_stat)\
402     CDSUNIT_TEST_SkipListMap_RCU_signal
403
404 #define CDSUNIT_DECLARE_SkipListMap_nogc \
405     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_less_pascal)\
406     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_cmp_pascal_stat)\
407     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_less_xorshift)\
408     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_cmp_xorshift_stat)
409
410 #define CDSUNIT_TEST_SkipListMap_nogc \
411     CPPUNIT_TEST(SkipListMap_nogc_less_pascal)\
412     CPPUNIT_TEST(SkipListMap_nogc_cmp_pascal_stat)\
413     CPPUNIT_TEST(SkipListMap_nogc_less_xorshift)\
414     CPPUNIT_TEST(SkipListMap_nogc_cmp_xorshift_stat)
415
416
417 // **************************************************************************************
418 // EllenBinTreeMap
419
420 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
421 #   define CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal \
422     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_shb)\
423     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_shb_stat)\
424     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_sht)\
425     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_sht_stat)
426
427 #   define CDSUNIT_TEST_EllenBinTreeMap_RCU_signal \
428     CPPUNIT_TEST(EllenBinTreeMap_rcu_shb)\
429     CPPUNIT_TEST(EllenBinTreeMap_rcu_shb_stat)\
430     CPPUNIT_TEST(EllenBinTreeMap_rcu_sht)\
431     CPPUNIT_TEST(EllenBinTreeMap_rcu_sht_stat)
432 #else
433 #   define CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal
434 #   define CDSUNIT_TEST_EllenBinTreeMap_RCU_signal
435 #endif
436
437 #define CDSUNIT_DECLARE_EllenBinTreeMap \
438     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_hp)\
439     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_hp_yield)\
440     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_hp_stat)\
441     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_dhp)\
442     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_dhp_yield)\
443     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_dhp_stat)\
444     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpi)\
445     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpi_stat)\
446     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpb)\
447     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpb_yield)\
448     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpb_stat)\
449     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpt)\
450     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpt_stat)\
451     CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal
452
453 #define CDSUNIT_TEST_EllenBinTreeMap \
454     CPPUNIT_TEST(EllenBinTreeMap_hp)\
455     CPPUNIT_TEST(EllenBinTreeMap_hp_yield)\
456     CPPUNIT_TEST(EllenBinTreeMap_hp_stat)\
457     CPPUNIT_TEST(EllenBinTreeMap_dhp)\
458     CPPUNIT_TEST(EllenBinTreeMap_dhp_yield)\
459     CPPUNIT_TEST(EllenBinTreeMap_dhp_stat)\
460     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpi)\
461     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpi_stat)\
462     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb)\
463     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb_yield)\
464     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb_stat)\
465     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpt)\
466     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpt_stat)\
467     CDSUNIT_TEST_EllenBinTreeMap_RCU_signal
468
469
470 // **************************************************************************************
471 // BronsonAVLTreeMap
472
473 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
474 #   define CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal \
475     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less) \
476     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less) \
477     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_cmp_stat) \
478     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_cmp_stat) \
479     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
480     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
481     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
482     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
483     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
484     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
485     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
486     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
487     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
488     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
489     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
490     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
491
492 #   define CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal \
493     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less) \
494     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less) \
495     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_cmp_stat) \
496     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_cmp_stat) \
497     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
498     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
499     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
500     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
501     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
502     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
503     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
504     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
505     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
506     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
507     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
508     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
509
510 #else
511 #   define CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal
512 #   define CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal
513 #endif
514
515 #define CDSUNIT_DECLARE_BronsonAVLTreeMap \
516     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less)\
517     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less)\
518     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less)\
519     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_cmp_stat)\
520     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_cmp_stat)\
521     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_cmp_stat)\
522     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
523     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
524     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
525     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
526     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
527     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
528     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
529     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
530     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
531     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
532     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
533     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
534     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
535     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
536     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
537     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
538     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
539     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
540     CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal
541
542 #define CDSUNIT_TEST_BronsonAVLTreeMap \
543     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less)\
544     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_cmp_stat)\
545     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less)\
546     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_cmp_stat)\
547     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less)\
548     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_cmp_stat)\
549     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
550     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
551     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
552     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
553     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
554     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
555     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
556     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
557     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
558     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
559     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
560     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
561     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
562     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
563     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
564     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
565     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
566     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
567     CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal
568
569
570 // **************************************************************************************
571 // StripedMap
572
573 #define CDSUNIT_DECLARE_StripedMap_common \
574     TEST_CASE(tag_StripedMap, StripedMap_list) \
575     TEST_CASE(tag_StripedMap, StripedMap_map) \
576     TEST_CASE(tag_StripedMap, StripedMap_hashmap) \
577     TEST_CASE(tag_StripedMap, StripedMap_boost_unordered_map)
578
579 #define CDSUNIT_TEST_StripedMap_common \
580     CPPUNIT_TEST(StripedMap_list) \
581     CPPUNIT_TEST(StripedMap_map) \
582     CPPUNIT_TEST(StripedMap_hashmap) \
583     CPPUNIT_TEST(StripedMap_boost_unordered_map)
584
585 #if BOOST_VERSION >= 104800
586 #   define CDSUNIT_DECLARE_StripedMap_boost_container \
587         TEST_CASE(tag_StripedMap, StripedMap_boost_list) \
588         TEST_CASE(tag_StripedMap, StripedMap_slist) \
589         TEST_CASE(tag_StripedMap, StripedMap_boost_map)
590
591 #   define CDSUNIT_TEST_StripedMap_boost_container \
592         CPPUNIT_TEST(StripedMap_boost_list) \
593         CPPUNIT_TEST(StripedMap_slist) \
594         CPPUNIT_TEST(StripedMap_boost_map)
595 #else
596 #   define CDSUNIT_DECLARE_StripedMap_boost_container
597 #   define CDSUNIT_TEST_StripedMap_boost_container
598 #endif
599
600 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
601 #   define CDSUNIT_DECLARE_StripedMap_boost_flat_container \
602         TEST_CASE(tag_StripedMap, StripedMap_boost_flat_map)
603
604 #   define CDSUNIT_TEST_StripedMap_boost_flat_container \
605         CPPUNIT_TEST(StripedMap_boost_flat_map)
606 #else
607 #   define CDSUNIT_DECLARE_StripedMap_boost_flat_container
608 #   define CDSUNIT_TEST_StripedMap_boost_flat_container
609 #endif
610
611 #define CDSUNIT_DECLARE_StripedMap \
612     CDSUNIT_DECLARE_StripedMap_common \
613     CDSUNIT_DECLARE_StripedMap_boost_container \
614     CDSUNIT_DECLARE_StripedMap_boost_flat_container
615
616 #define CDSUNIT_TEST_StripedMap \
617     CDSUNIT_TEST_StripedMap_common \
618     CDSUNIT_TEST_StripedMap_boost_container \
619     CDSUNIT_TEST_StripedMap_boost_flat_container
620
621
622 // **************************************************************************************
623 // RefinableMap
624
625 #define CDSUNIT_DECLARE_RefinableMap_common \
626     TEST_CASE(tag_StripedMap, RefinableMap_list) \
627     TEST_CASE(tag_StripedMap, RefinableMap_map) \
628     TEST_CASE(tag_StripedMap, RefinableMap_hashmap) \
629     TEST_CASE(tag_StripedMap, RefinableMap_boost_unordered_map)
630
631 #define CDSUNIT_TEST_RefinableMap_common \
632     CPPUNIT_TEST(RefinableMap_list) \
633     CPPUNIT_TEST(RefinableMap_map) \
634     CPPUNIT_TEST(RefinableMap_hashmap) \
635     CPPUNIT_TEST(RefinableMap_boost_unordered_map)
636
637 #if BOOST_VERSION >= 104800
638 #   define CDSUNIT_DECLARE_RefinableMap_boost_container \
639         TEST_CASE(tag_StripedMap, RefinableMap_boost_list) \
640         TEST_CASE(tag_StripedMap, RefinableMap_slist) \
641         TEST_CASE(tag_StripedMap, RefinableMap_boost_map)
642
643 #   define CDSUNIT_TEST_RefinableMap_boost_container \
644         CPPUNIT_TEST(RefinableMap_boost_list) \
645         CPPUNIT_TEST(RefinableMap_slist) \
646         CPPUNIT_TEST(RefinableMap_boost_map)
647 #else
648 #   define CDSUNIT_DECLARE_RefinableMap_boost_container
649 #   define CDSUNIT_TEST_RefinableMap_boost_container
650 #endif
651
652 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
653 #   define CDSUNIT_DECLARE_RefinableMap_boost_flat_container \
654         TEST_CASE(tag_StripedMap, RefinableMap_boost_flat_map)
655
656 #   define CDSUNIT_TEST_RefinableMap_boost_flat_container \
657         CPPUNIT_TEST(RefinableMap_boost_flat_map)
658 #else
659 #   define CDSUNIT_DECLARE_RefinableMap_boost_flat_container
660 #   define CDSUNIT_TEST_RefinableMap_boost_flat_container
661 #endif
662
663 #define CDSUNIT_DECLARE_RefinableMap \
664     CDSUNIT_DECLARE_RefinableMap_common \
665     CDSUNIT_DECLARE_RefinableMap_boost_container \
666     CDSUNIT_DECLARE_RefinableMap_boost_flat_container
667
668 #define CDSUNIT_TEST_RefinableMap \
669     CDSUNIT_TEST_RefinableMap_common \
670     CDSUNIT_TEST_RefinableMap_boost_container \
671     CDSUNIT_TEST_RefinableMap_boost_flat_container
672
673
674 // **************************************************************************************
675 // CuckooMap
676
677 #define CDSUNIT_DECLARE_CuckooMap \
678     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_unord)\
679     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_ord)\
680     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_unord)\
681     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_ord)\
682     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_unord_stat)\
683     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_ord_stat)\
684     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_unord_stat)\
685     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_ord_stat)\
686     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_unord)\
687     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_ord)\
688     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_unord)\
689     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_ord) \
690     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_unord_stat)\
691     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_ord_stat)\
692     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_unord_stat)\
693     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_ord_stat) \
694     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_unord_storehash)\
695     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_ord_storehash)\
696     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_unord_storehash)\
697     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_ord_storehash)\
698     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_unord_storehash)\
699     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_ord_storehash)\
700     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_unord_storehash)\
701     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_ord_storehash)
702
703 #define CDSUNIT_TEST_CuckooMap \
704     CPPUNIT_TEST(CuckooStripedMap_list_unord)\
705     CPPUNIT_TEST(CuckooStripedMap_list_unord_stat)\
706     CPPUNIT_TEST(CuckooStripedMap_list_unord_storehash)\
707     CPPUNIT_TEST(CuckooStripedMap_list_ord)\
708     CPPUNIT_TEST(CuckooStripedMap_list_ord_stat)\
709     CPPUNIT_TEST(CuckooStripedMap_list_ord_storehash)\
710     CPPUNIT_TEST(CuckooStripedMap_vector_unord)\
711     CPPUNIT_TEST(CuckooStripedMap_vector_unord_stat)\
712     CPPUNIT_TEST(CuckooStripedMap_vector_unord_storehash)\
713     CPPUNIT_TEST(CuckooStripedMap_vector_ord)\
714     CPPUNIT_TEST(CuckooStripedMap_vector_ord_stat)\
715     CPPUNIT_TEST(CuckooStripedMap_vector_ord_storehash)\
716     CPPUNIT_TEST(CuckooRefinableMap_list_unord)\
717     CPPUNIT_TEST(CuckooRefinableMap_list_unord_stat)\
718     CPPUNIT_TEST(CuckooRefinableMap_list_unord_storehash)\
719     CPPUNIT_TEST(CuckooRefinableMap_list_ord)\
720     CPPUNIT_TEST(CuckooRefinableMap_list_ord_stat)\
721     CPPUNIT_TEST(CuckooRefinableMap_list_ord_storehash)\
722     CPPUNIT_TEST(CuckooRefinableMap_vector_unord)\
723     CPPUNIT_TEST(CuckooRefinableMap_vector_unord_stat)\
724     CPPUNIT_TEST(CuckooRefinableMap_vector_unord_storehash)\
725     CPPUNIT_TEST(CuckooRefinableMap_vector_ord)\
726     CPPUNIT_TEST(CuckooRefinableMap_vector_ord_stat)\
727     CPPUNIT_TEST(CuckooRefinableMap_vector_ord_storehash)
728
729
730 // **************************************************************************************
731 // MultiLevelHashMap
732
733 #undef CDSUNIT_DECLARE_MultiLevelHashMap
734 #define CDSUNIT_DECLARE_MultiLevelHashMap  \
735     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_stdhash) \
736     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_stdhash_stat) \
737     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_stdhash) \
738     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_stdhash_stat) \
739     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_md5) \
740     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_md5_stat) \
741     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_md5) \
742     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_md5_stat) \
743     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_sha256) \
744     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_sha256_stat) \
745     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_sha256) \
746     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_sha256_stat) \
747     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_city64) \
748     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_city64_stat) \
749     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_city64) \
750     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_city64_stat) \
751     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_city128) \
752     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_city128_stat) \
753     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_city128) \
754     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_city128_stat) \
755
756
757 #undef CDSUNIT_TEST_MultiLevelHashMap
758 #define CDSUNIT_TEST_MultiLevelHashMap  \
759     CPPUNIT_TEST(MultiLevelHashMap_hp_stdhash) \
760     CPPUNIT_TEST(MultiLevelHashMap_hp_stdhash_stat) \
761     CPPUNIT_TEST(MultiLevelHashMap_dhp_stdhash) \
762     CPPUNIT_TEST(MultiLevelHashMap_dhp_stdhash_stat) \
763     CPPUNIT_TEST(MultiLevelHashMap_hp_md5) \
764     CPPUNIT_TEST(MultiLevelHashMap_hp_md5_stat) \
765     CPPUNIT_TEST(MultiLevelHashMap_dhp_md5) \
766     CPPUNIT_TEST(MultiLevelHashMap_dhp_md5_stat) \
767     CPPUNIT_TEST(MultiLevelHashMap_hp_sha256) \
768     CPPUNIT_TEST(MultiLevelHashMap_hp_sha256_stat) \
769     CPPUNIT_TEST(MultiLevelHashMap_dhp_sha256) \
770     CPPUNIT_TEST(MultiLevelHashMap_dhp_sha256_stat) \
771     CPPUNIT_TEST(MultiLevelHashMap_hp_city64) \
772     CPPUNIT_TEST(MultiLevelHashMap_hp_city64_stat) \
773     CPPUNIT_TEST(MultiLevelHashMap_dhp_city64) \
774     CPPUNIT_TEST(MultiLevelHashMap_dhp_city64_stat) \
775     CPPUNIT_TEST(MultiLevelHashMap_hp_city128) \
776     CPPUNIT_TEST(MultiLevelHashMap_hp_city128_stat) \
777     CPPUNIT_TEST(MultiLevelHashMap_dhp_city128) \
778     CPPUNIT_TEST(MultiLevelHashMap_dhp_city128_stat) \
779