1d30ad29c8527fbd1e5b4b970dac4b9119c65f6b
[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 #undef CDSUNIT_DECLARE_MultiLevelHashMap64
733 #undef CDSUNIT_DECLARE_MultiLevelHashMap64_RCU_Signal
734
735 #if CDS_BUILD_BITS == 64
736 #   ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
737 #       define CDSUNIT_DECLARE_MultiLevelHashMap64_RCU_Signal \
738             TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_city64) \
739             TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_city64_stat) \
740             TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_city64) \
741             TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_city64_stat) \
742             TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_city128) \
743             TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_city128_stat) \
744             TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_city128) \
745             TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_city128_stat) \
746
747 #   else
748 #       define CDSUNIT_DECLARE_MultiLevelHashMap64_RCU_Signal
749 #   endif
750
751 #   define CDSUNIT_DECLARE_MultiLevelHashMap64  \
752         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_city64) \
753         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_city64_stat) \
754         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_city64) \
755         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_city64_stat) \
756         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_city64) \
757         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_city64_stat) \
758         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_city64) \
759         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_city64_stat) \
760         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_city64) \
761         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_city64_stat) \
762         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_city128) \
763         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_city128_stat) \
764         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_city128) \
765         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_city128_stat) \
766         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_city128) \
767         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_city128_stat) \
768         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_city128) \
769         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_city128_stat) \
770         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_city128) \
771         TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_city128_stat) \
772         CDSUNIT_DECLARE_MultiLevelHashMap64_RCU_Signal
773
774 #else
775 #   define CDSUNIT_DECLARE_MultiLevelHashMap64
776 #endif
777
778 #undef CDSUNIT_DECLARE_MultiLevelHashMap
779 #undef CDSUNIT_DECLARE_MultiLevelHashMap_hash
780 #undef CDSUNIT_DECLARE_MultiLevelHashMap_hash_RCU_Signal
781 #undef CDSUNIT_DECLARE_MultiLevelHashMap_stdhash
782 #undef CDSUNIT_DECLARE_MultiLevelHashMap_stdhash_RCU_Signal
783
784 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
785 #   define CDSUNIT_DECLARE_MultiLevelHashMap_stdhash_RCU_Signal \
786     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_stdhash) \
787     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_stdhash_stat) \
788     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_stdhash) \
789     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_stdhash_stat) \
790
791 #   define CDSUNIT_DECLARE_MultiLevelHashMap_hash_RCU_Signal \
792     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_md5) \
793     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_md5_stat) \
794     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_md5) \
795     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_md5_stat) \
796     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_sha256) \
797     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_shb_sha256_stat) \
798     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_sha256) \
799     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_sht_sha256_stat) \
800
801 #else
802 #   define CDSUNIT_DECLARE_MultiLevelHashMap_stdhash_RCU_Signal
803 #   define CDSUNIT_DECLARE_MultiLevelHashMap_hash_RCU_Signal
804 #endif
805
806 #define CDSUNIT_DECLARE_MultiLevelHashMap_stdhash  \
807     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_stdhash) \
808     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_stdhash_stat) \
809     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_stdhash) \
810     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_stdhash_stat) \
811     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_stdhash) \
812     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_stdhash_stat) \
813     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_stdhash) \
814     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_stdhash_stat) \
815     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_stdhash) \
816     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_stdhash_stat) \
817     CDSUNIT_DECLARE_MultiLevelHashMap_stdhash_RCU_Signal
818
819 #define CDSUNIT_DECLARE_MultiLevelHashMap_hash  \
820     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_md5) \
821     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_md5_stat) \
822     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_md5) \
823     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_md5_stat) \
824     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_md5) \
825     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_md5_stat) \
826     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_md5) \
827     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_md5_stat) \
828     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_md5) \
829     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_md5_stat) \
830     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_sha256) \
831     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_sha256_stat) \
832     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_sha256) \
833     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_sha256_stat) \
834     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_sha256) \
835     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpi_sha256_stat) \
836     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_sha256) \
837     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpb_sha256_stat) \
838     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_sha256) \
839     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_rcu_gpt_sha256_stat) \
840     CDSUNIT_DECLARE_MultiLevelHashMap_hash_RCU_Signal \
841     CDSUNIT_DECLARE_MultiLevelHashMap64 \
842
843 #define CDSUNIT_DECLARE_MultiLevelHashMap  \
844     CDSUNIT_DECLARE_MultiLevelHashMap_stdhash \
845     CDSUNIT_DECLARE_MultiLevelHashMap_hash \
846
847
848 #undef CDSUNIT_TEST_MultiLevelHashMap64
849 #undef CDSUNIT_TEST_MultiLevelHashMap64_RCU_Signal
850 #if CDS_BUILD_BITS == 64
851 #   ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
852 #       define CDSUNIT_TEST_MultiLevelHashMap64_RCU_Signal \
853             CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_city64) \
854             CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_city64_stat) \
855             CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_city64) \
856             CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_city64_stat) \
857             CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_city128) \
858             CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_city128_stat) \
859             CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_city128) \
860             CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_city128_stat) \
861
862 #   else
863 #       define CDSUNIT_TEST_MultiLevelHashMap64_RCU_Signal
864 #   endif
865
866 #   define CDSUNIT_TEST_MultiLevelHashMap64  \
867         CPPUNIT_TEST(MultiLevelHashMap_hp_city64) \
868         CPPUNIT_TEST(MultiLevelHashMap_hp_city64_stat) \
869         CPPUNIT_TEST(MultiLevelHashMap_dhp_city64) \
870         CPPUNIT_TEST(MultiLevelHashMap_dhp_city64_stat) \
871         CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_city64) \
872         CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_city64_stat) \
873         CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_city64) \
874         CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_city64_stat) \
875         CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_city64) \
876         CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_city64_stat) \
877         CPPUNIT_TEST(MultiLevelHashMap_hp_city128) \
878         CPPUNIT_TEST(MultiLevelHashMap_hp_city128_stat) \
879         CPPUNIT_TEST(MultiLevelHashMap_dhp_city128) \
880         CPPUNIT_TEST(MultiLevelHashMap_dhp_city128_stat) \
881         CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_city128) \
882         CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_city128_stat) \
883         CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_city128) \
884         CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_city128_stat) \
885         CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_city128) \
886         CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_city128_stat) \
887         CDSUNIT_TEST_MultiLevelHashMap64_RCU_Signal
888
889 #else
890 #   define CDSUNIT_TEST_MultiLevelHashMap64
891 #endif
892
893 #undef CDSUNIT_TEST_MultiLevelHashMap_hash
894 #undef CDSUNIT_TEST_MultiLevelHashMap_hash_RCU_Signal
895 #undef CDSUNIT_TEST_MultiLevelHashMap_stdhash
896 #undef CDSUNIT_TEST_MultiLevelHashMap_stdhash_RCU_Signal
897
898 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
899 #   define CDSUNIT_TEST_MultiLevelHashMap_stdhash_RCU_Signal \
900         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_stdhash) \
901         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_stdhash_stat) \
902         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_stdhash) \
903         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_stdhash_stat) \
904
905 #   define CDSUNIT_TEST_MultiLevelHashMap_hash_RCU_Signal \
906         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_md5) \
907         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_md5_stat) \
908         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_md5) \
909         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_md5_stat) \
910         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_sha256) \
911         CPPUNIT_TEST(MultiLevelHashMap_rcu_shb_sha256_stat) \
912         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_sha256) \
913         CPPUNIT_TEST(MultiLevelHashMap_rcu_sht_sha256_stat) \
914
915 #else
916 #   define CDSUNIT_TEST_MultiLevelHashMap_hash_RCU_Signal
917 #   define CDSUNIT_TEST_MultiLevelHashMap_stdhash_RCU_Signal
918 #endif
919
920 #define CDSUNIT_TEST_MultiLevelHashMap_stdhash  \
921     CPPUNIT_TEST(MultiLevelHashMap_hp_stdhash) \
922     CPPUNIT_TEST(MultiLevelHashMap_hp_stdhash_stat) \
923     CPPUNIT_TEST(MultiLevelHashMap_dhp_stdhash) \
924     CPPUNIT_TEST(MultiLevelHashMap_dhp_stdhash_stat) \
925     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_stdhash) \
926     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_stdhash_stat) \
927     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_stdhash) \
928     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_stdhash_stat) \
929     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_stdhash) \
930     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_stdhash_stat) \
931     CDSUNIT_TEST_MultiLevelHashMap_stdhash_RCU_Signal
932
933 #define CDSUNIT_TEST_MultiLevelHashMap_hash  \
934     CPPUNIT_TEST(MultiLevelHashMap_hp_md5) \
935     CPPUNIT_TEST(MultiLevelHashMap_hp_md5_stat) \
936     CPPUNIT_TEST(MultiLevelHashMap_dhp_md5) \
937     CPPUNIT_TEST(MultiLevelHashMap_dhp_md5_stat) \
938     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_md5) \
939     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_md5_stat) \
940     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_md5) \
941     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_md5_stat) \
942     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_md5) \
943     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_md5_stat) \
944     CPPUNIT_TEST(MultiLevelHashMap_hp_sha256) \
945     CPPUNIT_TEST(MultiLevelHashMap_hp_sha256_stat) \
946     CPPUNIT_TEST(MultiLevelHashMap_dhp_sha256) \
947     CPPUNIT_TEST(MultiLevelHashMap_dhp_sha256_stat) \
948     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_sha256) \
949     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpi_sha256_stat) \
950     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_sha256) \
951     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpb_sha256_stat) \
952     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_sha256) \
953     CPPUNIT_TEST(MultiLevelHashMap_rcu_gpt_sha256_stat) \
954     CDSUNIT_TEST_MultiLevelHashMap_hash_RCU_Signal \
955     CDSUNIT_TEST_MultiLevelHashMap64 \
956
957 #define CDSUNIT_TEST_MultiLevelHashMap  \
958     CDSUNIT_TEST_MultiLevelHashMap_stdhash \
959     CDSUNIT_TEST_MultiLevelHashMap_hash \