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