MultiLevelHashSet test, bugfixing
[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_less_michaelAlloc) \
33     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_SHT_cmp_stdAlloc) \
34     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_SHT_less_michaelAlloc) \
35     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_SHB_cmp_stdAlloc) \
36     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_SHB_less_michaelAlloc) \
37     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc) \
38     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_SHT_less_michaelAlloc)
39
40 #   define CDSUNIT_TEST_MichaelMap_RCU_signal \
41     CPPUNIT_TEST(MichaelMap_RCU_SHB_cmp_stdAlloc) \
42     CPPUNIT_TEST(MichaelMap_RCU_SHB_less_michaelAlloc) \
43     CPPUNIT_TEST(MichaelMap_RCU_SHT_cmp_stdAlloc) \
44     CPPUNIT_TEST(MichaelMap_RCU_SHT_less_michaelAlloc) \
45     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHB_cmp_stdAlloc) \
46     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHB_less_michaelAlloc) \
47     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc) \
48     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHT_less_michaelAlloc)
49
50 #else
51 #   define CDSUNIT_DECLARE_MichaelMap_RCU_signal
52 #   define CDSUNIT_TEST_MichaelMap_RCU_signal
53 #endif
54
55 #undef CDSUNIT_DECLARE_MichaelMap
56 #define CDSUNIT_DECLARE_MichaelMap  \
57     TEST_CASE(tag_MichaelHashMap, MichaelMap_HP_cmp_stdAlloc) \
58     TEST_CASE(tag_MichaelHashMap, MichaelMap_HP_less_michaelAlloc) \
59     TEST_CASE(tag_MichaelHashMap, MichaelMap_DHP_cmp_stdAlloc) \
60     TEST_CASE(tag_MichaelHashMap, MichaelMap_DHP_less_michaelAlloc) \
61     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPI_cmp_stdAlloc) \
62     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPI_less_michaelAlloc) \
63     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPB_cmp_stdAlloc) \
64     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPB_less_michaelAlloc) \
65     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPT_cmp_stdAlloc) \
66     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPT_less_michaelAlloc) \
67     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_HP_cmp_stdAlloc) \
68     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_HP_less_michaelAlloc) \
69     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_DHP_cmp_stdAlloc) \
70     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_DHP_less_michaelAlloc) \
71     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPI_cmp_stdAlloc) \
72     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPI_less_michaelAlloc) \
73     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPB_cmp_stdAlloc) \
74     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPB_less_michaelAlloc) \
75     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPT_cmp_stdAlloc) \
76     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPT_less_michaelAlloc)\
77     CDSUNIT_DECLARE_MichaelMap_RCU_signal
78
79 #undef  CDSUNIT_TEST_MichaelMap
80 #define CDSUNIT_TEST_MichaelMap  \
81     CPPUNIT_TEST(MichaelMap_HP_cmp_stdAlloc) \
82     CPPUNIT_TEST(MichaelMap_HP_less_michaelAlloc) \
83     CPPUNIT_TEST(MichaelMap_DHP_cmp_stdAlloc) \
84     CPPUNIT_TEST(MichaelMap_DHP_less_michaelAlloc) \
85     CPPUNIT_TEST(MichaelMap_RCU_GPI_cmp_stdAlloc) \
86     CPPUNIT_TEST(MichaelMap_RCU_GPI_less_michaelAlloc) \
87     CPPUNIT_TEST(MichaelMap_RCU_GPB_cmp_stdAlloc) \
88     CPPUNIT_TEST(MichaelMap_RCU_GPB_less_michaelAlloc) \
89     CPPUNIT_TEST(MichaelMap_RCU_GPT_cmp_stdAlloc) \
90     CPPUNIT_TEST(MichaelMap_RCU_GPT_less_michaelAlloc) \
91     CPPUNIT_TEST(MichaelMap_Lazy_HP_cmp_stdAlloc) \
92     CPPUNIT_TEST(MichaelMap_Lazy_HP_less_michaelAlloc) \
93     CPPUNIT_TEST(MichaelMap_Lazy_DHP_cmp_stdAlloc) \
94     CPPUNIT_TEST(MichaelMap_Lazy_DHP_less_michaelAlloc) \
95     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPI_cmp_stdAlloc) \
96     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPI_less_michaelAlloc) \
97     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPB_cmp_stdAlloc) \
98     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPB_less_michaelAlloc) \
99     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPT_cmp_stdAlloc) \
100     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPT_less_michaelAlloc)\
101     CDSUNIT_TEST_MichaelMap_RCU_signal
102
103 #undef  CDSUNIT_DECLARE_MichaelMap_nogc
104 #define CDSUNIT_DECLARE_MichaelMap_nogc  \
105     TEST_CASE(tag_MichaelHashMap, MichaelMap_NOGC_cmp_stdAlloc) \
106     TEST_CASE(tag_MichaelHashMap, MichaelMap_NOGC_less_michaelAlloc) \
107     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_NOGC_cmp_stdAlloc) \
108     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_NOGC_unord_stdAlloc) \
109     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_NOGC_less_michaelAlloc)
110
111 #undef  CDSUNIT_TEST_MichaelMap_nogc
112 #define CDSUNIT_TEST_MichaelMap_nogc  \
113     CPPUNIT_TEST(MichaelMap_NOGC_cmp_stdAlloc) \
114     CPPUNIT_TEST(MichaelMap_NOGC_less_michaelAlloc) \
115     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_cmp_stdAlloc) \
116     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_unord_stdAlloc) \
117     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_less_michaelAlloc) \
118
119
120 // **************************************************************************************
121 // SplitListMap
122
123 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
124 #   define CDSUNIT_DECLARE_SplitList_RCU_signal  \
125     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_dyn_cmp)\
126     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_dyn_cmp_stat)\
127     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_st_cmp)\
128     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_dyn_less)\
129     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_st_less)\
130     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_st_less_stat)\
131     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_dyn_cmp)\
132     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_dyn_cmp_stat)\
133     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_st_cmp)\
134     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_dyn_less)\
135     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_st_less)\
136     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_st_less_stat)\
137     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_dyn_cmp)\
138     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_dyn_cmp_stat)\
139     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_st_cmp)\
140     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_dyn_less)\
141     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_st_less)\
142     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_st_less_stat)\
143     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_dyn_cmp)\
144     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_dyn_cmp_stat)\
145     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_st_cmp)\
146     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_dyn_less)\
147     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_st_less)\
148     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_st_less_stat)
149
150 #   define CDSUNIT_TEST_SplitList_RCU_signal \
151     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_cmp)\
152     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_cmp_stat)\
153     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_cmp)\
154     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_less)\
155     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_less)\
156     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_less_stat)\
157     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_cmp)\
158     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_cmp_stat)\
159     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_cmp)\
160     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_less)\
161     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_less)\
162     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_less_stat)\
163     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_cmp)\
164     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_cmp_stat)\
165     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_cmp)\
166     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_less)\
167     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_less)\
168     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_less_stat)\
169     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_cmp)\
170     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_cmp_stat)\
171     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_cmp)\
172     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_less)\
173     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_less)\
174     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_less_stat)
175
176 #else
177 #   define CDSUNIT_DECLARE_SplitList_RCU_signal
178 #   define CDSUNIT_TEST_SplitList_RCU_signal
179 #endif
180
181 #define CDSUNIT_DECLARE_SplitList \
182     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_dyn_cmp)\
183     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_dyn_cmp_stat)\
184     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_st_cmp)\
185     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_dyn_less)\
186     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_st_less)\
187     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_st_less_stat)\
188     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_dyn_cmp)\
189     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_dyn_cmp_stat)\
190     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_st_cmp)\
191     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_dyn_less)\
192     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_st_less)\
193     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_st_less_stat)\
194     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_dyn_cmp)\
195     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_dyn_cmp_stat)\
196     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_st_cmp)\
197     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_dyn_less)\
198     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_st_less)\
199     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_st_less_stat)\
200     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_dyn_cmp)\
201     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_dyn_cmp_stat)\
202     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_st_cmp)\
203     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_dyn_less)\
204     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_st_less)\
205     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_st_less_stat)\
206     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_dyn_cmp)\
207     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_dyn_cmp_stat)\
208     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_st_cmp)\
209     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_dyn_less)\
210     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_st_less)\
211     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_st_less_stat)\
212     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_dyn_cmp)\
213     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_dyn_cmp_stat)\
214     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_st_cmp)\
215     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_dyn_less)\
216     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_st_less)\
217     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_st_less_stat)\
218     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_dyn_cmp)\
219     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_dyn_cmp_stat)\
220     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_st_cmp)\
221     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_dyn_less)\
222     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_st_less)\
223     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_st_less_stat)\
224     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_dyn_cmp)\
225     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_dyn_cmp_stat)\
226     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_st_cmp)\
227     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_dyn_less)\
228     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_st_less)\
229     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_st_less_stat)\
230     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_dyn_cmp)\
231     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_dyn_cmp_stat)\
232     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_st_cmp)\
233     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_dyn_less)\
234     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_st_less)\
235     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_st_less_stat)\
236     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_dyn_cmp)\
237     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_dyn_cmp_stat)\
238     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_st_cmp)\
239     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_dyn_less)\
240     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_st_less)\
241     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_st_less_stat)\
242     CDSUNIT_DECLARE_SplitList_RCU_signal
243
244 #define CDSUNIT_TEST_SplitList  \
245     CPPUNIT_TEST(SplitList_Michael_HP_dyn_cmp)\
246     CPPUNIT_TEST(SplitList_Michael_HP_dyn_cmp_stat)\
247     CPPUNIT_TEST(SplitList_Michael_HP_st_cmp)\
248     CPPUNIT_TEST(SplitList_Michael_HP_dyn_less)\
249     CPPUNIT_TEST(SplitList_Michael_HP_st_less)\
250     CPPUNIT_TEST(SplitList_Michael_HP_st_less_stat)\
251     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_cmp)\
252     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_cmp_stat)\
253     CPPUNIT_TEST(SplitList_Michael_DHP_st_cmp)\
254     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_less)\
255     CPPUNIT_TEST(SplitList_Michael_DHP_st_less)\
256     CPPUNIT_TEST(SplitList_Michael_DHP_st_less_stat)\
257     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_cmp)\
258     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_cmp_stat)\
259     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_cmp)\
260     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_less)\
261     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_less)\
262     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_less_stat)\
263     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_cmp)\
264     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_cmp_stat)\
265     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_cmp)\
266     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_less)\
267     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_less)\
268     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_less_stat)\
269     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_cmp)\
270     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_cmp_stat)\
271     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_cmp)\
272     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_less)\
273     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_less)\
274     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_less_stat)\
275     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_cmp)\
276     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_cmp_stat)\
277     CPPUNIT_TEST(SplitList_Lazy_HP_st_cmp)\
278     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_less)\
279     CPPUNIT_TEST(SplitList_Lazy_HP_st_less)\
280     CPPUNIT_TEST(SplitList_Lazy_HP_st_less_stat)\
281     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_cmp)\
282     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_cmp_stat)\
283     CPPUNIT_TEST(SplitList_Lazy_DHP_st_cmp)\
284     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_less)\
285     CPPUNIT_TEST(SplitList_Lazy_DHP_st_less)\
286     CPPUNIT_TEST(SplitList_Lazy_DHP_st_less_stat)\
287     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp)\
288     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp_stat)\
289     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_cmp)\
290     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_less)\
291     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_less)\
292     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_less_stat)\
293     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp)\
294     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp_stat)\
295     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_cmp)\
296     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_less)\
297     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_less)\
298     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_less_stat)\
299     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp)\
300     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp_stat)\
301     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_cmp)\
302     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_less)\
303     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_less)\
304     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_less_stat)\
305     CDSUNIT_TEST_SplitList_RCU_signal
306
307 #define CDSUNIT_DECLARE_SplitList_nogc  \
308     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_dyn_cmp)\
309     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_st_cmp)\
310     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_dyn_less)\
311     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_st_less)\
312     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_dyn_cmp)\
313     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_st_cmp)\
314     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_dyn_less)\
315     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_st_less)
316
317 #define CDSUNIT_TEST_SplitList_nogc  \
318     CPPUNIT_TEST(SplitList_Michael_NOGC_dyn_cmp)\
319     CPPUNIT_TEST(SplitList_Michael_NOGC_st_cmp)\
320     CPPUNIT_TEST(SplitList_Michael_NOGC_dyn_less)\
321     CPPUNIT_TEST(SplitList_Michael_NOGC_st_less)\
322     CPPUNIT_TEST(SplitList_Lazy_NOGC_dyn_cmp)\
323     CPPUNIT_TEST(SplitList_Lazy_NOGC_st_cmp)\
324     CPPUNIT_TEST(SplitList_Lazy_NOGC_dyn_less)\
325     CPPUNIT_TEST(SplitList_Lazy_NOGC_st_less)
326
327
328 // **************************************************************************************
329 // SkipListMap
330
331 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
332 #   define CDSUNIT_DECLARE_SkipListMap_RCU_signal \
333     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_less_pascal)\
334     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_cmp_pascal_stat)\
335     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_less_xorshift)\
336     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_cmp_xorshift_stat)\
337     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_less_pascal)\
338     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_cmp_pascal_stat)\
339     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_less_xorshift)\
340     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_cmp_xorshift_stat)
341
342 #   define CDSUNIT_TEST_SkipListMap_RCU_signal \
343     CPPUNIT_TEST(SkipListMap_rcu_shb_less_pascal)\
344     CPPUNIT_TEST(SkipListMap_rcu_shb_cmp_pascal_stat)\
345     CPPUNIT_TEST(SkipListMap_rcu_shb_less_xorshift)\
346     CPPUNIT_TEST(SkipListMap_rcu_shb_cmp_xorshift_stat)\
347     CPPUNIT_TEST(SkipListMap_rcu_sht_less_pascal)\
348     CPPUNIT_TEST(SkipListMap_rcu_sht_cmp_pascal_stat)\
349     CPPUNIT_TEST(SkipListMap_rcu_sht_less_xorshift)\
350     CPPUNIT_TEST(SkipListMap_rcu_sht_cmp_xorshift_stat)
351
352 #else
353 #   define CDSUNIT_DECLARE_SkipListMap_RCU_signal
354 #   define CDSUNIT_TEST_SkipListMap_RCU_signal
355 #endif
356
357 #define CDSUNIT_DECLARE_SkipListMap \
358     TEST_CASE(tag_SkipListMap, SkipListMap_hp_less_pascal)\
359     TEST_CASE(tag_SkipListMap, SkipListMap_hp_cmp_pascal_stat)\
360     TEST_CASE(tag_SkipListMap, SkipListMap_hp_less_xorshift)\
361     TEST_CASE(tag_SkipListMap, SkipListMap_hp_cmp_xorshift_stat)\
362     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_less_pascal)\
363     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_cmp_pascal_stat)\
364     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_less_xorshift)\
365     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_cmp_xorshift_stat)\
366     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_less_pascal)\
367     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_cmp_pascal_stat)\
368     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_less_xorshift)\
369     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_cmp_xorshift_stat)\
370     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_less_pascal)\
371     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_cmp_pascal_stat)\
372     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_less_xorshift)\
373     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_cmp_xorshift_stat)\
374     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_less_pascal)\
375     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_cmp_pascal_stat)\
376     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_less_xorshift)\
377     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_cmp_xorshift_stat)\
378     CDSUNIT_DECLARE_SkipListMap_RCU_signal
379
380 #define CDSUNIT_TEST_SkipListMap \
381     CPPUNIT_TEST(SkipListMap_hp_less_pascal)\
382     CPPUNIT_TEST(SkipListMap_hp_cmp_pascal_stat)\
383     CPPUNIT_TEST(SkipListMap_hp_less_xorshift)\
384     CPPUNIT_TEST(SkipListMap_hp_cmp_xorshift_stat)\
385     CPPUNIT_TEST(SkipListMap_dhp_less_pascal)\
386     CPPUNIT_TEST(SkipListMap_dhp_cmp_pascal_stat)\
387     CPPUNIT_TEST(SkipListMap_dhp_less_xorshift)\
388     CPPUNIT_TEST(SkipListMap_dhp_cmp_xorshift_stat)\
389     CPPUNIT_TEST(SkipListMap_rcu_gpi_less_pascal)\
390     CPPUNIT_TEST(SkipListMap_rcu_gpi_cmp_pascal_stat)\
391     CPPUNIT_TEST(SkipListMap_rcu_gpi_less_xorshift)\
392     CPPUNIT_TEST(SkipListMap_rcu_gpi_cmp_xorshift_stat)\
393     CPPUNIT_TEST(SkipListMap_rcu_gpb_less_pascal)\
394     CPPUNIT_TEST(SkipListMap_rcu_gpb_cmp_pascal_stat)\
395     CPPUNIT_TEST(SkipListMap_rcu_gpb_less_xorshift)\
396     CPPUNIT_TEST(SkipListMap_rcu_gpb_cmp_xorshift_stat)\
397     CPPUNIT_TEST(SkipListMap_rcu_gpt_less_pascal)\
398     CPPUNIT_TEST(SkipListMap_rcu_gpt_cmp_pascal_stat)\
399     CPPUNIT_TEST(SkipListMap_rcu_gpt_less_xorshift)\
400     CPPUNIT_TEST(SkipListMap_rcu_gpt_cmp_xorshift_stat)\
401     CDSUNIT_TEST_SkipListMap_RCU_signal
402
403 #define CDSUNIT_DECLARE_SkipListMap_nogc \
404     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_less_pascal)\
405     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_cmp_pascal_stat)\
406     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_less_xorshift)\
407     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_cmp_xorshift_stat)
408
409 #define CDSUNIT_TEST_SkipListMap_nogc \
410     CPPUNIT_TEST(SkipListMap_nogc_less_pascal)\
411     CPPUNIT_TEST(SkipListMap_nogc_cmp_pascal_stat)\
412     CPPUNIT_TEST(SkipListMap_nogc_less_xorshift)\
413     CPPUNIT_TEST(SkipListMap_nogc_cmp_xorshift_stat)
414
415
416 // **************************************************************************************
417 // EllenBinTreeMap
418
419 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
420 #   define CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal \
421     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_shb)\
422     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_shb_stat)\
423     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_sht)\
424     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_sht_stat)
425
426 #   define CDSUNIT_TEST_EllenBinTreeMap_RCU_signal \
427     CPPUNIT_TEST(EllenBinTreeMap_rcu_shb)\
428     CPPUNIT_TEST(EllenBinTreeMap_rcu_shb_stat)\
429     CPPUNIT_TEST(EllenBinTreeMap_rcu_sht)\
430     CPPUNIT_TEST(EllenBinTreeMap_rcu_sht_stat)
431 #else
432 #   define CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal
433 #   define CDSUNIT_TEST_EllenBinTreeMap_RCU_signal
434 #endif
435
436 #define CDSUNIT_DECLARE_EllenBinTreeMap \
437     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_hp)\
438     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_hp_yield)\
439     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_hp_stat)\
440     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_dhp)\
441     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_dhp_yield)\
442     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_dhp_stat)\
443     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpi)\
444     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpi_stat)\
445     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpb)\
446     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpb_yield)\
447     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpb_stat)\
448     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpt)\
449     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpt_stat)\
450     CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal
451
452 #define CDSUNIT_TEST_EllenBinTreeMap \
453     CPPUNIT_TEST(EllenBinTreeMap_hp)\
454     CPPUNIT_TEST(EllenBinTreeMap_hp_yield)\
455     CPPUNIT_TEST(EllenBinTreeMap_hp_stat)\
456     CPPUNIT_TEST(EllenBinTreeMap_dhp)\
457     CPPUNIT_TEST(EllenBinTreeMap_dhp_yield)\
458     CPPUNIT_TEST(EllenBinTreeMap_dhp_stat)\
459     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpi)\
460     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpi_stat)\
461     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb)\
462     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb_yield)\
463     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb_stat)\
464     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpt)\
465     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpt_stat)\
466     CDSUNIT_TEST_EllenBinTreeMap_RCU_signal
467
468
469 // **************************************************************************************
470 // BronsonAVLTreeMap
471
472 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
473 #   define CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal \
474     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less) \
475     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less) \
476     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_cmp_stat) \
477     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_cmp_stat) \
478     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
479     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
480     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
481     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
482     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
483     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
484     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
485     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
486     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
487     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
488     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
489     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
490
491 #   define CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal \
492     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less) \
493     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less) \
494     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_cmp_stat) \
495     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_cmp_stat) \
496     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
497     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
498     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
499     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
500     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
501     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
502     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
503     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
504     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
505     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
506     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
507     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
508
509 #else
510 #   define CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal
511 #   define CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal
512 #endif
513
514 #define CDSUNIT_DECLARE_BronsonAVLTreeMap \
515     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less)\
516     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less)\
517     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less)\
518     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_cmp_stat)\
519     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_cmp_stat)\
520     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_cmp_stat)\
521     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
522     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
523     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
524     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
525     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
526     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
527     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
528     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
529     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
530     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
531     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
532     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
533     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
534     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
535     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
536     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
537     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
538     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
539     CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal
540
541 #define CDSUNIT_TEST_BronsonAVLTreeMap \
542     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less)\
543     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_cmp_stat)\
544     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less)\
545     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_cmp_stat)\
546     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less)\
547     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_cmp_stat)\
548     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
549     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
550     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
551     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
552     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
553     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
554     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
555     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
556     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
557     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
558     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
559     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
560     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
561     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
562     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
563     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
564     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
565     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
566     CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal
567
568
569 // **************************************************************************************
570 // StripedMap
571
572 #define CDSUNIT_DECLARE_StripedMap_common \
573     TEST_CASE(tag_StripedMap, StripedMap_list) \
574     TEST_CASE(tag_StripedMap, StripedMap_map) \
575     TEST_CASE(tag_StripedMap, StripedMap_hashmap) \
576     TEST_CASE(tag_StripedMap, StripedMap_boost_unordered_map)
577
578 #define CDSUNIT_TEST_StripedMap_common \
579     CPPUNIT_TEST(StripedMap_list) \
580     CPPUNIT_TEST(StripedMap_map) \
581     CPPUNIT_TEST(StripedMap_hashmap) \
582     CPPUNIT_TEST(StripedMap_boost_unordered_map)
583
584 #if BOOST_VERSION >= 104800
585 #   define CDSUNIT_DECLARE_StripedMap_boost_container \
586         TEST_CASE(tag_StripedMap, StripedMap_boost_list) \
587         TEST_CASE(tag_StripedMap, StripedMap_slist) \
588         TEST_CASE(tag_StripedMap, StripedMap_boost_map)
589
590 #   define CDSUNIT_TEST_StripedMap_boost_container \
591         CPPUNIT_TEST(StripedMap_boost_list) \
592         CPPUNIT_TEST(StripedMap_slist) \
593         CPPUNIT_TEST(StripedMap_boost_map)
594 #else
595 #   define CDSUNIT_DECLARE_StripedMap_boost_container
596 #   define CDSUNIT_TEST_StripedMap_boost_container
597 #endif
598
599 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
600 #   define CDSUNIT_DECLARE_StripedMap_boost_flat_container \
601         TEST_CASE(tag_StripedMap, StripedMap_boost_flat_map)
602
603 #   define CDSUNIT_TEST_StripedMap_boost_flat_container \
604         CPPUNIT_TEST(StripedMap_boost_flat_map)
605 #else
606 #   define CDSUNIT_DECLARE_StripedMap_boost_flat_container
607 #   define CDSUNIT_TEST_StripedMap_boost_flat_container
608 #endif
609
610 #define CDSUNIT_DECLARE_StripedMap \
611     CDSUNIT_DECLARE_StripedMap_common \
612     CDSUNIT_DECLARE_StripedMap_boost_container \
613     CDSUNIT_DECLARE_StripedMap_boost_flat_container
614
615 #define CDSUNIT_TEST_StripedMap \
616     CDSUNIT_TEST_StripedMap_common \
617     CDSUNIT_TEST_StripedMap_boost_container \
618     CDSUNIT_TEST_StripedMap_boost_flat_container
619
620
621 // **************************************************************************************
622 // RefinableMap
623
624 #define CDSUNIT_DECLARE_RefinableMap_common \
625     TEST_CASE(tag_StripedMap, RefinableMap_list) \
626     TEST_CASE(tag_StripedMap, RefinableMap_map) \
627     TEST_CASE(tag_StripedMap, RefinableMap_hashmap) \
628     TEST_CASE(tag_StripedMap, RefinableMap_boost_unordered_map)
629
630 #define CDSUNIT_TEST_RefinableMap_common \
631     CPPUNIT_TEST(RefinableMap_list) \
632     CPPUNIT_TEST(RefinableMap_map) \
633     CPPUNIT_TEST(RefinableMap_hashmap) \
634     CPPUNIT_TEST(RefinableMap_boost_unordered_map)
635
636 #if BOOST_VERSION >= 104800
637 #   define CDSUNIT_DECLARE_RefinableMap_boost_container \
638         TEST_CASE(tag_StripedMap, RefinableMap_boost_list) \
639         TEST_CASE(tag_StripedMap, RefinableMap_slist) \
640         TEST_CASE(tag_StripedMap, RefinableMap_boost_map)
641
642 #   define CDSUNIT_TEST_RefinableMap_boost_container \
643         CPPUNIT_TEST(RefinableMap_boost_list) \
644         CPPUNIT_TEST(RefinableMap_slist) \
645         CPPUNIT_TEST(RefinableMap_boost_map)
646 #else
647 #   define CDSUNIT_DECLARE_RefinableMap_boost_container
648 #   define CDSUNIT_TEST_RefinableMap_boost_container
649 #endif
650
651 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
652 #   define CDSUNIT_DECLARE_RefinableMap_boost_flat_container \
653         TEST_CASE(tag_StripedMap, RefinableMap_boost_flat_map)
654
655 #   define CDSUNIT_TEST_RefinableMap_boost_flat_container \
656         CPPUNIT_TEST(RefinableMap_boost_flat_map)
657 #else
658 #   define CDSUNIT_DECLARE_RefinableMap_boost_flat_container
659 #   define CDSUNIT_TEST_RefinableMap_boost_flat_container
660 #endif
661
662 #define CDSUNIT_DECLARE_RefinableMap \
663     CDSUNIT_DECLARE_RefinableMap_common \
664     CDSUNIT_DECLARE_RefinableMap_boost_container \
665     CDSUNIT_DECLARE_RefinableMap_boost_flat_container
666
667 #define CDSUNIT_TEST_RefinableMap \
668     CDSUNIT_TEST_RefinableMap_common \
669     CDSUNIT_TEST_RefinableMap_boost_container \
670     CDSUNIT_TEST_RefinableMap_boost_flat_container
671
672
673 // **************************************************************************************
674 // CuckooMap
675
676 #define CDSUNIT_DECLARE_CuckooMap \
677     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_unord)\
678     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_ord)\
679     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_unord)\
680     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_ord)\
681     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_unord_stat)\
682     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_ord_stat)\
683     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_unord_stat)\
684     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_ord_stat)\
685     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_unord)\
686     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_ord)\
687     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_unord)\
688     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_ord) \
689     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_unord_stat)\
690     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_ord_stat)\
691     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_unord_stat)\
692     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_ord_stat) \
693     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_unord_storehash)\
694     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_ord_storehash)\
695     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_unord_storehash)\
696     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_ord_storehash)\
697     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_unord_storehash)\
698     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_ord_storehash)\
699     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_unord_storehash)\
700     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_ord_storehash)
701
702 #define CDSUNIT_TEST_CuckooMap \
703     CPPUNIT_TEST(CuckooStripedMap_list_unord)\
704     CPPUNIT_TEST(CuckooStripedMap_list_unord_stat)\
705     CPPUNIT_TEST(CuckooStripedMap_list_unord_storehash)\
706     CPPUNIT_TEST(CuckooStripedMap_list_ord)\
707     CPPUNIT_TEST(CuckooStripedMap_list_ord_stat)\
708     CPPUNIT_TEST(CuckooStripedMap_list_ord_storehash)\
709     CPPUNIT_TEST(CuckooStripedMap_vector_unord)\
710     CPPUNIT_TEST(CuckooStripedMap_vector_unord_stat)\
711     CPPUNIT_TEST(CuckooStripedMap_vector_unord_storehash)\
712     CPPUNIT_TEST(CuckooStripedMap_vector_ord)\
713     CPPUNIT_TEST(CuckooStripedMap_vector_ord_stat)\
714     CPPUNIT_TEST(CuckooStripedMap_vector_ord_storehash)\
715     CPPUNIT_TEST(CuckooRefinableMap_list_unord)\
716     CPPUNIT_TEST(CuckooRefinableMap_list_unord_stat)\
717     CPPUNIT_TEST(CuckooRefinableMap_list_unord_storehash)\
718     CPPUNIT_TEST(CuckooRefinableMap_list_ord)\
719     CPPUNIT_TEST(CuckooRefinableMap_list_ord_stat)\
720     CPPUNIT_TEST(CuckooRefinableMap_list_ord_storehash)\
721     CPPUNIT_TEST(CuckooRefinableMap_vector_unord)\
722     CPPUNIT_TEST(CuckooRefinableMap_vector_unord_stat)\
723     CPPUNIT_TEST(CuckooRefinableMap_vector_unord_storehash)\
724     CPPUNIT_TEST(CuckooRefinableMap_vector_ord)\
725     CPPUNIT_TEST(CuckooRefinableMap_vector_ord_stat)\
726     CPPUNIT_TEST(CuckooRefinableMap_vector_ord_storehash)
727
728
729 // **************************************************************************************
730 // MultiLevelHashMap
731
732
733 // fixed-sized key - no hash function is necessary
734
735 #undef CDSUNIT_DECLARE_MultiLevelHashMap_fixed
736 #undef CDSUNIT_DECLARE_MultiLevelHashMap_fixed_RCU_Signal
737 #undef CDSUNIT_TEST_MultiLevelHashMap_fixed
738 #undef CDSUNIT_TEST_MultiLevelHashMap_fixed_RCU_Signal
739
740 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
741 #   define CDSUNIT_DECLARE_MultiLevelHashMap_fixed_RCU_Signal \
742         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_fixed) \
743         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_fixed_stat) \
744         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_fixed) \
745         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_fixed_stat) \
746
747 #   define CDSUNIT_TEST_MultiLevelHashMap_fixed_RCU_Signal \
748         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_fixed) \
749         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_fixed_stat) \
750         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_fixed) \
751         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_fixed_stat) \
752
753 #else
754 #   define CDSUNIT_DECLARE_MultiLevelHashMap_fixed_RCU_Signal
755 #   define CDSUNIT_TEST_MultiLevelHashMap_fixed_RCU_Signal
756 #endif
757
758
759 #define CDSUNIT_DECLARE_MultiLevelHashMap_fixed \
760     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_fixed) \
761     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_fixed_stat) \
762     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_fixed) \
763     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_fixed_stat) \
764     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_fixed) \
765     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_fixed_stat) \
766     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_fixed) \
767     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_fixed_stat) \
768     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_fixed) \
769     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_fixed_stat) \
770     CDSUNIT_DECLARE_MultiLevelHashMap_fixed_RCU_Signal
771
772 #define CDSUNIT_TEST_MultiLevelHashMap_fixed \
773     CPPUNIT_TEST(MultiLevelHashMap_hp_fixed) \
774     CPPUNIT_TEST(MultiLevelHashMap_hp_fixed_stat) \
775     CPPUNIT_TEST(MultiLevelHashMap_dhp_fixed) \
776     CPPUNIT_TEST(MultiLevelHashMap_dhp_fixed_stat) \
777     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_fixed) \
778     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_fixed_stat) \
779     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_fixed) \
780     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_fixed_stat) \
781     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_fixed) \
782     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_fixed_stat) \
783     CDSUNIT_TEST_MultiLevelHashMap_fixed_RCU_Signal
784
785 // std::hash
786
787 #undef CDSUNIT_DECLARE_MultiLevelHashMap_stdhash
788 #undef CDSUNIT_DECLARE_MultiLevelHashMap_stdhash_RCU_Signal
789 #undef CDSUNIT_TEST_MultiLevelHashMap_stdhash
790 #undef CDSUNIT_TEST_MultiLevelHashMap_stdhash_RCU_Signal
791
792 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
793 #   define CDSUNIT_DECLARE_MultiLevelHashMap_stdhash_RCU_Signal \
794         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_stdhash) \
795         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_stdhash_stat) \
796         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_stdhash) \
797         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_stdhash_stat) \
798
799 #   define CDSUNIT_TEST_MultiLevelHashMap_stdhash_RCU_Signal \
800         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_stdhash) \
801         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_stdhash_stat) \
802         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_stdhash) \
803         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_stdhash_stat) \
804
805 #else
806 #   define CDSUNIT_DECLARE_MultiLevelHashMap_stdhash_RCU_Signal
807 #   define CDSUNIT_TEST_MultiLevelHashMap_stdhash_RCU_Signal
808 #endif
809
810
811 #define CDSUNIT_DECLARE_MultiLevelHashMap_stdhash \
812     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_stdhash) \
813     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_stdhash_stat) \
814     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_stdhash) \
815     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_stdhash_stat) \
816     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_stdhash) \
817     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_stdhash_stat) \
818     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_stdhash) \
819     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_stdhash_stat) \
820     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_stdhash) \
821     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_stdhash_stat) \
822     CDSUNIT_DECLARE_MultiLevelHashMap_stdhash_RCU_Signal
823
824 #define CDSUNIT_TEST_MultiLevelHashMap_stdhash \
825     CPPUNIT_TEST(MultiLevelHashMap_hp_stdhash) \
826     CPPUNIT_TEST(MultiLevelHashMap_hp_stdhash_stat) \
827     CPPUNIT_TEST(MultiLevelHashMap_dhp_stdhash) \
828     CPPUNIT_TEST(MultiLevelHashMap_dhp_stdhash_stat) \
829     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_stdhash) \
830     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_stdhash_stat) \
831     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_stdhash) \
832     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_stdhash_stat) \
833     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_stdhash) \
834     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_stdhash_stat) \
835     CDSUNIT_TEST_MultiLevelHashMap_stdhash_RCU_Signal
836
837 // MD5
838
839 #undef CDSUNIT_DECLARE_MultiLevelHashMap_md5
840 #undef CDSUNIT_DECLARE_MultiLevelHashMap_md5_RCU_Signal
841 #undef CDSUNIT_TEST_MultiLevelHashMap_md5
842 #undef CDSUNIT_TEST_MultiLevelHashMap_md5_RCU_Signal
843
844 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
845 #   define CDSUNIT_DECLARE_MultiLevelHashMap_md5_RCU_Signal \
846         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_md5) \
847         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_md5_stat) \
848         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_md5) \
849         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_md5_stat) \
850
851 #   define CDSUNIT_TEST_MultiLevelHashMap_md5_RCU_Signal \
852         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_md5) \
853         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_md5_stat) \
854         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_md5) \
855         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_md5_stat) \
856
857 #else
858 #   define CDSUNIT_DECLARE_MultiLevelHashMap_md5_RCU_Signal
859 #   define CDSUNIT_TEST_MultiLevelHashMap_md5_RCU_Signal
860 #endif
861
862
863 #define CDSUNIT_DECLARE_MultiLevelHashMap_md5 \
864     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_md5) \
865     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_md5_stat) \
866     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_md5) \
867     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_md5_stat) \
868     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_md5) \
869     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_md5_stat) \
870     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_md5) \
871     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_md5_stat) \
872     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_md5) \
873     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_md5_stat) \
874     CDSUNIT_DECLARE_MultiLevelHashMap_md5_RCU_Signal
875
876 #define CDSUNIT_TEST_MultiLevelHashMap_md5 \
877     CPPUNIT_TEST(MultiLevelHashMap_hp_md5) \
878     CPPUNIT_TEST(MultiLevelHashMap_hp_md5_stat) \
879     CPPUNIT_TEST(MultiLevelHashMap_dhp_md5) \
880     CPPUNIT_TEST(MultiLevelHashMap_dhp_md5_stat) \
881     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_md5) \
882     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_md5_stat) \
883     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_md5) \
884     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_md5_stat) \
885     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_md5) \
886     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_md5_stat) \
887     CDSUNIT_TEST_MultiLevelHashMap_md5_RCU_Signal
888
889 // SHA256
890
891 #undef CDSUNIT_DECLARE_MultiLevelHashMap_sha256
892 #undef CDSUNIT_DECLARE_MultiLevelHashMap_sha256_RCU_Signal
893 #undef CDSUNIT_TEST_MultiLevelHashMap_sha256
894 #undef CDSUNIT_TEST_MultiLevelHashMap_sha256_RCU_Signal
895
896 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
897 #   define CDSUNIT_DECLARE_MultiLevelHashMap_sha256_RCU_Signal \
898         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_sha256) \
899         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_sha256_stat) \
900         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_sha256) \
901         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_sha256_stat) \
902
903 #   define CDSUNIT_TEST_MultiLevelHashMap_sha256_RCU_Signal \
904         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_sha256) \
905         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_sha256_stat) \
906         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_sha256) \
907         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_sha256_stat) \
908
909 #else
910 #   define CDSUNIT_DECLARE_MultiLevelHashMap_sha256_RCU_Signal
911 #   define CDSUNIT_TEST_MultiLevelHashMap_sha256_RCU_Signal
912 #endif
913
914
915 #define CDSUNIT_DECLARE_MultiLevelHashMap_sha256 \
916     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_sha256) \
917     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_sha256_stat) \
918     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_sha256) \
919     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_sha256_stat) \
920     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_sha256) \
921     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_sha256_stat) \
922     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_sha256) \
923     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_sha256_stat) \
924     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_sha256) \
925     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_sha256_stat) \
926     CDSUNIT_DECLARE_MultiLevelHashMap_sha256_RCU_Signal
927
928 #define CDSUNIT_TEST_MultiLevelHashMap_sha256 \
929     CPPUNIT_TEST(MultiLevelHashMap_hp_sha256) \
930     CPPUNIT_TEST(MultiLevelHashMap_hp_sha256_stat) \
931     CPPUNIT_TEST(MultiLevelHashMap_dhp_sha256) \
932     CPPUNIT_TEST(MultiLevelHashMap_dhp_sha256_stat) \
933     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_sha256) \
934     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_sha256_stat) \
935     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_sha256) \
936     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_sha256_stat) \
937     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_sha256) \
938     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_sha256_stat) \
939     CDSUNIT_TEST_MultiLevelHashMap_sha256_RCU_Signal
940
941 // CityHash - only for 64bit
942
943 #undef CDSUNIT_DECLARE_MultiLevelHashMap_city128_RCU_Signal
944 #undef CDSUNIT_TEST_MultiLevelHashMap_city128_RCU_Signal
945
946 #if CDS_BUILD_BITS == 64
947
948 #undef CDSUNIT_DECLARE_MultiLevelHashMap_city64
949 #undef CDSUNIT_DECLARE_MultiLevelHashMap_city64_RCU_Signal
950 #undef CDSUNIT_TEST_MultiLevelHashMap_city64
951 #undef CDSUNIT_TEST_MultiLevelHashMap_city64_RCU_Signal
952
953 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
954 #   define CDSUNIT_DECLARE_MultiLevelHashMap_city64_RCU_Signal \
955         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_city64) \
956         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_city64_stat) \
957         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_city64) \
958         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_city64_stat) \
959
960 #   define CDSUNIT_TEST_MultiLevelHashMap_city64_RCU_Signal \
961         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_city64) \
962         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_city64_stat) \
963         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_city64) \
964         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_city64_stat) \
965
966 #else
967 #   define CDSUNIT_DECLARE_MultiLevelHashMap_city64_RCU_Signal
968 #   define CDSUNIT_TEST_MultiLevelHashMap_city64_RCU_Signal
969 #endif
970
971
972 #define CDSUNIT_DECLARE_MultiLevelHashMap_city64 \
973     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_city64) \
974     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_city64_stat) \
975     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_city64) \
976     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_city64_stat) \
977     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_city64) \
978     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_city64_stat) \
979     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_city64) \
980     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_city64_stat) \
981     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_city64) \
982     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_city64_stat) \
983     CDSUNIT_DECLARE_MultiLevelHashMap_city64_RCU_Signal
984
985 #define CDSUNIT_TEST_MultiLevelHashMap_city64 \
986     CPPUNIT_TEST(MultiLevelHashMap_hp_city64) \
987     CPPUNIT_TEST(MultiLevelHashMap_hp_city64_stat) \
988     CPPUNIT_TEST(MultiLevelHashMap_dhp_city64) \
989     CPPUNIT_TEST(MultiLevelHashMap_dhp_city64_stat) \
990     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_city64) \
991     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_city64_stat) \
992     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_city64) \
993     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_city64_stat) \
994     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_city64) \
995     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_city64_stat) \
996     CDSUNIT_TEST_MultiLevelHashMap_city64_RCU_Signal
997
998 #undef CDSUNIT_DECLARE_MultiLevelHashMap_city128
999 #undef CDSUNIT_DECLARE_MultiLevelHashMap_city128_RCU_Signal
1000 #undef CDSUNIT_TEST_MultiLevelHashMap_city128
1001 #undef CDSUNIT_TEST_MultiLevelHashMap_city128_RCU_Signal
1002
1003 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
1004 #   define CDSUNIT_DECLARE_MultiLevelHashMap_city128_RCU_Signal \
1005         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_city128) \
1006         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_city128_stat) \
1007         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_city128) \
1008         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_city128_stat) \
1009
1010 #   define CDSUNIT_TEST_MultiLevelHashMap_city128_RCU_Signal \
1011         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_city128) \
1012         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_city128_stat) \
1013         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_city128) \
1014         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_city128_stat) \
1015
1016 #else
1017 #   define CDSUNIT_DECLARE_MultiLevelHashMap_city128_RCU_Signal
1018 #   define CDSUNIT_TEST_MultiLevelHashMap_city128_RCU_Signal
1019 #endif
1020
1021
1022 #define CDSUNIT_DECLARE_MultiLevelHashMap_city128 \
1023     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_city128) \
1024     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_city128_stat) \
1025     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_city128) \
1026     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_city128_stat) \
1027     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_city128) \
1028     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_city128_stat) \
1029     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_city128) \
1030     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_city128_stat) \
1031     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_city128) \
1032     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_city128_stat) \
1033     CDSUNIT_DECLARE_MultiLevelHashMap_city128_RCU_Signal
1034
1035 #define CDSUNIT_TEST_MultiLevelHashMap_city128 \
1036     CPPUNIT_TEST(MultiLevelHashMap_hp_city128) \
1037     CPPUNIT_TEST(MultiLevelHashMap_hp_city128_stat) \
1038     CPPUNIT_TEST(MultiLevelHashMap_dhp_city128) \
1039     CPPUNIT_TEST(MultiLevelHashMap_dhp_city128_stat) \
1040     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_city128) \
1041     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_city128_stat) \
1042     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_city128) \
1043     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_city128_stat) \
1044     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_city128) \
1045     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_city128_stat) \
1046     CDSUNIT_TEST_MultiLevelHashMap_city128_RCU_Signal
1047
1048 #define CDSUNIT_DECLARE_MultiLevelHashMap_city \
1049     CDSUNIT_DECLARE_MultiLevelHashMap_city64 \
1050     CDSUNIT_DECLARE_MultiLevelHashMap_city128
1051
1052 #define CDSUNIT_TEST_MultiLevelHashMap_city \
1053     CDSUNIT_TEST_MultiLevelHashMap_city64 \
1054     CDSUNIT_TEST_MultiLevelHashMap_city128
1055
1056 #else // 32bit
1057 #   define CDSUNIT_DECLARE_MultiLevelHashMap_city
1058 #   define CDSUNIT_TEST_MultiLevelHashMap_city
1059 #endif // #if CDS_BUILD_BITS == 64
1060
1061 #undef CDSUNIT_DECLARE_MultiLevelHashMap
1062 #undef CDSUNIT_TEST_MultiLevelHashMap
1063
1064 #define CDSUNIT_DECLARE_MultiLevelHashMap \
1065     CDSUNIT_DECLARE_MultiLevelHashMap_fixed \
1066     CDSUNIT_DECLARE_MultiLevelHashMap_stdhash \
1067     CDSUNIT_DECLARE_MultiLevelHashMap_md5 \
1068     CDSUNIT_DECLARE_MultiLevelHashMap_sha256 \
1069     CDSUNIT_DECLARE_MultiLevelHashMap_city \
1070
1071 #define CDSUNIT_TEST_MultiLevelHashMap \
1072     CDSUNIT_TEST_MultiLevelHashMap_fixed \
1073     CDSUNIT_TEST_MultiLevelHashMap_stdhash \
1074     CDSUNIT_TEST_MultiLevelHashMap_md5 \
1075     CDSUNIT_TEST_MultiLevelHashMap_sha256 \
1076     CDSUNIT_TEST_MultiLevelHashMap_city
1077