f53b7a9e8a20e7df5218d63c69643b33b47c1f81
[libcds.git] / tests / unit / map2 / map_defs.h
1 /*
2     This file is a part of libcds - Concurrent Data Structures library
3
4     (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
5
6     Source code repo: http://github.com/khizmax/libcds/
7     Download: http://sourceforge.net/projects/libcds/files/
8     
9     Redistribution and use in source and binary forms, with or without
10     modification, are permitted provided that the following conditions are met:
11
12     * Redistributions of source code must retain the above copyright notice, this
13       list of conditions and the following disclaimer.
14
15     * Redistributions in binary form must reproduce the above copyright notice,
16       this list of conditions and the following disclaimer in the documentation
17       and/or other materials provided with the distribution.
18
19     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23     FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24     DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27     OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.     
29 */
30
31 #define CDSUNIT_DECLARE_StdMap \
32     TEST_CASE(tag_StdMap, StdMap_Spin) \
33     TEST_CASE(tag_StdMap, StdHashMap_Spin) \
34     TEST_CASE(tag_StdMap, StdMap_Mutex) \
35     TEST_CASE(tag_StdMap, StdHashMap_Mutex)
36
37 #define CDSUNIT_TEST_StdMap \
38     CPPUNIT_TEST(StdMap_Spin) \
39     CPPUNIT_TEST(StdHashMap_Spin) \
40     CPPUNIT_TEST(StdMap_Mutex) \
41     CPPUNIT_TEST(StdHashMap_Mutex) \
42
43 #define CDSUNIT_DECLARE_StdMap_NoLock \
44     TEST_CASE(tag_StdMap, StdMap_NoLock) \
45     TEST_CASE(tag_StdMap, StdHashMap_NoLock) \
46
47 #define CDSUNIT_TEST_StdMap_NoLock \
48     CPPUNIT_TEST(StdMap_NoLock) \
49     CPPUNIT_TEST(StdHashMap_NoLock) \
50
51
52 // **************************************************************************************
53 // MichaelMap
54
55 #undef CDSUNIT_DECLARE_MichaelMap_RCU_signal
56 #undef CDSUNIT_TEST_MichaelMap_RCU_signal
57 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
58 #   define CDSUNIT_DECLARE_MichaelMap_RCU_signal \
59     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_SHB_cmp_stdAlloc) \
60     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_SHB_less_michaelAlloc) \
61     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_SHT_cmp_stdAlloc) \
62     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_SHT_less_michaelAlloc) \
63     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_SHB_cmp_stdAlloc) \
64     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_SHB_less_michaelAlloc) \
65     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc) \
66     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_SHT_less_michaelAlloc)
67
68 #   define CDSUNIT_TEST_MichaelMap_RCU_signal \
69     CPPUNIT_TEST(MichaelMap_RCU_SHB_cmp_stdAlloc) \
70     CPPUNIT_TEST(MichaelMap_RCU_SHB_less_michaelAlloc) \
71     CPPUNIT_TEST(MichaelMap_RCU_SHT_cmp_stdAlloc) \
72     CPPUNIT_TEST(MichaelMap_RCU_SHT_less_michaelAlloc) \
73     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHB_cmp_stdAlloc) \
74     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHB_less_michaelAlloc) \
75     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc) \
76     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHT_less_michaelAlloc)
77
78 #else
79 #   define CDSUNIT_DECLARE_MichaelMap_RCU_signal
80 #   define CDSUNIT_TEST_MichaelMap_RCU_signal
81 #endif
82
83 #undef CDSUNIT_DECLARE_MichaelMap
84 #define CDSUNIT_DECLARE_MichaelMap  \
85     TEST_CASE(tag_MichaelHashMap, MichaelMap_HP_cmp_stdAlloc) \
86     TEST_CASE(tag_MichaelHashMap, MichaelMap_HP_less_michaelAlloc) \
87     TEST_CASE(tag_MichaelHashMap, MichaelMap_DHP_cmp_stdAlloc) \
88     TEST_CASE(tag_MichaelHashMap, MichaelMap_DHP_less_michaelAlloc) \
89     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPI_cmp_stdAlloc) \
90     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPI_less_michaelAlloc) \
91     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPB_cmp_stdAlloc) \
92     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPB_less_michaelAlloc) \
93     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPT_cmp_stdAlloc) \
94     TEST_CASE(tag_MichaelHashMap, MichaelMap_RCU_GPT_less_michaelAlloc) \
95     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_HP_cmp_stdAlloc) \
96     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_HP_less_michaelAlloc) \
97     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_DHP_cmp_stdAlloc) \
98     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_DHP_less_michaelAlloc) \
99     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPI_cmp_stdAlloc) \
100     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPI_less_michaelAlloc) \
101     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPB_cmp_stdAlloc) \
102     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPB_less_michaelAlloc) \
103     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPT_cmp_stdAlloc) \
104     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_RCU_GPT_less_michaelAlloc)\
105     CDSUNIT_DECLARE_MichaelMap_RCU_signal
106
107 #undef  CDSUNIT_TEST_MichaelMap
108 #define CDSUNIT_TEST_MichaelMap  \
109     CPPUNIT_TEST(MichaelMap_HP_cmp_stdAlloc) \
110     CPPUNIT_TEST(MichaelMap_HP_less_michaelAlloc) \
111     CPPUNIT_TEST(MichaelMap_DHP_cmp_stdAlloc) \
112     CPPUNIT_TEST(MichaelMap_DHP_less_michaelAlloc) \
113     CPPUNIT_TEST(MichaelMap_RCU_GPI_cmp_stdAlloc) \
114     CPPUNIT_TEST(MichaelMap_RCU_GPI_less_michaelAlloc) \
115     CPPUNIT_TEST(MichaelMap_RCU_GPB_cmp_stdAlloc) \
116     CPPUNIT_TEST(MichaelMap_RCU_GPB_less_michaelAlloc) \
117     CPPUNIT_TEST(MichaelMap_RCU_GPT_cmp_stdAlloc) \
118     CPPUNIT_TEST(MichaelMap_RCU_GPT_less_michaelAlloc) \
119     CPPUNIT_TEST(MichaelMap_Lazy_HP_cmp_stdAlloc) \
120     CPPUNIT_TEST(MichaelMap_Lazy_HP_less_michaelAlloc) \
121     CPPUNIT_TEST(MichaelMap_Lazy_DHP_cmp_stdAlloc) \
122     CPPUNIT_TEST(MichaelMap_Lazy_DHP_less_michaelAlloc) \
123     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPI_cmp_stdAlloc) \
124     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPI_less_michaelAlloc) \
125     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPB_cmp_stdAlloc) \
126     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPB_less_michaelAlloc) \
127     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPT_cmp_stdAlloc) \
128     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPT_less_michaelAlloc)\
129     CDSUNIT_TEST_MichaelMap_RCU_signal
130
131 #undef  CDSUNIT_DECLARE_MichaelMap_nogc
132 #define CDSUNIT_DECLARE_MichaelMap_nogc  \
133     TEST_CASE(tag_MichaelHashMap, MichaelMap_NOGC_cmp_stdAlloc) \
134     TEST_CASE(tag_MichaelHashMap, MichaelMap_NOGC_less_michaelAlloc) \
135     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_NOGC_cmp_stdAlloc) \
136     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_NOGC_unord_stdAlloc) \
137     TEST_CASE(tag_MichaelHashMap, MichaelMap_Lazy_NOGC_less_michaelAlloc)
138
139 #undef  CDSUNIT_TEST_MichaelMap_nogc
140 #define CDSUNIT_TEST_MichaelMap_nogc  \
141     CPPUNIT_TEST(MichaelMap_NOGC_cmp_stdAlloc) \
142     CPPUNIT_TEST(MichaelMap_NOGC_less_michaelAlloc) \
143     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_cmp_stdAlloc) \
144     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_unord_stdAlloc) \
145     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_less_michaelAlloc) \
146
147
148 // **************************************************************************************
149 // SplitListMap
150
151 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
152 #   define CDSUNIT_DECLARE_SplitList_RCU_signal  \
153     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_dyn_cmp)\
154     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_dyn_cmp_stat)\
155     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_st_cmp)\
156     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_dyn_less)\
157     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_st_less)\
158     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHB_st_less_stat)\
159     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_dyn_cmp)\
160     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_dyn_cmp_stat)\
161     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_st_cmp)\
162     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_dyn_less)\
163     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_st_less)\
164     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_SHT_st_less_stat)\
165     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_dyn_cmp)\
166     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_dyn_cmp_stat)\
167     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_st_cmp)\
168     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_dyn_less)\
169     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_st_less)\
170     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHB_st_less_stat)\
171     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_dyn_cmp)\
172     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_dyn_cmp_stat)\
173     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_st_cmp)\
174     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_dyn_less)\
175     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_st_less)\
176     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_SHT_st_less_stat)
177
178 #   define CDSUNIT_TEST_SplitList_RCU_signal \
179     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_cmp)\
180     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_cmp_stat)\
181     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_cmp)\
182     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_less)\
183     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_less)\
184     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_less_stat)\
185     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_cmp)\
186     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_cmp_stat)\
187     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_cmp)\
188     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_less)\
189     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_less)\
190     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_less_stat)\
191     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_cmp)\
192     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_cmp_stat)\
193     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_cmp)\
194     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_less)\
195     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_less)\
196     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_less_stat)\
197     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_cmp)\
198     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_cmp_stat)\
199     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_cmp)\
200     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_less)\
201     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_less)\
202     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_less_stat)
203
204 #else
205 #   define CDSUNIT_DECLARE_SplitList_RCU_signal
206 #   define CDSUNIT_TEST_SplitList_RCU_signal
207 #endif
208
209 #define CDSUNIT_DECLARE_SplitList \
210     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_dyn_cmp)\
211     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_dyn_cmp_stat)\
212     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_st_cmp)\
213     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_dyn_less)\
214     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_st_less)\
215     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_st_less_stat)\
216     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_dyn_cmp)\
217     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_dyn_cmp_stat)\
218     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_st_cmp)\
219     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_dyn_less)\
220     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_st_less)\
221     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_st_less_stat)\
222     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_dyn_cmp)\
223     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_dyn_cmp_stat)\
224     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_st_cmp)\
225     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_dyn_less)\
226     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_st_less)\
227     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_st_less_stat)\
228     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_dyn_cmp)\
229     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_dyn_cmp_stat)\
230     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_st_cmp)\
231     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_dyn_less)\
232     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_st_less)\
233     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_st_less_stat)\
234     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_dyn_cmp)\
235     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_dyn_cmp_stat)\
236     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_st_cmp)\
237     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_dyn_less)\
238     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_st_less)\
239     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_st_less_stat)\
240     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_dyn_cmp)\
241     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_dyn_cmp_stat)\
242     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_st_cmp)\
243     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_dyn_less)\
244     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_st_less)\
245     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_st_less_stat)\
246     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_dyn_cmp)\
247     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_dyn_cmp_stat)\
248     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_st_cmp)\
249     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_dyn_less)\
250     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_st_less)\
251     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_st_less_stat)\
252     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_dyn_cmp)\
253     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_dyn_cmp_stat)\
254     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_st_cmp)\
255     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_dyn_less)\
256     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_st_less)\
257     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_st_less_stat)\
258     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_dyn_cmp)\
259     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_dyn_cmp_stat)\
260     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_st_cmp)\
261     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_dyn_less)\
262     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_st_less)\
263     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_st_less_stat)\
264     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_dyn_cmp)\
265     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_dyn_cmp_stat)\
266     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_st_cmp)\
267     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_dyn_less)\
268     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_st_less)\
269     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_st_less_stat)\
270     CDSUNIT_DECLARE_SplitList_RCU_signal
271
272 #define CDSUNIT_TEST_SplitList  \
273     CPPUNIT_TEST(SplitList_Michael_HP_dyn_cmp)\
274     CPPUNIT_TEST(SplitList_Michael_HP_dyn_cmp_stat)\
275     CPPUNIT_TEST(SplitList_Michael_HP_st_cmp)\
276     CPPUNIT_TEST(SplitList_Michael_HP_dyn_less)\
277     CPPUNIT_TEST(SplitList_Michael_HP_st_less)\
278     CPPUNIT_TEST(SplitList_Michael_HP_st_less_stat)\
279     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_cmp)\
280     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_cmp_stat)\
281     CPPUNIT_TEST(SplitList_Michael_DHP_st_cmp)\
282     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_less)\
283     CPPUNIT_TEST(SplitList_Michael_DHP_st_less)\
284     CPPUNIT_TEST(SplitList_Michael_DHP_st_less_stat)\
285     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_cmp)\
286     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_cmp_stat)\
287     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_cmp)\
288     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_less)\
289     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_less)\
290     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_less_stat)\
291     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_cmp)\
292     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_cmp_stat)\
293     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_cmp)\
294     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_less)\
295     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_less)\
296     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_less_stat)\
297     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_cmp)\
298     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_cmp_stat)\
299     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_cmp)\
300     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_less)\
301     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_less)\
302     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_less_stat)\
303     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_cmp)\
304     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_cmp_stat)\
305     CPPUNIT_TEST(SplitList_Lazy_HP_st_cmp)\
306     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_less)\
307     CPPUNIT_TEST(SplitList_Lazy_HP_st_less)\
308     CPPUNIT_TEST(SplitList_Lazy_HP_st_less_stat)\
309     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_cmp)\
310     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_cmp_stat)\
311     CPPUNIT_TEST(SplitList_Lazy_DHP_st_cmp)\
312     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_less)\
313     CPPUNIT_TEST(SplitList_Lazy_DHP_st_less)\
314     CPPUNIT_TEST(SplitList_Lazy_DHP_st_less_stat)\
315     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp)\
316     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp_stat)\
317     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_cmp)\
318     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_less)\
319     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_less)\
320     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_less_stat)\
321     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp)\
322     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp_stat)\
323     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_cmp)\
324     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_less)\
325     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_less)\
326     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_less_stat)\
327     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp)\
328     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp_stat)\
329     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_cmp)\
330     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_less)\
331     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_less)\
332     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_less_stat)\
333     CDSUNIT_TEST_SplitList_RCU_signal
334
335 #define CDSUNIT_DECLARE_SplitList_nogc  \
336     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_dyn_cmp)\
337     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_st_cmp)\
338     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_dyn_less)\
339     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_st_less)\
340     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_dyn_cmp)\
341     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_st_cmp)\
342     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_dyn_less)\
343     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_st_less)
344
345 #define CDSUNIT_TEST_SplitList_nogc  \
346     CPPUNIT_TEST(SplitList_Michael_NOGC_dyn_cmp)\
347     CPPUNIT_TEST(SplitList_Michael_NOGC_st_cmp)\
348     CPPUNIT_TEST(SplitList_Michael_NOGC_dyn_less)\
349     CPPUNIT_TEST(SplitList_Michael_NOGC_st_less)\
350     CPPUNIT_TEST(SplitList_Lazy_NOGC_dyn_cmp)\
351     CPPUNIT_TEST(SplitList_Lazy_NOGC_st_cmp)\
352     CPPUNIT_TEST(SplitList_Lazy_NOGC_dyn_less)\
353     CPPUNIT_TEST(SplitList_Lazy_NOGC_st_less)
354
355
356 // **************************************************************************************
357 // SkipListMap
358
359 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
360 #   define CDSUNIT_DECLARE_SkipListMap_RCU_signal \
361     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_less_pascal)\
362     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_cmp_pascal_stat)\
363     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_less_xorshift)\
364     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_cmp_xorshift_stat)\
365     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_less_pascal)\
366     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_cmp_pascal_stat)\
367     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_less_xorshift)\
368     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_cmp_xorshift_stat)
369
370 #   define CDSUNIT_TEST_SkipListMap_RCU_signal \
371     CPPUNIT_TEST(SkipListMap_rcu_shb_less_pascal)\
372     CPPUNIT_TEST(SkipListMap_rcu_shb_cmp_pascal_stat)\
373     CPPUNIT_TEST(SkipListMap_rcu_shb_less_xorshift)\
374     CPPUNIT_TEST(SkipListMap_rcu_shb_cmp_xorshift_stat)\
375     CPPUNIT_TEST(SkipListMap_rcu_sht_less_pascal)\
376     CPPUNIT_TEST(SkipListMap_rcu_sht_cmp_pascal_stat)\
377     CPPUNIT_TEST(SkipListMap_rcu_sht_less_xorshift)\
378     CPPUNIT_TEST(SkipListMap_rcu_sht_cmp_xorshift_stat)
379
380 #else
381 #   define CDSUNIT_DECLARE_SkipListMap_RCU_signal
382 #   define CDSUNIT_TEST_SkipListMap_RCU_signal
383 #endif
384
385 #define CDSUNIT_DECLARE_SkipListMap \
386     TEST_CASE(tag_SkipListMap, SkipListMap_hp_less_pascal)\
387     TEST_CASE(tag_SkipListMap, SkipListMap_hp_cmp_pascal_stat)\
388     TEST_CASE(tag_SkipListMap, SkipListMap_hp_less_xorshift)\
389     TEST_CASE(tag_SkipListMap, SkipListMap_hp_cmp_xorshift_stat)\
390     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_less_pascal)\
391     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_cmp_pascal_stat)\
392     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_less_xorshift)\
393     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_cmp_xorshift_stat)\
394     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_less_pascal)\
395     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_cmp_pascal_stat)\
396     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_less_xorshift)\
397     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_cmp_xorshift_stat)\
398     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_less_pascal)\
399     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_cmp_pascal_stat)\
400     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_less_xorshift)\
401     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_cmp_xorshift_stat)\
402     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_less_pascal)\
403     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_cmp_pascal_stat)\
404     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_less_xorshift)\
405     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_cmp_xorshift_stat)\
406     CDSUNIT_DECLARE_SkipListMap_RCU_signal
407
408 #define CDSUNIT_TEST_SkipListMap \
409     CPPUNIT_TEST(SkipListMap_hp_less_pascal)\
410     CPPUNIT_TEST(SkipListMap_hp_cmp_pascal_stat)\
411     CPPUNIT_TEST(SkipListMap_hp_less_xorshift)\
412     CPPUNIT_TEST(SkipListMap_hp_cmp_xorshift_stat)\
413     CPPUNIT_TEST(SkipListMap_dhp_less_pascal)\
414     CPPUNIT_TEST(SkipListMap_dhp_cmp_pascal_stat)\
415     CPPUNIT_TEST(SkipListMap_dhp_less_xorshift)\
416     CPPUNIT_TEST(SkipListMap_dhp_cmp_xorshift_stat)\
417     CPPUNIT_TEST(SkipListMap_rcu_gpi_less_pascal)\
418     CPPUNIT_TEST(SkipListMap_rcu_gpi_cmp_pascal_stat)\
419     CPPUNIT_TEST(SkipListMap_rcu_gpi_less_xorshift)\
420     CPPUNIT_TEST(SkipListMap_rcu_gpi_cmp_xorshift_stat)\
421     CPPUNIT_TEST(SkipListMap_rcu_gpb_less_pascal)\
422     CPPUNIT_TEST(SkipListMap_rcu_gpb_cmp_pascal_stat)\
423     CPPUNIT_TEST(SkipListMap_rcu_gpb_less_xorshift)\
424     CPPUNIT_TEST(SkipListMap_rcu_gpb_cmp_xorshift_stat)\
425     CPPUNIT_TEST(SkipListMap_rcu_gpt_less_pascal)\
426     CPPUNIT_TEST(SkipListMap_rcu_gpt_cmp_pascal_stat)\
427     CPPUNIT_TEST(SkipListMap_rcu_gpt_less_xorshift)\
428     CPPUNIT_TEST(SkipListMap_rcu_gpt_cmp_xorshift_stat)\
429     CDSUNIT_TEST_SkipListMap_RCU_signal
430
431 #define CDSUNIT_DECLARE_SkipListMap_nogc \
432     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_less_pascal)\
433     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_cmp_pascal_stat)\
434     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_less_xorshift)\
435     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_cmp_xorshift_stat)
436
437 #define CDSUNIT_TEST_SkipListMap_nogc \
438     CPPUNIT_TEST(SkipListMap_nogc_less_pascal)\
439     CPPUNIT_TEST(SkipListMap_nogc_cmp_pascal_stat)\
440     CPPUNIT_TEST(SkipListMap_nogc_less_xorshift)\
441     CPPUNIT_TEST(SkipListMap_nogc_cmp_xorshift_stat)
442
443
444 // **************************************************************************************
445 // EllenBinTreeMap
446
447 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
448 #   define CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal \
449     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_shb)\
450     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_shb_stat)\
451     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_sht)\
452     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_sht_stat)
453
454 #   define CDSUNIT_TEST_EllenBinTreeMap_RCU_signal \
455     CPPUNIT_TEST(EllenBinTreeMap_rcu_shb)\
456     CPPUNIT_TEST(EllenBinTreeMap_rcu_shb_stat)\
457     CPPUNIT_TEST(EllenBinTreeMap_rcu_sht)\
458     CPPUNIT_TEST(EllenBinTreeMap_rcu_sht_stat)
459 #else
460 #   define CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal
461 #   define CDSUNIT_TEST_EllenBinTreeMap_RCU_signal
462 #endif
463
464 #define CDSUNIT_DECLARE_EllenBinTreeMap \
465     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_hp)\
466     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_hp_yield)\
467     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_hp_stat)\
468     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_dhp)\
469     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_dhp_yield)\
470     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_dhp_stat)\
471     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpi)\
472     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpi_stat)\
473     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpb)\
474     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpb_yield)\
475     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpb_stat)\
476     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpt)\
477     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpt_stat)\
478     CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal
479
480 #define CDSUNIT_TEST_EllenBinTreeMap \
481     CPPUNIT_TEST(EllenBinTreeMap_hp)\
482     CPPUNIT_TEST(EllenBinTreeMap_hp_yield)\
483     CPPUNIT_TEST(EllenBinTreeMap_hp_stat)\
484     CPPUNIT_TEST(EllenBinTreeMap_dhp)\
485     CPPUNIT_TEST(EllenBinTreeMap_dhp_yield)\
486     CPPUNIT_TEST(EllenBinTreeMap_dhp_stat)\
487     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpi)\
488     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpi_stat)\
489     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb)\
490     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb_yield)\
491     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb_stat)\
492     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpt)\
493     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpt_stat)\
494     CDSUNIT_TEST_EllenBinTreeMap_RCU_signal
495
496
497 // **************************************************************************************
498 // BronsonAVLTreeMap
499
500 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
501 #   define CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal \
502     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less) \
503     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less) \
504     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_cmp_stat) \
505     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_cmp_stat) \
506     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
507     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
508     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
509     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
510     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
511     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
512     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
513     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
514     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
515     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
516     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
517     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
518
519 #   define CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal \
520     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less) \
521     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less) \
522     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_cmp_stat) \
523     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_cmp_stat) \
524     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
525     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
526     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
527     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
528     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
529     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
530     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
531     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
532     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
533     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
534     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
535     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
536
537 #else
538 #   define CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal
539 #   define CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal
540 #endif
541
542 #define CDSUNIT_DECLARE_BronsonAVLTreeMap \
543     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less)\
544     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less)\
545     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less)\
546     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_cmp_stat)\
547     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_cmp_stat)\
548     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_cmp_stat)\
549     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
550     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
551     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
552     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
553     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
554     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
555     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
556     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
557     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
558     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
559     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
560     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
561     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
562     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
563     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
564     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
565     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
566     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
567     CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal
568
569 #define CDSUNIT_TEST_BronsonAVLTreeMap \
570     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less)\
571     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_cmp_stat)\
572     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less)\
573     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_cmp_stat)\
574     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less)\
575     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_cmp_stat)\
576     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
577     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
578     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
579     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
580     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
581     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
582     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
583     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
584     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
585     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
586     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
587     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
588     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
589     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
590     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
591     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
592     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
593     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
594     CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal
595
596
597 // **************************************************************************************
598 // StripedMap
599
600 #define CDSUNIT_DECLARE_StripedMap_common \
601     TEST_CASE(tag_StripedMap, StripedMap_list) \
602     TEST_CASE(tag_StripedMap, StripedMap_map) \
603     TEST_CASE(tag_StripedMap, StripedMap_hashmap) \
604     TEST_CASE(tag_StripedMap, StripedMap_boost_unordered_map)
605
606 #define CDSUNIT_TEST_StripedMap_common \
607     CPPUNIT_TEST(StripedMap_list) \
608     CPPUNIT_TEST(StripedMap_map) \
609     CPPUNIT_TEST(StripedMap_hashmap) \
610     CPPUNIT_TEST(StripedMap_boost_unordered_map)
611
612 #if BOOST_VERSION >= 104800
613 #   define CDSUNIT_DECLARE_StripedMap_boost_container \
614         TEST_CASE(tag_StripedMap, StripedMap_boost_list) \
615         TEST_CASE(tag_StripedMap, StripedMap_slist) \
616         TEST_CASE(tag_StripedMap, StripedMap_boost_map)
617
618 #   define CDSUNIT_TEST_StripedMap_boost_container \
619         CPPUNIT_TEST(StripedMap_boost_list) \
620         CPPUNIT_TEST(StripedMap_slist) \
621         CPPUNIT_TEST(StripedMap_boost_map)
622 #else
623 #   define CDSUNIT_DECLARE_StripedMap_boost_container
624 #   define CDSUNIT_TEST_StripedMap_boost_container
625 #endif
626
627 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
628 #   define CDSUNIT_DECLARE_StripedMap_boost_flat_container \
629         TEST_CASE(tag_StripedMap, StripedMap_boost_flat_map)
630
631 #   define CDSUNIT_TEST_StripedMap_boost_flat_container \
632         CPPUNIT_TEST(StripedMap_boost_flat_map)
633 #else
634 #   define CDSUNIT_DECLARE_StripedMap_boost_flat_container
635 #   define CDSUNIT_TEST_StripedMap_boost_flat_container
636 #endif
637
638 #define CDSUNIT_DECLARE_StripedMap \
639     CDSUNIT_DECLARE_StripedMap_common \
640     CDSUNIT_DECLARE_StripedMap_boost_container \
641     CDSUNIT_DECLARE_StripedMap_boost_flat_container
642
643 #define CDSUNIT_TEST_StripedMap \
644     CDSUNIT_TEST_StripedMap_common \
645     CDSUNIT_TEST_StripedMap_boost_container \
646     CDSUNIT_TEST_StripedMap_boost_flat_container
647
648
649 // **************************************************************************************
650 // RefinableMap
651
652 #define CDSUNIT_DECLARE_RefinableMap_common \
653     TEST_CASE(tag_StripedMap, RefinableMap_list) \
654     TEST_CASE(tag_StripedMap, RefinableMap_map) \
655     TEST_CASE(tag_StripedMap, RefinableMap_hashmap) \
656     TEST_CASE(tag_StripedMap, RefinableMap_boost_unordered_map)
657
658 #define CDSUNIT_TEST_RefinableMap_common \
659     CPPUNIT_TEST(RefinableMap_list) \
660     CPPUNIT_TEST(RefinableMap_map) \
661     CPPUNIT_TEST(RefinableMap_hashmap) \
662     CPPUNIT_TEST(RefinableMap_boost_unordered_map)
663
664 #if BOOST_VERSION >= 104800
665 #   define CDSUNIT_DECLARE_RefinableMap_boost_container \
666         TEST_CASE(tag_StripedMap, RefinableMap_boost_list) \
667         TEST_CASE(tag_StripedMap, RefinableMap_slist) \
668         TEST_CASE(tag_StripedMap, RefinableMap_boost_map)
669
670 #   define CDSUNIT_TEST_RefinableMap_boost_container \
671         CPPUNIT_TEST(RefinableMap_boost_list) \
672         CPPUNIT_TEST(RefinableMap_slist) \
673         CPPUNIT_TEST(RefinableMap_boost_map)
674 #else
675 #   define CDSUNIT_DECLARE_RefinableMap_boost_container
676 #   define CDSUNIT_TEST_RefinableMap_boost_container
677 #endif
678
679 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
680 #   define CDSUNIT_DECLARE_RefinableMap_boost_flat_container \
681         TEST_CASE(tag_StripedMap, RefinableMap_boost_flat_map)
682
683 #   define CDSUNIT_TEST_RefinableMap_boost_flat_container \
684         CPPUNIT_TEST(RefinableMap_boost_flat_map)
685 #else
686 #   define CDSUNIT_DECLARE_RefinableMap_boost_flat_container
687 #   define CDSUNIT_TEST_RefinableMap_boost_flat_container
688 #endif
689
690 #define CDSUNIT_DECLARE_RefinableMap \
691     CDSUNIT_DECLARE_RefinableMap_common \
692     CDSUNIT_DECLARE_RefinableMap_boost_container \
693     CDSUNIT_DECLARE_RefinableMap_boost_flat_container
694
695 #define CDSUNIT_TEST_RefinableMap \
696     CDSUNIT_TEST_RefinableMap_common \
697     CDSUNIT_TEST_RefinableMap_boost_container \
698     CDSUNIT_TEST_RefinableMap_boost_flat_container
699
700
701 // **************************************************************************************
702 // CuckooMap
703
704 #define CDSUNIT_DECLARE_CuckooMap \
705     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_unord)\
706     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_ord)\
707     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_unord)\
708     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_ord)\
709     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_unord_stat)\
710     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_ord_stat)\
711     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_unord_stat)\
712     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_ord_stat)\
713     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_unord)\
714     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_ord)\
715     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_unord)\
716     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_ord) \
717     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_unord_stat)\
718     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_ord_stat)\
719     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_unord_stat)\
720     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_ord_stat) \
721     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_unord_storehash)\
722     TEST_CASE(tag_CuckooMap, CuckooStripedMap_list_ord_storehash)\
723     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_unord_storehash)\
724     TEST_CASE(tag_CuckooMap, CuckooStripedMap_vector_ord_storehash)\
725     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_unord_storehash)\
726     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_list_ord_storehash)\
727     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_unord_storehash)\
728     TEST_CASE(tag_CuckooMap, CuckooRefinableMap_vector_ord_storehash)
729
730 #define CDSUNIT_TEST_CuckooMap \
731     CPPUNIT_TEST(CuckooStripedMap_list_unord)\
732     CPPUNIT_TEST(CuckooStripedMap_list_unord_stat)\
733     CPPUNIT_TEST(CuckooStripedMap_list_unord_storehash)\
734     CPPUNIT_TEST(CuckooStripedMap_list_ord)\
735     CPPUNIT_TEST(CuckooStripedMap_list_ord_stat)\
736     CPPUNIT_TEST(CuckooStripedMap_list_ord_storehash)\
737     CPPUNIT_TEST(CuckooStripedMap_vector_unord)\
738     CPPUNIT_TEST(CuckooStripedMap_vector_unord_stat)\
739     CPPUNIT_TEST(CuckooStripedMap_vector_unord_storehash)\
740     CPPUNIT_TEST(CuckooStripedMap_vector_ord)\
741     CPPUNIT_TEST(CuckooStripedMap_vector_ord_stat)\
742     CPPUNIT_TEST(CuckooStripedMap_vector_ord_storehash)\
743     CPPUNIT_TEST(CuckooRefinableMap_list_unord)\
744     CPPUNIT_TEST(CuckooRefinableMap_list_unord_stat)\
745     CPPUNIT_TEST(CuckooRefinableMap_list_unord_storehash)\
746     CPPUNIT_TEST(CuckooRefinableMap_list_ord)\
747     CPPUNIT_TEST(CuckooRefinableMap_list_ord_stat)\
748     CPPUNIT_TEST(CuckooRefinableMap_list_ord_storehash)\
749     CPPUNIT_TEST(CuckooRefinableMap_vector_unord)\
750     CPPUNIT_TEST(CuckooRefinableMap_vector_unord_stat)\
751     CPPUNIT_TEST(CuckooRefinableMap_vector_unord_storehash)\
752     CPPUNIT_TEST(CuckooRefinableMap_vector_ord)\
753     CPPUNIT_TEST(CuckooRefinableMap_vector_ord_stat)\
754     CPPUNIT_TEST(CuckooRefinableMap_vector_ord_storehash)
755
756
757 // **************************************************************************************
758 // FeldmanHashMap
759
760
761 // fixed-sized key - no hash function is necessary
762
763 #undef CDSUNIT_DECLARE_FeldmanHashMap_fixed
764 #undef CDSUNIT_DECLARE_FeldmanHashMap_fixed_RCU_Signal
765 #undef CDSUNIT_TEST_FeldmanHashMap_fixed
766 #undef CDSUNIT_TEST_FeldmanHashMap_fixed_RCU_Signal
767
768 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
769 #   define CDSUNIT_DECLARE_FeldmanHashMap_fixed_RCU_Signal \
770         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_shb_fixed) \
771         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_shb_fixed_stat) \
772         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_sht_fixed) \
773         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_sht_fixed_stat) \
774
775 #   define CDSUNIT_TEST_FeldmanHashMap_fixed_RCU_Signal \
776         CPPUNIT_TEST(FeldmanHashMap_rcu_shb_fixed) \
777         CPPUNIT_TEST(FeldmanHashMap_rcu_shb_fixed_stat) \
778         CPPUNIT_TEST(FeldmanHashMap_rcu_sht_fixed) \
779         CPPUNIT_TEST(FeldmanHashMap_rcu_sht_fixed_stat) \
780
781 #else
782 #   define CDSUNIT_DECLARE_FeldmanHashMap_fixed_RCU_Signal
783 #   define CDSUNIT_TEST_FeldmanHashMap_fixed_RCU_Signal
784 #endif
785
786
787 #define CDSUNIT_DECLARE_FeldmanHashMap_fixed \
788     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_hp_fixed) \
789     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_hp_fixed_stat) \
790     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_dhp_fixed) \
791     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_dhp_fixed_stat) \
792     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpi_fixed) \
793     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpi_fixed_stat) \
794     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpb_fixed) \
795     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpb_fixed_stat) \
796     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpt_fixed) \
797     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpt_fixed_stat) \
798     CDSUNIT_DECLARE_FeldmanHashMap_fixed_RCU_Signal
799
800 #define CDSUNIT_TEST_FeldmanHashMap_fixed \
801     CPPUNIT_TEST(FeldmanHashMap_hp_fixed) \
802     CPPUNIT_TEST(FeldmanHashMap_hp_fixed_stat) \
803     CPPUNIT_TEST(FeldmanHashMap_dhp_fixed) \
804     CPPUNIT_TEST(FeldmanHashMap_dhp_fixed_stat) \
805     CPPUNIT_TEST(FeldmanHashMap_rcu_gpi_fixed) \
806     CPPUNIT_TEST(FeldmanHashMap_rcu_gpi_fixed_stat) \
807     CPPUNIT_TEST(FeldmanHashMap_rcu_gpb_fixed) \
808     CPPUNIT_TEST(FeldmanHashMap_rcu_gpb_fixed_stat) \
809     CPPUNIT_TEST(FeldmanHashMap_rcu_gpt_fixed) \
810     CPPUNIT_TEST(FeldmanHashMap_rcu_gpt_fixed_stat) \
811     CDSUNIT_TEST_FeldmanHashMap_fixed_RCU_Signal
812
813 // std::hash
814
815 #undef CDSUNIT_DECLARE_FeldmanHashMap_stdhash
816 #undef CDSUNIT_DECLARE_FeldmanHashMap_stdhash_RCU_Signal
817 #undef CDSUNIT_TEST_FeldmanHashMap_stdhash
818 #undef CDSUNIT_TEST_FeldmanHashMap_stdhash_RCU_Signal
819
820 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
821 #   define CDSUNIT_DECLARE_FeldmanHashMap_stdhash_RCU_Signal \
822         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_shb_stdhash) \
823         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_shb_stdhash_stat) \
824         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_sht_stdhash) \
825         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_sht_stdhash_stat) \
826
827 #   define CDSUNIT_TEST_FeldmanHashMap_stdhash_RCU_Signal \
828         CPPUNIT_TEST(FeldmanHashMap_rcu_shb_stdhash) \
829         CPPUNIT_TEST(FeldmanHashMap_rcu_shb_stdhash_stat) \
830         CPPUNIT_TEST(FeldmanHashMap_rcu_sht_stdhash) \
831         CPPUNIT_TEST(FeldmanHashMap_rcu_sht_stdhash_stat) \
832
833 #else
834 #   define CDSUNIT_DECLARE_FeldmanHashMap_stdhash_RCU_Signal
835 #   define CDSUNIT_TEST_FeldmanHashMap_stdhash_RCU_Signal
836 #endif
837
838
839 #define CDSUNIT_DECLARE_FeldmanHashMap_stdhash \
840     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_hp_stdhash) \
841     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_hp_stdhash_stat) \
842     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_dhp_stdhash) \
843     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_dhp_stdhash_stat) \
844     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpi_stdhash) \
845     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpi_stdhash_stat) \
846     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpb_stdhash) \
847     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpb_stdhash_stat) \
848     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpt_stdhash) \
849     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpt_stdhash_stat) \
850     CDSUNIT_DECLARE_FeldmanHashMap_stdhash_RCU_Signal
851
852 #define CDSUNIT_TEST_FeldmanHashMap_stdhash \
853     CPPUNIT_TEST(FeldmanHashMap_hp_stdhash) \
854     CPPUNIT_TEST(FeldmanHashMap_hp_stdhash_stat) \
855     CPPUNIT_TEST(FeldmanHashMap_dhp_stdhash) \
856     CPPUNIT_TEST(FeldmanHashMap_dhp_stdhash_stat) \
857     CPPUNIT_TEST(FeldmanHashMap_rcu_gpi_stdhash) \
858     CPPUNIT_TEST(FeldmanHashMap_rcu_gpi_stdhash_stat) \
859     CPPUNIT_TEST(FeldmanHashMap_rcu_gpb_stdhash) \
860     CPPUNIT_TEST(FeldmanHashMap_rcu_gpb_stdhash_stat) \
861     CPPUNIT_TEST(FeldmanHashMap_rcu_gpt_stdhash) \
862     CPPUNIT_TEST(FeldmanHashMap_rcu_gpt_stdhash_stat) \
863     CDSUNIT_TEST_FeldmanHashMap_stdhash_RCU_Signal
864
865 // CityHash - only for 64bit
866
867 #undef CDSUNIT_DECLARE_FeldmanHashMap_city128_RCU_Signal
868 #undef CDSUNIT_TEST_FeldmanHashMap_city128_RCU_Signal
869
870 #if CDS_BUILD_BITS == 64
871
872 #undef CDSUNIT_DECLARE_FeldmanHashMap_city64
873 #undef CDSUNIT_DECLARE_FeldmanHashMap_city64_RCU_Signal
874 #undef CDSUNIT_TEST_FeldmanHashMap_city64
875 #undef CDSUNIT_TEST_FeldmanHashMap_city64_RCU_Signal
876
877 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
878 #   define CDSUNIT_DECLARE_FeldmanHashMap_city64_RCU_Signal \
879         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_shb_city64) \
880         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_shb_city64_stat) \
881         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_sht_city64) \
882         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_sht_city64_stat) \
883
884 #   define CDSUNIT_TEST_FeldmanHashMap_city64_RCU_Signal \
885         CPPUNIT_TEST(FeldmanHashMap_rcu_shb_city64) \
886         CPPUNIT_TEST(FeldmanHashMap_rcu_shb_city64_stat) \
887         CPPUNIT_TEST(FeldmanHashMap_rcu_sht_city64) \
888         CPPUNIT_TEST(FeldmanHashMap_rcu_sht_city64_stat) \
889
890 #else
891 #   define CDSUNIT_DECLARE_FeldmanHashMap_city64_RCU_Signal
892 #   define CDSUNIT_TEST_FeldmanHashMap_city64_RCU_Signal
893 #endif
894
895
896 #define CDSUNIT_DECLARE_FeldmanHashMap_city64 \
897     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_hp_city64) \
898     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_hp_city64_stat) \
899     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_dhp_city64) \
900     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_dhp_city64_stat) \
901     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpi_city64) \
902     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpi_city64_stat) \
903     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpb_city64) \
904     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpb_city64_stat) \
905     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpt_city64) \
906     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpt_city64_stat) \
907     CDSUNIT_DECLARE_FeldmanHashMap_city64_RCU_Signal
908
909 #define CDSUNIT_TEST_FeldmanHashMap_city64 \
910     CPPUNIT_TEST(FeldmanHashMap_hp_city64) \
911     CPPUNIT_TEST(FeldmanHashMap_hp_city64_stat) \
912     CPPUNIT_TEST(FeldmanHashMap_dhp_city64) \
913     CPPUNIT_TEST(FeldmanHashMap_dhp_city64_stat) \
914     CPPUNIT_TEST(FeldmanHashMap_rcu_gpi_city64) \
915     CPPUNIT_TEST(FeldmanHashMap_rcu_gpi_city64_stat) \
916     CPPUNIT_TEST(FeldmanHashMap_rcu_gpb_city64) \
917     CPPUNIT_TEST(FeldmanHashMap_rcu_gpb_city64_stat) \
918     CPPUNIT_TEST(FeldmanHashMap_rcu_gpt_city64) \
919     CPPUNIT_TEST(FeldmanHashMap_rcu_gpt_city64_stat) \
920     CDSUNIT_TEST_FeldmanHashMap_city64_RCU_Signal
921
922 #undef CDSUNIT_DECLARE_FeldmanHashMap_city128
923 #undef CDSUNIT_DECLARE_FeldmanHashMap_city128_RCU_Signal
924 #undef CDSUNIT_TEST_FeldmanHashMap_city128
925 #undef CDSUNIT_TEST_FeldmanHashMap_city128_RCU_Signal
926
927 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
928 #   define CDSUNIT_DECLARE_FeldmanHashMap_city128_RCU_Signal \
929         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_shb_city128) \
930         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_shb_city128_stat) \
931         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_sht_city128) \
932         TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_sht_city128_stat) \
933
934 #   define CDSUNIT_TEST_FeldmanHashMap_city128_RCU_Signal \
935         CPPUNIT_TEST(FeldmanHashMap_rcu_shb_city128) \
936         CPPUNIT_TEST(FeldmanHashMap_rcu_shb_city128_stat) \
937         CPPUNIT_TEST(FeldmanHashMap_rcu_sht_city128) \
938         CPPUNIT_TEST(FeldmanHashMap_rcu_sht_city128_stat) \
939
940 #else
941 #   define CDSUNIT_DECLARE_FeldmanHashMap_city128_RCU_Signal
942 #   define CDSUNIT_TEST_FeldmanHashMap_city128_RCU_Signal
943 #endif
944
945
946 #define CDSUNIT_DECLARE_FeldmanHashMap_city128 \
947     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_hp_city128) \
948     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_hp_city128_stat) \
949     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_dhp_city128) \
950     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_dhp_city128_stat) \
951     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpi_city128) \
952     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpi_city128_stat) \
953     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpb_city128) \
954     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpb_city128_stat) \
955     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpt_city128) \
956     TEST_CASE(tag_FeldmanHashMap, FeldmanHashMap_rcu_gpt_city128_stat) \
957     CDSUNIT_DECLARE_FeldmanHashMap_city128_RCU_Signal
958
959 #define CDSUNIT_TEST_FeldmanHashMap_city128 \
960     CPPUNIT_TEST(FeldmanHashMap_hp_city128) \
961     CPPUNIT_TEST(FeldmanHashMap_hp_city128_stat) \
962     CPPUNIT_TEST(FeldmanHashMap_dhp_city128) \
963     CPPUNIT_TEST(FeldmanHashMap_dhp_city128_stat) \
964     CPPUNIT_TEST(FeldmanHashMap_rcu_gpi_city128) \
965     CPPUNIT_TEST(FeldmanHashMap_rcu_gpi_city128_stat) \
966     CPPUNIT_TEST(FeldmanHashMap_rcu_gpb_city128) \
967     CPPUNIT_TEST(FeldmanHashMap_rcu_gpb_city128_stat) \
968     CPPUNIT_TEST(FeldmanHashMap_rcu_gpt_city128) \
969     CPPUNIT_TEST(FeldmanHashMap_rcu_gpt_city128_stat) \
970     CDSUNIT_TEST_FeldmanHashMap_city128_RCU_Signal
971
972 #define CDSUNIT_DECLARE_FeldmanHashMap_city \
973     CDSUNIT_DECLARE_FeldmanHashMap_city64 \
974     CDSUNIT_DECLARE_FeldmanHashMap_city128
975
976 #define CDSUNIT_TEST_FeldmanHashMap_city \
977     CDSUNIT_TEST_FeldmanHashMap_city64 \
978     CDSUNIT_TEST_FeldmanHashMap_city128
979
980 #else // 32bit
981 #   define CDSUNIT_DECLARE_FeldmanHashMap_city
982 #   define CDSUNIT_TEST_FeldmanHashMap_city
983 #endif // #if CDS_BUILD_BITS == 64
984
985 #undef CDSUNIT_DECLARE_FeldmanHashMap
986 #undef CDSUNIT_TEST_FeldmanHashMap
987
988 #define CDSUNIT_DECLARE_FeldmanHashMap \
989     CDSUNIT_DECLARE_FeldmanHashMap_fixed \
990     CDSUNIT_DECLARE_FeldmanHashMap_stdhash \
991     CDSUNIT_DECLARE_FeldmanHashMap_city \
992
993 #define CDSUNIT_TEST_FeldmanHashMap \
994     CDSUNIT_TEST_FeldmanHashMap_fixed \
995     CDSUNIT_TEST_FeldmanHashMap_stdhash \
996     CDSUNIT_TEST_FeldmanHashMap_city
997