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