BronsonAVLTreeMap:
[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_TEST_SplitList_RCU_signal
170 #endif
171
172 #define CDSUNIT_DECLARE_SplitList \
173     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_dyn_cmp)\
174     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_dyn_cmp_stat)\
175     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_st_cmp)\
176     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_dyn_less)\
177     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_st_less)\
178     TEST_CASE(tag_SplitListMap, SplitList_Michael_HP_st_less_stat)\
179     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_dyn_cmp)\
180     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_dyn_cmp_stat)\
181     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_st_cmp)\
182     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_dyn_less)\
183     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_st_less)\
184     TEST_CASE(tag_SplitListMap, SplitList_Michael_DHP_st_less_stat)\
185     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_dyn_cmp)\
186     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_dyn_cmp_stat)\
187     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_st_cmp)\
188     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_dyn_less)\
189     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_st_less)\
190     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPI_st_less_stat)\
191     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_dyn_cmp)\
192     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_dyn_cmp_stat)\
193     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_st_cmp)\
194     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_dyn_less)\
195     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_st_less)\
196     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPB_st_less_stat)\
197     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_dyn_cmp)\
198     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_dyn_cmp_stat)\
199     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_st_cmp)\
200     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_dyn_less)\
201     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_st_less)\
202     TEST_CASE(tag_SplitListMap, SplitList_Michael_RCU_GPT_st_less_stat)\
203     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_dyn_cmp)\
204     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_dyn_cmp_stat)\
205     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_st_cmp)\
206     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_dyn_less)\
207     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_st_less)\
208     TEST_CASE(tag_SplitListMap, SplitList_Lazy_HP_st_less_stat)\
209     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_dyn_cmp)\
210     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_dyn_cmp_stat)\
211     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_st_cmp)\
212     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_dyn_less)\
213     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_st_less)\
214     TEST_CASE(tag_SplitListMap, SplitList_Lazy_DHP_st_less_stat)\
215     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_dyn_cmp)\
216     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_dyn_cmp_stat)\
217     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_st_cmp)\
218     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_dyn_less)\
219     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_st_less)\
220     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPI_st_less_stat)\
221     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_dyn_cmp)\
222     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_dyn_cmp_stat)\
223     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_st_cmp)\
224     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_dyn_less)\
225     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_st_less)\
226     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPB_st_less_stat)\
227     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_dyn_cmp)\
228     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_dyn_cmp_stat)\
229     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_st_cmp)\
230     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_dyn_less)\
231     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_st_less)\
232     TEST_CASE(tag_SplitListMap, SplitList_Lazy_RCU_GPT_st_less_stat)\
233     CDSUNIT_DECLARE_SplitList_RCU_signal
234
235 #define CDSUNIT_TEST_SplitList  \
236     CPPUNIT_TEST(SplitList_Michael_HP_dyn_cmp)\
237     CPPUNIT_TEST(SplitList_Michael_HP_dyn_cmp_stat)\
238     CPPUNIT_TEST(SplitList_Michael_HP_st_cmp)\
239     CPPUNIT_TEST(SplitList_Michael_HP_dyn_less)\
240     CPPUNIT_TEST(SplitList_Michael_HP_st_less)\
241     CPPUNIT_TEST(SplitList_Michael_HP_st_less_stat)\
242     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_cmp)\
243     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_cmp_stat)\
244     CPPUNIT_TEST(SplitList_Michael_DHP_st_cmp)\
245     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_less)\
246     CPPUNIT_TEST(SplitList_Michael_DHP_st_less)\
247     CPPUNIT_TEST(SplitList_Michael_DHP_st_less_stat)\
248     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_cmp)\
249     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_cmp_stat)\
250     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_cmp)\
251     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_less)\
252     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_less)\
253     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_less_stat)\
254     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_cmp)\
255     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_cmp_stat)\
256     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_cmp)\
257     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_less)\
258     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_less)\
259     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_less_stat)\
260     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_cmp)\
261     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_cmp_stat)\
262     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_cmp)\
263     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_less)\
264     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_less)\
265     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_less_stat)\
266     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_cmp)\
267     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_cmp_stat)\
268     CPPUNIT_TEST(SplitList_Lazy_HP_st_cmp)\
269     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_less)\
270     CPPUNIT_TEST(SplitList_Lazy_HP_st_less)\
271     CPPUNIT_TEST(SplitList_Lazy_HP_st_less_stat)\
272     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_cmp)\
273     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_cmp_stat)\
274     CPPUNIT_TEST(SplitList_Lazy_DHP_st_cmp)\
275     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_less)\
276     CPPUNIT_TEST(SplitList_Lazy_DHP_st_less)\
277     CPPUNIT_TEST(SplitList_Lazy_DHP_st_less_stat)\
278     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp)\
279     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp_stat)\
280     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_cmp)\
281     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_less)\
282     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_less)\
283     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_less_stat)\
284     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp)\
285     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp_stat)\
286     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_cmp)\
287     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_less)\
288     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_less)\
289     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_less_stat)\
290     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp)\
291     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp_stat)\
292     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_cmp)\
293     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_less)\
294     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_less)\
295     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_less_stat)\
296     CDSUNIT_TEST_SplitList_RCU_signal
297
298 #define CDSUNIT_DECLARE_SplitList_nogc  \
299     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_dyn_cmp)\
300     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_st_cmp)\
301     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_dyn_less)\
302     TEST_CASE(tag_SplitListMap, SplitList_Michael_NOGC_st_less)\
303     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_dyn_cmp)\
304     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_st_cmp)\
305     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_dyn_less)\
306     TEST_CASE(tag_SplitListMap, SplitList_Lazy_NOGC_st_less)
307
308 #define CDSUNIT_TEST_SplitList_nogc  \
309     CPPUNIT_TEST(SplitList_Michael_NOGC_dyn_cmp)\
310     CPPUNIT_TEST(SplitList_Michael_NOGC_st_cmp)\
311     CPPUNIT_TEST(SplitList_Michael_NOGC_dyn_less)\
312     CPPUNIT_TEST(SplitList_Michael_NOGC_st_less)\
313     CPPUNIT_TEST(SplitList_Lazy_NOGC_dyn_cmp)\
314     CPPUNIT_TEST(SplitList_Lazy_NOGC_st_cmp)\
315     CPPUNIT_TEST(SplitList_Lazy_NOGC_dyn_less)\
316     CPPUNIT_TEST(SplitList_Lazy_NOGC_st_less)
317
318
319 // **************************************************************************************
320 // SkipListMap
321
322 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
323 #   define CDSUNIT_DECLARE_SkipListMap_RCU_signal \
324     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_less_pascal)\
325     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_cmp_pascal_stat)\
326     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_less_xorshift)\
327     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_shb_cmp_xorshift_stat)\
328     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_less_pascal)\
329     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_cmp_pascal_stat)\
330     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_less_xorshift)\
331     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_sht_cmp_xorshift_stat)
332
333 #   define CDSUNIT_TEST_SkipListMap_RCU_signal \
334     CPPUNIT_TEST(SkipListMap_rcu_shb_less_pascal)\
335     CPPUNIT_TEST(SkipListMap_rcu_shb_cmp_pascal_stat)\
336     CPPUNIT_TEST(SkipListMap_rcu_shb_less_xorshift)\
337     CPPUNIT_TEST(SkipListMap_rcu_shb_cmp_xorshift_stat)\
338     CPPUNIT_TEST(SkipListMap_rcu_sht_less_pascal)\
339     CPPUNIT_TEST(SkipListMap_rcu_sht_cmp_pascal_stat)\
340     CPPUNIT_TEST(SkipListMap_rcu_sht_less_xorshift)\
341     CPPUNIT_TEST(SkipListMap_rcu_sht_cmp_xorshift_stat)
342
343 #else
344 #   define CDSUNIT_DECLARE_SkipListMap_RCU_signal
345 #   define CDSUNIT_TEST_SkipListMap_RCU_signal
346 #endif
347
348 #define CDSUNIT_DECLARE_SkipListMap \
349     TEST_CASE(tag_SkipListMap, SkipListMap_hp_less_pascal)\
350     TEST_CASE(tag_SkipListMap, SkipListMap_hp_cmp_pascal_stat)\
351     TEST_CASE(tag_SkipListMap, SkipListMap_hp_less_xorshift)\
352     TEST_CASE(tag_SkipListMap, SkipListMap_hp_cmp_xorshift_stat)\
353     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_less_pascal)\
354     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_cmp_pascal_stat)\
355     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_less_xorshift)\
356     TEST_CASE(tag_SkipListMap, SkipListMap_dhp_cmp_xorshift_stat)\
357     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_less_pascal)\
358     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_cmp_pascal_stat)\
359     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_less_xorshift)\
360     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpi_cmp_xorshift_stat)\
361     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_less_pascal)\
362     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_cmp_pascal_stat)\
363     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_less_xorshift)\
364     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpb_cmp_xorshift_stat)\
365     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_less_pascal)\
366     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_cmp_pascal_stat)\
367     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_less_xorshift)\
368     TEST_CASE(tag_SkipListMap, SkipListMap_rcu_gpt_cmp_xorshift_stat)\
369     CDSUNIT_DECLARE_SkipListMap_RCU_signal
370
371 #define CDSUNIT_TEST_SkipListMap \
372     CPPUNIT_TEST(SkipListMap_hp_less_pascal)\
373     CPPUNIT_TEST(SkipListMap_hp_cmp_pascal_stat)\
374     CPPUNIT_TEST(SkipListMap_hp_less_xorshift)\
375     CPPUNIT_TEST(SkipListMap_hp_cmp_xorshift_stat)\
376     CPPUNIT_TEST(SkipListMap_dhp_less_pascal)\
377     CPPUNIT_TEST(SkipListMap_dhp_cmp_pascal_stat)\
378     CPPUNIT_TEST(SkipListMap_dhp_less_xorshift)\
379     CPPUNIT_TEST(SkipListMap_dhp_cmp_xorshift_stat)\
380     CPPUNIT_TEST(SkipListMap_rcu_gpi_less_pascal)\
381     CPPUNIT_TEST(SkipListMap_rcu_gpi_cmp_pascal_stat)\
382     CPPUNIT_TEST(SkipListMap_rcu_gpi_less_xorshift)\
383     CPPUNIT_TEST(SkipListMap_rcu_gpi_cmp_xorshift_stat)\
384     CPPUNIT_TEST(SkipListMap_rcu_gpb_less_pascal)\
385     CPPUNIT_TEST(SkipListMap_rcu_gpb_cmp_pascal_stat)\
386     CPPUNIT_TEST(SkipListMap_rcu_gpb_less_xorshift)\
387     CPPUNIT_TEST(SkipListMap_rcu_gpb_cmp_xorshift_stat)\
388     CPPUNIT_TEST(SkipListMap_rcu_gpt_less_pascal)\
389     CPPUNIT_TEST(SkipListMap_rcu_gpt_cmp_pascal_stat)\
390     CPPUNIT_TEST(SkipListMap_rcu_gpt_less_xorshift)\
391     CPPUNIT_TEST(SkipListMap_rcu_gpt_cmp_xorshift_stat)\
392     CDSUNIT_TEST_SkipListMap_RCU_signal
393
394 #define CDSUNIT_DECLARE_SkipListMap_nogc \
395     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_less_pascal)\
396     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_cmp_pascal_stat)\
397     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_less_xorshift)\
398     TEST_CASE(tag_SkipListMap, SkipListMap_nogc_cmp_xorshift_stat)
399
400 #define CDSUNIT_TEST_SkipListMap_nogc \
401     CPPUNIT_TEST(SkipListMap_nogc_less_pascal)\
402     CPPUNIT_TEST(SkipListMap_nogc_cmp_pascal_stat)\
403     CPPUNIT_TEST(SkipListMap_nogc_less_xorshift)\
404     CPPUNIT_TEST(SkipListMap_nogc_cmp_xorshift_stat)
405
406
407 // **************************************************************************************
408 // EllenBinTreeMap
409
410 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
411 #   define CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal \
412     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_shb)\
413     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_shb_stat)\
414     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_sht)\
415     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_sht_stat)
416
417 #   define CDSUNIT_TEST_EllenBinTreeMap_RCU_signal \
418     CPPUNIT_TEST(EllenBinTreeMap_rcu_shb)\
419     CPPUNIT_TEST(EllenBinTreeMap_rcu_shb_stat)\
420     CPPUNIT_TEST(EllenBinTreeMap_rcu_sht)\
421     CPPUNIT_TEST(EllenBinTreeMap_rcu_sht_stat)
422 #else
423 #   define CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal
424 #   define CDSUNIT_TEST_EllenBinTreeMap_RCU_signal
425 #endif
426
427 #define CDSUNIT_DECLARE_EllenBinTreeMap \
428     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_hp)\
429     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_hp_yield)\
430     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_hp_stat)\
431     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_dhp)\
432     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_dhp_yield)\
433     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_dhp_stat)\
434     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpi)\
435     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpi_stat)\
436     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpb)\
437     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpb_yield)\
438     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpb_stat)\
439     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpt)\
440     TEST_CASE(tag_EllenBinTreeMap, EllenBinTreeMap_rcu_gpt_stat)\
441     CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal
442
443 #define CDSUNIT_TEST_EllenBinTreeMap \
444     CPPUNIT_TEST(EllenBinTreeMap_hp)\
445     CPPUNIT_TEST(EllenBinTreeMap_hp_yield)\
446     CPPUNIT_TEST(EllenBinTreeMap_hp_stat)\
447     CPPUNIT_TEST(EllenBinTreeMap_dhp)\
448     CPPUNIT_TEST(EllenBinTreeMap_dhp_yield)\
449     CPPUNIT_TEST(EllenBinTreeMap_dhp_stat)\
450     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpi)\
451     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpi_stat)\
452     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb)\
453     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb_yield)\
454     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb_stat)\
455     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpt)\
456     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpt_stat)\
457     CDSUNIT_TEST_EllenBinTreeMap_RCU_signal
458
459
460 // **************************************************************************************
461 // BronsonAVLTreeMap
462
463 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
464 #   define CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal \
465     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less) \
466     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less) \
467     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_cmp_stat) \
468     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_cmp_stat) \
469     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
470     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
471     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
472     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
473     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
474     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
475     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
476     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
477     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
478     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
479     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
480     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
481
482 #   define CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal \
483     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less) \
484     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less) \
485     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_cmp_stat) \
486     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_cmp_stat) \
487     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
488     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
489     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
490     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
491     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
492     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
493     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
494     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
495     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
496     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
497     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
498     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
499
500 #else
501 #   define CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal
502 #   define CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal
503 #endif
504
505 #define CDSUNIT_DECLARE_BronsonAVLTreeMap \
506     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less)\
507     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less)\
508     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less)\
509     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_cmp_stat)\
510     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_cmp_stat)\
511     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_cmp_stat)\
512     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
513     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
514     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
515     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
516     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
517     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
518     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
519     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
520     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
521     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
522     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
523     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
524     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
525     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
526     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
527     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
528     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
529     TEST_CASE(tag_BronsonAVLTreeMap, BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
530     CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal
531
532 #define CDSUNIT_TEST_BronsonAVLTreeMap \
533     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less)\
534     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_cmp_stat)\
535     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less)\
536     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_cmp_stat)\
537     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less)\
538     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_cmp_stat)\
539     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
540     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
541     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
542     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
543     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
544     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
545     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
546     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
547     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
548     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
549     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
550     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
551     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
552     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
553     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
554     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
555     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
556     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
557     CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal
558
559
560 // **************************************************************************************
561 // StripedMap
562
563 #define CDSUNIT_DECLARE_StripedMap_common \
564     CDSUNIT_DECLARE_TEST(StripedMap_list) \
565     CDSUNIT_DECLARE_TEST(StripedMap_map) \
566     CDSUNIT_DECLARE_TEST(StripedMap_hashmap) \
567     CDSUNIT_DECLARE_TEST(StripedMap_boost_unordered_map)
568
569 #define CDSUNIT_DEFINE_StripedMap_common( IMPL, C ) \
570     TEST_MAP(IMPL, C, StripedMap_list) \
571     TEST_MAP(IMPL, C, StripedMap_map) \
572     TEST_MAP(IMPL, C, StripedMap_hashmap) \
573     TEST_MAP(IMPL, C, StripedMap_boost_unordered_map)
574
575 #define CDSUNIT_TEST_StripedMap_common \
576     CPPUNIT_TEST(StripedMap_list) \
577     CPPUNIT_TEST(StripedMap_map) \
578     CPPUNIT_TEST(StripedMap_hashmap) \
579     CPPUNIT_TEST(StripedMap_boost_unordered_map)
580
581 #if BOOST_VERSION >= 104800
582 #   define CDSUNIT_DECLARE_StripedMap_boost_container \
583         CDSUNIT_DECLARE_TEST(StripedMap_boost_list) \
584         CDSUNIT_DECLARE_TEST(StripedMap_slist) \
585         CDSUNIT_DECLARE_TEST(StripedMap_boost_map)
586 #   define CDSUNIT_DEFINE_StripedMap_boost_container( IMPL, C ) \
587         TEST_MAP(IMPL, C, StripedMap_boost_list) \
588         TEST_MAP(IMPL, C, StripedMap_slist) \
589         TEST_MAP(IMPL, C, StripedMap_boost_map)
590 #   define CDSUNIT_TEST_StripedMap_boost_container \
591         CPPUNIT_TEST(StripedMap_boost_list) \
592         CPPUNIT_TEST(StripedMap_slist) \
593         CPPUNIT_TEST(StripedMap_boost_map)
594 #else
595 #   define CDSUNIT_DECLARE_StripedMap_boost_container
596 #   define CDSUNIT_DEFINE_StripedMap_boost_container( IMPL, C )
597 #   define CDSUNIT_TEST_StripedMap_boost_container
598 #endif
599
600 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
601 #   define CDSUNIT_DECLARE_StripedMap_boost_flat_container \
602         CDSUNIT_DECLARE_TEST(StripedMap_boost_flat_map)
603 #   define CDSUNIT_DEFINE_StripedMap_boost_flat_container( IMPL, C ) \
604         TEST_MAP(IMPL, C, StripedMap_boost_flat_map)
605 #   define CDSUNIT_TEST_StripedMap_boost_flat_container \
606         CPPUNIT_TEST(StripedMap_boost_flat_map)
607 #else
608 #   define CDSUNIT_DECLARE_StripedMap_boost_flat_container
609 #   define CDSUNIT_DEFINE_StripedMap_boost_flat_container( IMPL, C )
610 #   define CDSUNIT_TEST_StripedMap_boost_flat_container
611 #endif
612
613 #define CDSUNIT_DECLARE_StripedMap \
614     CDSUNIT_DECLARE_StripedMap_common \
615     CDSUNIT_DECLARE_StripedMap_boost_container \
616     CDSUNIT_DECLARE_StripedMap_boost_flat_container
617 #define CDSUNIT_DEFINE_StripedMap( IMPL, C ) \
618     CDSUNIT_DEFINE_StripedMap_common( IMPL, C ) \
619     CDSUNIT_DEFINE_StripedMap_boost_container( IMPL, C ) \
620     CDSUNIT_DEFINE_StripedMap_boost_flat_container( IMPL, C )
621 #define CDSUNIT_TEST_StripedMap \
622     CDSUNIT_TEST_StripedMap_common \
623     CDSUNIT_TEST_StripedMap_boost_container \
624     CDSUNIT_TEST_StripedMap_boost_flat_container
625
626
627 // **************************************************************************************
628 // RefinableMap
629
630 #define CDSUNIT_DECLARE_RefinableMap_common \
631     CDSUNIT_DECLARE_TEST(RefinableMap_list) \
632     CDSUNIT_DECLARE_TEST(RefinableMap_map) \
633     CDSUNIT_DECLARE_TEST(RefinableMap_hashmap) \
634     CDSUNIT_DECLARE_TEST(RefinableMap_boost_unordered_map)
635 #define CDSUNIT_DEFINE_RefinableMap_common( IMPL, C ) \
636     TEST_MAP(IMPL, C, RefinableMap_list) \
637     TEST_MAP(IMPL, C, RefinableMap_map) \
638     TEST_MAP(IMPL, C, RefinableMap_hashmap) \
639     TEST_MAP(IMPL, C, RefinableMap_boost_unordered_map)
640 #define CDSUNIT_TEST_RefinableMap_common \
641     CPPUNIT_TEST(RefinableMap_list) \
642     CPPUNIT_TEST(RefinableMap_map) \
643     CPPUNIT_TEST(RefinableMap_hashmap) \
644     CPPUNIT_TEST(RefinableMap_boost_unordered_map)
645
646 #if BOOST_VERSION >= 104800
647 #   define CDSUNIT_DECLARE_RefinableMap_boost_container \
648         CDSUNIT_DECLARE_TEST(RefinableMap_boost_list) \
649         CDSUNIT_DECLARE_TEST(RefinableMap_slist) \
650         CDSUNIT_DECLARE_TEST(RefinableMap_boost_map)
651 #   define CDSUNIT_DEFINE_RefinableMap_boost_container( IMPL, C ) \
652         TEST_MAP(IMPL, C, RefinableMap_boost_list) \
653         TEST_MAP(IMPL, C, RefinableMap_slist) \
654         TEST_MAP(IMPL, C, RefinableMap_boost_map)
655 #   define CDSUNIT_TEST_RefinableMap_boost_container \
656         CPPUNIT_TEST(RefinableMap_boost_list) \
657         CPPUNIT_TEST(RefinableMap_slist) \
658         CPPUNIT_TEST(RefinableMap_boost_map)
659 #else
660 #   define CDSUNIT_DECLARE_RefinableMap_boost_container
661 #   define CDSUNIT_DEFINE_RefinableMap_boost_container( IMPL, C )
662 #   define CDSUNIT_TEST_RefinableMap_boost_container
663 #endif
664
665 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
666 #   define CDSUNIT_DECLARE_RefinableMap_boost_flat_container \
667         CDSUNIT_DECLARE_TEST(RefinableMap_boost_flat_map)
668 #   define CDSUNIT_DEFINE_RefinableMap_boost_flat_container( IMPL, C ) \
669         TEST_MAP( IMPL, C, RefinableMap_boost_flat_map)
670 #   define CDSUNIT_TEST_RefinableMap_boost_flat_container \
671         CPPUNIT_TEST(RefinableMap_boost_flat_map)
672 #else
673 #   define CDSUNIT_DECLARE_RefinableMap_boost_flat_container
674 #   define CDSUNIT_DEFINE_RefinableMap_boost_flat_container( IMPL, C )
675 #   define CDSUNIT_TEST_RefinableMap_boost_flat_container
676 #endif
677
678 #define CDSUNIT_DECLARE_RefinableMap \
679     CDSUNIT_DECLARE_RefinableMap_common \
680     CDSUNIT_DECLARE_RefinableMap_boost_container \
681     CDSUNIT_DECLARE_RefinableMap_boost_flat_container
682 #define CDSUNIT_DEFINE_RefinableMap( IMPL, C ) \
683     CDSUNIT_DEFINE_RefinableMap_common( IMPL, C ) \
684     CDSUNIT_DEFINE_RefinableMap_boost_container( IMPL, C ) \
685     CDSUNIT_DEFINE_RefinableMap_boost_flat_container( IMPL, C )
686 #define CDSUNIT_TEST_RefinableMap \
687     CDSUNIT_TEST_RefinableMap_common \
688     CDSUNIT_TEST_RefinableMap_boost_container \
689     CDSUNIT_TEST_RefinableMap_boost_flat_container
690
691
692 // **************************************************************************************
693 // CuckooMap
694
695 #define CDSUNIT_DECLARE_CuckooMap \
696     CDSUNIT_DECLARE_TEST(CuckooStripedMap_list_unord)\
697     CDSUNIT_DECLARE_TEST(CuckooStripedMap_list_ord)\
698     CDSUNIT_DECLARE_TEST(CuckooStripedMap_vector_unord)\
699     CDSUNIT_DECLARE_TEST(CuckooStripedMap_vector_ord)\
700     CDSUNIT_DECLARE_TEST(CuckooStripedMap_list_unord_stat)\
701     CDSUNIT_DECLARE_TEST(CuckooStripedMap_list_ord_stat)\
702     CDSUNIT_DECLARE_TEST(CuckooStripedMap_vector_unord_stat)\
703     CDSUNIT_DECLARE_TEST(CuckooStripedMap_vector_ord_stat)\
704     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_list_unord)\
705     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_list_ord)\
706     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_vector_unord)\
707     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_vector_ord) \
708     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_list_unord_stat)\
709     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_list_ord_stat)\
710     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_vector_unord_stat)\
711     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_vector_ord_stat) \
712     CDSUNIT_DECLARE_TEST(CuckooStripedMap_list_unord_storehash)\
713     CDSUNIT_DECLARE_TEST(CuckooStripedMap_list_ord_storehash)\
714     CDSUNIT_DECLARE_TEST(CuckooStripedMap_vector_unord_storehash)\
715     CDSUNIT_DECLARE_TEST(CuckooStripedMap_vector_ord_storehash)\
716     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_list_unord_storehash)\
717     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_list_ord_storehash)\
718     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_vector_unord_storehash)\
719     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_vector_ord_storehash)
720
721 #define CDSUNIT_DEFINE_CuckooMap( IMPL, C ) \
722     TEST_MAP(IMPL, C, CuckooStripedMap_list_unord)\
723     TEST_MAP(IMPL, C, CuckooStripedMap_list_ord)\
724     TEST_MAP(IMPL, C, CuckooStripedMap_vector_unord)\
725     TEST_MAP(IMPL, C, CuckooStripedMap_vector_ord)\
726     TEST_MAP(IMPL, C, CuckooStripedMap_list_unord_stat)\
727     TEST_MAP(IMPL, C, CuckooStripedMap_list_ord_stat)\
728     TEST_MAP(IMPL, C, CuckooStripedMap_vector_unord_stat)\
729     TEST_MAP(IMPL, C, CuckooStripedMap_vector_ord_stat)\
730     TEST_MAP(IMPL, C, CuckooRefinableMap_list_unord)\
731     TEST_MAP(IMPL, C, CuckooRefinableMap_list_ord)\
732     TEST_MAP(IMPL, C, CuckooRefinableMap_vector_unord)\
733     TEST_MAP(IMPL, C, CuckooRefinableMap_vector_ord) \
734     TEST_MAP(IMPL, C, CuckooRefinableMap_list_unord_stat)\
735     TEST_MAP(IMPL, C, CuckooRefinableMap_list_ord_stat)\
736     TEST_MAP(IMPL, C, CuckooRefinableMap_vector_unord_stat)\
737     TEST_MAP(IMPL, C, CuckooRefinableMap_vector_ord_stat) \
738     TEST_MAP(IMPL, C, CuckooStripedMap_list_unord_storehash)\
739     TEST_MAP(IMPL, C, CuckooStripedMap_list_ord_storehash)\
740     TEST_MAP(IMPL, C, CuckooStripedMap_vector_unord_storehash)\
741     TEST_MAP(IMPL, C, CuckooStripedMap_vector_ord_storehash)\
742     TEST_MAP(IMPL, C, CuckooRefinableMap_list_unord_storehash)\
743     TEST_MAP(IMPL, C, CuckooRefinableMap_list_ord_storehash)\
744     TEST_MAP(IMPL, C, CuckooRefinableMap_vector_unord_storehash)\
745     TEST_MAP(IMPL, C, CuckooRefinableMap_vector_ord_storehash)
746
747 #define CDSUNIT_TEST_CuckooMap \
748     CPPUNIT_TEST(CuckooStripedMap_list_unord)\
749     CPPUNIT_TEST(CuckooStripedMap_list_unord_stat)\
750     CPPUNIT_TEST(CuckooStripedMap_list_unord_storehash)\
751     CPPUNIT_TEST(CuckooStripedMap_list_ord)\
752     CPPUNIT_TEST(CuckooStripedMap_list_ord_stat)\
753     CPPUNIT_TEST(CuckooStripedMap_list_ord_storehash)\
754     CPPUNIT_TEST(CuckooStripedMap_vector_unord)\
755     CPPUNIT_TEST(CuckooStripedMap_vector_unord_stat)\
756     CPPUNIT_TEST(CuckooStripedMap_vector_unord_storehash)\
757     CPPUNIT_TEST(CuckooStripedMap_vector_ord)\
758     CPPUNIT_TEST(CuckooStripedMap_vector_ord_stat)\
759     CPPUNIT_TEST(CuckooStripedMap_vector_ord_storehash)\
760     CPPUNIT_TEST(CuckooRefinableMap_list_unord)\
761     CPPUNIT_TEST(CuckooRefinableMap_list_unord_stat)\
762     CPPUNIT_TEST(CuckooRefinableMap_list_unord_storehash)\
763     CPPUNIT_TEST(CuckooRefinableMap_list_ord)\
764     CPPUNIT_TEST(CuckooRefinableMap_list_ord_stat)\
765     CPPUNIT_TEST(CuckooRefinableMap_list_ord_storehash)\
766     CPPUNIT_TEST(CuckooRefinableMap_vector_unord)\
767     CPPUNIT_TEST(CuckooRefinableMap_vector_unord_stat)\
768     CPPUNIT_TEST(CuckooRefinableMap_vector_unord_storehash)\
769     CPPUNIT_TEST(CuckooRefinableMap_vector_ord)\
770     CPPUNIT_TEST(CuckooRefinableMap_vector_ord_stat)\
771     CPPUNIT_TEST(CuckooRefinableMap_vector_ord_storehash)
772
773
774 // **************************************************************************************
775 // MultiLevelHashMap
776
777 #undef CDSUNIT_DECLARE_MultiLevelHashMap
778 #define CDSUNIT_DECLARE_MultiLevelHashMap  \
779     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_stdhash) \
780     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_stdhash_stat) \
781     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_stdhash) \
782     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_stdhash_stat)
783
784 #undef CDSUNIT_TEST_MultiLevelHashMap
785 #define CDSUNIT_TEST_MultiLevelHashMap  \
786     CPPUNIT_TEST(MultiLevelHashMap_hp_stdhash) \
787     CPPUNIT_TEST(MultiLevelHashMap_hp_stdhash_stat) \
788     CPPUNIT_TEST(MultiLevelHashMap_dhp_stdhash) \
789     CPPUNIT_TEST(MultiLevelHashMap_dhp_stdhash_stat)
790