EllenBinTreeMap, EllenBinTreeSet:
[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 // BronsonACLTreeMap
462
463 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
464 #   define CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal \
465     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_shb_less) \
466     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_sht_less) \
467     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_shb_cmp_stat) \
468     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_sht_cmp_stat) \
469     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
470     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
471     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
472     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
473     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
474     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
475     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
476     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
477     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
478     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
479     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
480     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
481
482 #   define CDSUNIT_DEFINE_BronsonAVLTreeMap_RCU_signal(IMPL, C) \
483     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_shb_less) \
484     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_sht_less) \
485     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_shb_cmp_stat) \
486     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_sht_cmp_stat) \
487     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
488     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
489     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
490     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
491     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
492     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
493     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
494     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
495     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
496     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
497     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
498     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
499
500 #   define CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal \
501     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less) \
502     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less) \
503     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_cmp_stat) \
504     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_cmp_stat) \
505     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
506     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
507     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
508     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
509     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
510     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
511     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
512     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
513     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
514     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
515     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
516     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
517
518 #else
519 #   define CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal
520 #   define CDSUNIT_DEFINE_BronsonAVLTreeMap_RCU_signal(IMPL, C)
521 #   define CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal
522 #endif
523
524 #define CDSUNIT_DECLARE_BronsonAVLTreeMap \
525     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpi_less)\
526     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpb_less)\
527     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpt_less)\
528     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpi_cmp_stat)\
529     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpb_cmp_stat)\
530     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpt_cmp_stat)\
531     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
532     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
533     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
534     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
535     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
536     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
537     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
538     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
539     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
540     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
541     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
542     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
543     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
544     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
545     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
546     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
547     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
548     CDSUNIT_DECLARE_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
549     CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal
550
551 #define CDSUNIT_DEFINE_BronsonAVLTreeMap( IMPL, C ) \
552     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpi_less)\
553     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpb_less)\
554     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpt_less)\
555     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpi_cmp_stat)\
556     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpb_cmp_stat)\
557     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpt_cmp_stat)\
558     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
559     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
560     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
561     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
562     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
563     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
564     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
565     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
566     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
567     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
568     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
569     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
570     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
571     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
572     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
573     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
574     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
575     TEST_MAP_NOLF_EXTRACT(IMPL, C, BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
576     CDSUNIT_DEFINE_BronsonAVLTreeMap_RCU_signal( IMPL, C )
577
578 #define CDSUNIT_TEST_BronsonAVLTreeMap \
579     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less)\
580     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_cmp_stat)\
581     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less)\
582     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_cmp_stat)\
583     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less)\
584     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_cmp_stat)\
585     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
586     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
587     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
588     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
589     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
590     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
591     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
592     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
593     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
594     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
595     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
596     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
597     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
598     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
599     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
600     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
601     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
602     CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
603     CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal
604
605
606 // **************************************************************************************
607 // StripedMap
608
609 #define CDSUNIT_DECLARE_StripedMap_common \
610     CDSUNIT_DECLARE_TEST(StripedMap_list) \
611     CDSUNIT_DECLARE_TEST(StripedMap_map) \
612     CDSUNIT_DECLARE_TEST(StripedMap_hashmap) \
613     CDSUNIT_DECLARE_TEST(StripedMap_boost_unordered_map)
614
615 #define CDSUNIT_DEFINE_StripedMap_common( IMPL, C ) \
616     TEST_MAP(IMPL, C, StripedMap_list) \
617     TEST_MAP(IMPL, C, StripedMap_map) \
618     TEST_MAP(IMPL, C, StripedMap_hashmap) \
619     TEST_MAP(IMPL, C, StripedMap_boost_unordered_map)
620
621 #define CDSUNIT_TEST_StripedMap_common \
622     CPPUNIT_TEST(StripedMap_list) \
623     CPPUNIT_TEST(StripedMap_map) \
624     CPPUNIT_TEST(StripedMap_hashmap) \
625     CPPUNIT_TEST(StripedMap_boost_unordered_map)
626
627 #if BOOST_VERSION >= 104800
628 #   define CDSUNIT_DECLARE_StripedMap_boost_container \
629         CDSUNIT_DECLARE_TEST(StripedMap_boost_list) \
630         CDSUNIT_DECLARE_TEST(StripedMap_slist) \
631         CDSUNIT_DECLARE_TEST(StripedMap_boost_map)
632 #   define CDSUNIT_DEFINE_StripedMap_boost_container( IMPL, C ) \
633         TEST_MAP(IMPL, C, StripedMap_boost_list) \
634         TEST_MAP(IMPL, C, StripedMap_slist) \
635         TEST_MAP(IMPL, C, StripedMap_boost_map)
636 #   define CDSUNIT_TEST_StripedMap_boost_container \
637         CPPUNIT_TEST(StripedMap_boost_list) \
638         CPPUNIT_TEST(StripedMap_slist) \
639         CPPUNIT_TEST(StripedMap_boost_map)
640 #else
641 #   define CDSUNIT_DECLARE_StripedMap_boost_container
642 #   define CDSUNIT_DEFINE_StripedMap_boost_container( IMPL, C )
643 #   define CDSUNIT_TEST_StripedMap_boost_container
644 #endif
645
646 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
647 #   define CDSUNIT_DECLARE_StripedMap_boost_flat_container \
648         CDSUNIT_DECLARE_TEST(StripedMap_boost_flat_map)
649 #   define CDSUNIT_DEFINE_StripedMap_boost_flat_container( IMPL, C ) \
650         TEST_MAP(IMPL, C, StripedMap_boost_flat_map)
651 #   define CDSUNIT_TEST_StripedMap_boost_flat_container \
652         CPPUNIT_TEST(StripedMap_boost_flat_map)
653 #else
654 #   define CDSUNIT_DECLARE_StripedMap_boost_flat_container
655 #   define CDSUNIT_DEFINE_StripedMap_boost_flat_container( IMPL, C )
656 #   define CDSUNIT_TEST_StripedMap_boost_flat_container
657 #endif
658
659 #define CDSUNIT_DECLARE_StripedMap \
660     CDSUNIT_DECLARE_StripedMap_common \
661     CDSUNIT_DECLARE_StripedMap_boost_container \
662     CDSUNIT_DECLARE_StripedMap_boost_flat_container
663 #define CDSUNIT_DEFINE_StripedMap( IMPL, C ) \
664     CDSUNIT_DEFINE_StripedMap_common( IMPL, C ) \
665     CDSUNIT_DEFINE_StripedMap_boost_container( IMPL, C ) \
666     CDSUNIT_DEFINE_StripedMap_boost_flat_container( IMPL, C )
667 #define CDSUNIT_TEST_StripedMap \
668     CDSUNIT_TEST_StripedMap_common \
669     CDSUNIT_TEST_StripedMap_boost_container \
670     CDSUNIT_TEST_StripedMap_boost_flat_container
671
672
673 // **************************************************************************************
674 // RefinableMap
675
676 #define CDSUNIT_DECLARE_RefinableMap_common \
677     CDSUNIT_DECLARE_TEST(RefinableMap_list) \
678     CDSUNIT_DECLARE_TEST(RefinableMap_map) \
679     CDSUNIT_DECLARE_TEST(RefinableMap_hashmap) \
680     CDSUNIT_DECLARE_TEST(RefinableMap_boost_unordered_map)
681 #define CDSUNIT_DEFINE_RefinableMap_common( IMPL, C ) \
682     TEST_MAP(IMPL, C, RefinableMap_list) \
683     TEST_MAP(IMPL, C, RefinableMap_map) \
684     TEST_MAP(IMPL, C, RefinableMap_hashmap) \
685     TEST_MAP(IMPL, C, RefinableMap_boost_unordered_map)
686 #define CDSUNIT_TEST_RefinableMap_common \
687     CPPUNIT_TEST(RefinableMap_list) \
688     CPPUNIT_TEST(RefinableMap_map) \
689     CPPUNIT_TEST(RefinableMap_hashmap) \
690     CPPUNIT_TEST(RefinableMap_boost_unordered_map)
691
692 #if BOOST_VERSION >= 104800
693 #   define CDSUNIT_DECLARE_RefinableMap_boost_container \
694         CDSUNIT_DECLARE_TEST(RefinableMap_boost_list) \
695         CDSUNIT_DECLARE_TEST(RefinableMap_slist) \
696         CDSUNIT_DECLARE_TEST(RefinableMap_boost_map)
697 #   define CDSUNIT_DEFINE_RefinableMap_boost_container( IMPL, C ) \
698         TEST_MAP(IMPL, C, RefinableMap_boost_list) \
699         TEST_MAP(IMPL, C, RefinableMap_slist) \
700         TEST_MAP(IMPL, C, RefinableMap_boost_map)
701 #   define CDSUNIT_TEST_RefinableMap_boost_container \
702         CPPUNIT_TEST(RefinableMap_boost_list) \
703         CPPUNIT_TEST(RefinableMap_slist) \
704         CPPUNIT_TEST(RefinableMap_boost_map)
705 #else
706 #   define CDSUNIT_DECLARE_RefinableMap_boost_container
707 #   define CDSUNIT_DEFINE_RefinableMap_boost_container( IMPL, C )
708 #   define CDSUNIT_TEST_RefinableMap_boost_container
709 #endif
710
711 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
712 #   define CDSUNIT_DECLARE_RefinableMap_boost_flat_container \
713         CDSUNIT_DECLARE_TEST(RefinableMap_boost_flat_map)
714 #   define CDSUNIT_DEFINE_RefinableMap_boost_flat_container( IMPL, C ) \
715         TEST_MAP( IMPL, C, RefinableMap_boost_flat_map)
716 #   define CDSUNIT_TEST_RefinableMap_boost_flat_container \
717         CPPUNIT_TEST(RefinableMap_boost_flat_map)
718 #else
719 #   define CDSUNIT_DECLARE_RefinableMap_boost_flat_container
720 #   define CDSUNIT_DEFINE_RefinableMap_boost_flat_container( IMPL, C )
721 #   define CDSUNIT_TEST_RefinableMap_boost_flat_container
722 #endif
723
724 #define CDSUNIT_DECLARE_RefinableMap \
725     CDSUNIT_DECLARE_RefinableMap_common \
726     CDSUNIT_DECLARE_RefinableMap_boost_container \
727     CDSUNIT_DECLARE_RefinableMap_boost_flat_container
728 #define CDSUNIT_DEFINE_RefinableMap( IMPL, C ) \
729     CDSUNIT_DEFINE_RefinableMap_common( IMPL, C ) \
730     CDSUNIT_DEFINE_RefinableMap_boost_container( IMPL, C ) \
731     CDSUNIT_DEFINE_RefinableMap_boost_flat_container( IMPL, C )
732 #define CDSUNIT_TEST_RefinableMap \
733     CDSUNIT_TEST_RefinableMap_common \
734     CDSUNIT_TEST_RefinableMap_boost_container \
735     CDSUNIT_TEST_RefinableMap_boost_flat_container
736
737
738 // **************************************************************************************
739 // CuckooMap
740
741 #define CDSUNIT_DECLARE_CuckooMap \
742     CDSUNIT_DECLARE_TEST(CuckooStripedMap_list_unord)\
743     CDSUNIT_DECLARE_TEST(CuckooStripedMap_list_ord)\
744     CDSUNIT_DECLARE_TEST(CuckooStripedMap_vector_unord)\
745     CDSUNIT_DECLARE_TEST(CuckooStripedMap_vector_ord)\
746     CDSUNIT_DECLARE_TEST(CuckooStripedMap_list_unord_stat)\
747     CDSUNIT_DECLARE_TEST(CuckooStripedMap_list_ord_stat)\
748     CDSUNIT_DECLARE_TEST(CuckooStripedMap_vector_unord_stat)\
749     CDSUNIT_DECLARE_TEST(CuckooStripedMap_vector_ord_stat)\
750     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_list_unord)\
751     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_list_ord)\
752     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_vector_unord)\
753     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_vector_ord) \
754     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_list_unord_stat)\
755     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_list_ord_stat)\
756     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_vector_unord_stat)\
757     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_vector_ord_stat) \
758     CDSUNIT_DECLARE_TEST(CuckooStripedMap_list_unord_storehash)\
759     CDSUNIT_DECLARE_TEST(CuckooStripedMap_list_ord_storehash)\
760     CDSUNIT_DECLARE_TEST(CuckooStripedMap_vector_unord_storehash)\
761     CDSUNIT_DECLARE_TEST(CuckooStripedMap_vector_ord_storehash)\
762     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_list_unord_storehash)\
763     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_list_ord_storehash)\
764     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_vector_unord_storehash)\
765     CDSUNIT_DECLARE_TEST(CuckooRefinableMap_vector_ord_storehash)
766
767 #define CDSUNIT_DEFINE_CuckooMap( IMPL, C ) \
768     TEST_MAP(IMPL, C, CuckooStripedMap_list_unord)\
769     TEST_MAP(IMPL, C, CuckooStripedMap_list_ord)\
770     TEST_MAP(IMPL, C, CuckooStripedMap_vector_unord)\
771     TEST_MAP(IMPL, C, CuckooStripedMap_vector_ord)\
772     TEST_MAP(IMPL, C, CuckooStripedMap_list_unord_stat)\
773     TEST_MAP(IMPL, C, CuckooStripedMap_list_ord_stat)\
774     TEST_MAP(IMPL, C, CuckooStripedMap_vector_unord_stat)\
775     TEST_MAP(IMPL, C, CuckooStripedMap_vector_ord_stat)\
776     TEST_MAP(IMPL, C, CuckooRefinableMap_list_unord)\
777     TEST_MAP(IMPL, C, CuckooRefinableMap_list_ord)\
778     TEST_MAP(IMPL, C, CuckooRefinableMap_vector_unord)\
779     TEST_MAP(IMPL, C, CuckooRefinableMap_vector_ord) \
780     TEST_MAP(IMPL, C, CuckooRefinableMap_list_unord_stat)\
781     TEST_MAP(IMPL, C, CuckooRefinableMap_list_ord_stat)\
782     TEST_MAP(IMPL, C, CuckooRefinableMap_vector_unord_stat)\
783     TEST_MAP(IMPL, C, CuckooRefinableMap_vector_ord_stat) \
784     TEST_MAP(IMPL, C, CuckooStripedMap_list_unord_storehash)\
785     TEST_MAP(IMPL, C, CuckooStripedMap_list_ord_storehash)\
786     TEST_MAP(IMPL, C, CuckooStripedMap_vector_unord_storehash)\
787     TEST_MAP(IMPL, C, CuckooStripedMap_vector_ord_storehash)\
788     TEST_MAP(IMPL, C, CuckooRefinableMap_list_unord_storehash)\
789     TEST_MAP(IMPL, C, CuckooRefinableMap_list_ord_storehash)\
790     TEST_MAP(IMPL, C, CuckooRefinableMap_vector_unord_storehash)\
791     TEST_MAP(IMPL, C, CuckooRefinableMap_vector_ord_storehash)
792
793 #define CDSUNIT_TEST_CuckooMap \
794     CPPUNIT_TEST(CuckooStripedMap_list_unord)\
795     CPPUNIT_TEST(CuckooStripedMap_list_unord_stat)\
796     CPPUNIT_TEST(CuckooStripedMap_list_unord_storehash)\
797     CPPUNIT_TEST(CuckooStripedMap_list_ord)\
798     CPPUNIT_TEST(CuckooStripedMap_list_ord_stat)\
799     CPPUNIT_TEST(CuckooStripedMap_list_ord_storehash)\
800     CPPUNIT_TEST(CuckooStripedMap_vector_unord)\
801     CPPUNIT_TEST(CuckooStripedMap_vector_unord_stat)\
802     CPPUNIT_TEST(CuckooStripedMap_vector_unord_storehash)\
803     CPPUNIT_TEST(CuckooStripedMap_vector_ord)\
804     CPPUNIT_TEST(CuckooStripedMap_vector_ord_stat)\
805     CPPUNIT_TEST(CuckooStripedMap_vector_ord_storehash)\
806     CPPUNIT_TEST(CuckooRefinableMap_list_unord)\
807     CPPUNIT_TEST(CuckooRefinableMap_list_unord_stat)\
808     CPPUNIT_TEST(CuckooRefinableMap_list_unord_storehash)\
809     CPPUNIT_TEST(CuckooRefinableMap_list_ord)\
810     CPPUNIT_TEST(CuckooRefinableMap_list_ord_stat)\
811     CPPUNIT_TEST(CuckooRefinableMap_list_ord_storehash)\
812     CPPUNIT_TEST(CuckooRefinableMap_vector_unord)\
813     CPPUNIT_TEST(CuckooRefinableMap_vector_unord_stat)\
814     CPPUNIT_TEST(CuckooRefinableMap_vector_unord_storehash)\
815     CPPUNIT_TEST(CuckooRefinableMap_vector_ord)\
816     CPPUNIT_TEST(CuckooRefinableMap_vector_ord_stat)\
817     CPPUNIT_TEST(CuckooRefinableMap_vector_ord_storehash)
818
819
820 // **************************************************************************************
821 // MultiLevelHashMap
822
823 #undef CDSUNIT_DECLARE_MultiLevelHashMap
824 #define CDSUNIT_DECLARE_MultiLevelHashMap  \
825     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_stdhash) \
826     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_hp_stdhash_stat) \
827     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_stdhash) \
828     TEST_CASE(tag_MultiLevelHashMap, MultiLevelHashMap_dhp_stdhash_stat)
829
830 #undef CDSUNIT_TEST_MultiLevelHashMap
831 #define CDSUNIT_TEST_MultiLevelHashMap  \
832     CPPUNIT_TEST(MultiLevelHashMap_hp_stdhash) \
833     CPPUNIT_TEST(MultiLevelHashMap_hp_stdhash_stat) \
834     CPPUNIT_TEST(MultiLevelHashMap_dhp_stdhash) \
835     CPPUNIT_TEST(MultiLevelHashMap_dhp_stdhash_stat)
836