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