0e949503796bd7d2ad0bedd3c91c17e1b9ced7be
[libcds.git] / tests / unit / map2 / map_defs.h
1 //$$CDS-header$$
2
3 #ifndef _CDSUNIT_MAP2_MAP_DEFS_H
4 #define _CDSUNIT_MAP2_MAP_DEFS_H
5
6 #define CDSUNIT_DECLARE_StdMap \
7     TEST_MAP(StdMap_Spin) \
8     TEST_MAP(StdHashMap_Spin)
9 #define CDSUNIT_TEST_StdMap \
10     CPPUNIT_TEST(StdMap_Spin) \
11     CPPUNIT_TEST(StdHashMap_Spin) \
12
13 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
14 #   define CDSUNIT_DECLARE_MichaelMap_RCU_signal \
15     TEST_MAP_EXTRACT(MichaelMap_RCU_SHB_cmp_stdAlloc) \
16     TEST_MAP_EXTRACT(MichaelMap_RCU_SHB_less_michaelAlloc) \
17     TEST_MAP_EXTRACT(MichaelMap_RCU_SHT_cmp_stdAlloc) \
18     TEST_MAP_EXTRACT(MichaelMap_RCU_SHT_less_michaelAlloc) \
19     TEST_MAP_EXTRACT(MichaelMap_Lazy_RCU_SHB_cmp_stdAlloc) \
20     TEST_MAP_EXTRACT(MichaelMap_Lazy_RCU_SHB_less_michaelAlloc) \
21     TEST_MAP_EXTRACT(MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc) \
22     TEST_MAP_EXTRACT(MichaelMap_Lazy_RCU_SHT_less_michaelAlloc)
23
24 #   define CDSUNIT_TEST_MichaelMap_RCU_signal \
25     CPPUNIT_TEST(MichaelMap_RCU_SHB_cmp_stdAlloc) \
26     CPPUNIT_TEST(MichaelMap_RCU_SHB_less_michaelAlloc) \
27     CPPUNIT_TEST(MichaelMap_RCU_SHT_cmp_stdAlloc) \
28     CPPUNIT_TEST(MichaelMap_RCU_SHT_less_michaelAlloc) \
29     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHB_cmp_stdAlloc) \
30     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHB_less_michaelAlloc) \
31     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc) \
32     CPPUNIT_TEST(MichaelMap_Lazy_RCU_SHT_less_michaelAlloc)
33
34 #else
35 #   define CDSUNIT_DECLARE_MichaelMap_RCU_signal
36 #   define CDSUNIT_TEST_MichaelMap_RCU_signal
37 #endif
38
39
40 #define CDSUNIT_DECLARE_MichaelMap  \
41     TEST_MAP_EXTRACT(MichaelMap_HP_cmp_stdAlloc) \
42     TEST_MAP_EXTRACT(MichaelMap_HP_less_michaelAlloc) \
43     TEST_MAP_EXTRACT(MichaelMap_DHP_cmp_stdAlloc) \
44     TEST_MAP_EXTRACT(MichaelMap_DHP_less_michaelAlloc) \
45     TEST_MAP_EXTRACT(MichaelMap_RCU_GPI_cmp_stdAlloc) \
46     TEST_MAP_EXTRACT(MichaelMap_RCU_GPI_less_michaelAlloc) \
47     TEST_MAP_EXTRACT(MichaelMap_RCU_GPB_cmp_stdAlloc) \
48     TEST_MAP_EXTRACT(MichaelMap_RCU_GPB_less_michaelAlloc) \
49     TEST_MAP_EXTRACT(MichaelMap_RCU_GPT_cmp_stdAlloc) \
50     TEST_MAP_EXTRACT(MichaelMap_RCU_GPT_less_michaelAlloc) \
51     TEST_MAP_EXTRACT(MichaelMap_Lazy_HP_cmp_stdAlloc) \
52     TEST_MAP_EXTRACT(MichaelMap_Lazy_HP_less_michaelAlloc) \
53     TEST_MAP_EXTRACT(MichaelMap_Lazy_DHP_cmp_stdAlloc) \
54     TEST_MAP_EXTRACT(MichaelMap_Lazy_DHP_less_michaelAlloc) \
55     TEST_MAP_EXTRACT(MichaelMap_Lazy_RCU_GPI_cmp_stdAlloc) \
56     TEST_MAP_EXTRACT(MichaelMap_Lazy_RCU_GPI_less_michaelAlloc) \
57     TEST_MAP_EXTRACT(MichaelMap_Lazy_RCU_GPB_cmp_stdAlloc) \
58     TEST_MAP_EXTRACT(MichaelMap_Lazy_RCU_GPB_less_michaelAlloc) \
59     TEST_MAP_EXTRACT(MichaelMap_Lazy_RCU_GPT_cmp_stdAlloc) \
60     TEST_MAP_EXTRACT(MichaelMap_Lazy_RCU_GPT_less_michaelAlloc)\
61     CDSUNIT_DECLARE_MichaelMap_RCU_signal
62
63 #define CDSUNIT_TEST_MichaelMap  \
64     CPPUNIT_TEST(MichaelMap_HP_cmp_stdAlloc) \
65     CPPUNIT_TEST(MichaelMap_HP_less_michaelAlloc) \
66     CPPUNIT_TEST(MichaelMap_DHP_cmp_stdAlloc) \
67     CPPUNIT_TEST(MichaelMap_DHP_less_michaelAlloc) \
68     CPPUNIT_TEST(MichaelMap_RCU_GPI_cmp_stdAlloc) \
69     CPPUNIT_TEST(MichaelMap_RCU_GPI_less_michaelAlloc) \
70     CPPUNIT_TEST(MichaelMap_RCU_GPB_cmp_stdAlloc) \
71     CPPUNIT_TEST(MichaelMap_RCU_GPB_less_michaelAlloc) \
72     CPPUNIT_TEST(MichaelMap_RCU_GPT_cmp_stdAlloc) \
73     CPPUNIT_TEST(MichaelMap_RCU_GPT_less_michaelAlloc) \
74     CPPUNIT_TEST(MichaelMap_Lazy_HP_cmp_stdAlloc) \
75     CPPUNIT_TEST(MichaelMap_Lazy_HP_less_michaelAlloc) \
76     CPPUNIT_TEST(MichaelMap_Lazy_DHP_cmp_stdAlloc) \
77     CPPUNIT_TEST(MichaelMap_Lazy_DHP_less_michaelAlloc) \
78     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPI_cmp_stdAlloc) \
79     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPI_less_michaelAlloc) \
80     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPB_cmp_stdAlloc) \
81     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPB_less_michaelAlloc) \
82     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPT_cmp_stdAlloc) \
83     CPPUNIT_TEST(MichaelMap_Lazy_RCU_GPT_less_michaelAlloc)\
84     CDSUNIT_TEST_MichaelMap_RCU_signal
85
86 #define CDSUNIT_DECLARE_MichaelMap_nogc  \
87     TEST_MAP(MichaelMap_NOGC_cmp_stdAlloc) \
88     TEST_MAP(MichaelMap_NOGC_less_michaelAlloc) \
89     TEST_MAP(MichaelMap_Lazy_NOGC_cmp_stdAlloc) \
90     TEST_MAP(MichaelMap_Lazy_NOGC_less_michaelAlloc)
91
92 #define CDSUNIT_TEST_MichaelMap_nogc  \
93     CPPUNIT_TEST(MichaelMap_NOGC_cmp_stdAlloc) \
94     CPPUNIT_TEST(MichaelMap_NOGC_less_michaelAlloc) \
95     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_cmp_stdAlloc) \
96     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_less_michaelAlloc) \
97
98 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
99 #   define CDSUNIT_DECLARE_SplitList_RCU_signal  \
100     TEST_MAP_EXTRACT(SplitList_Michael_RCU_SHB_dyn_cmp)\
101     TEST_MAP_EXTRACT(SplitList_Michael_RCU_SHB_st_cmp)\
102     TEST_MAP_EXTRACT(SplitList_Michael_RCU_SHB_dyn_less)\
103     TEST_MAP_EXTRACT(SplitList_Michael_RCU_SHB_st_less)\
104     TEST_MAP_EXTRACT(SplitList_Michael_RCU_SHT_dyn_cmp)\
105     TEST_MAP_EXTRACT(SplitList_Michael_RCU_SHT_st_cmp)\
106     TEST_MAP_EXTRACT(SplitList_Michael_RCU_SHT_dyn_less)\
107     TEST_MAP_EXTRACT(SplitList_Michael_RCU_SHT_st_less)\
108     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_SHB_dyn_cmp)\
109     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_SHB_st_cmp)\
110     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_SHB_dyn_less)\
111     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_SHB_st_less)\
112     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_SHT_dyn_cmp)\
113     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_SHT_st_cmp)\
114     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_SHT_dyn_less)\
115     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_SHT_st_less)
116
117 #   define CDSUNIT_TEST_SplitList_RCU_signal \
118     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_cmp)\
119     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_cmp)\
120     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_less)\
121     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_less)\
122     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_cmp)\
123     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_cmp)\
124     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_less)\
125     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_less)\
126     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_cmp)\
127     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_cmp)\
128     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_less)\
129     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_less)\
130     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_cmp)\
131     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_cmp)\
132     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_less)\
133     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_less)
134
135 #else
136 #   define CDSUNIT_DECLARE_SplitList_RCU_signal
137 #   define CDSUNIT_TEST_SplitList_RCU_signal
138 #endif
139
140 #define CDSUNIT_DECLARE_SplitList  \
141     TEST_MAP_EXTRACT(SplitList_Michael_HP_dyn_cmp)\
142     TEST_MAP_EXTRACT(SplitList_Michael_HP_st_cmp)\
143     TEST_MAP_EXTRACT(SplitList_Michael_HP_dyn_less)\
144     TEST_MAP_EXTRACT(SplitList_Michael_HP_st_less)\
145     TEST_MAP_EXTRACT(SplitList_Michael_DHP_dyn_cmp)\
146     TEST_MAP_EXTRACT(SplitList_Michael_DHP_st_cmp)\
147     TEST_MAP_EXTRACT(SplitList_Michael_DHP_dyn_less)\
148     TEST_MAP_EXTRACT(SplitList_Michael_DHP_st_less)\
149     TEST_MAP_EXTRACT(SplitList_Michael_RCU_GPI_dyn_cmp)\
150     TEST_MAP_EXTRACT(SplitList_Michael_RCU_GPI_st_cmp)\
151     TEST_MAP_EXTRACT(SplitList_Michael_RCU_GPI_dyn_less)\
152     TEST_MAP_EXTRACT(SplitList_Michael_RCU_GPI_st_less)\
153     TEST_MAP_EXTRACT(SplitList_Michael_RCU_GPB_dyn_cmp)\
154     TEST_MAP_EXTRACT(SplitList_Michael_RCU_GPB_st_cmp)\
155     TEST_MAP_EXTRACT(SplitList_Michael_RCU_GPB_dyn_less)\
156     TEST_MAP_EXTRACT(SplitList_Michael_RCU_GPB_st_less)\
157     TEST_MAP_EXTRACT(SplitList_Michael_RCU_GPT_dyn_cmp)\
158     TEST_MAP_EXTRACT(SplitList_Michael_RCU_GPT_st_cmp)\
159     TEST_MAP_EXTRACT(SplitList_Michael_RCU_GPT_dyn_less)\
160     TEST_MAP_EXTRACT(SplitList_Michael_RCU_GPT_st_less)\
161     TEST_MAP_EXTRACT(SplitList_Lazy_HP_dyn_cmp)\
162     TEST_MAP_EXTRACT(SplitList_Lazy_HP_st_cmp)\
163     TEST_MAP_EXTRACT(SplitList_Lazy_HP_dyn_less)\
164     TEST_MAP_EXTRACT(SplitList_Lazy_HP_st_less)\
165     TEST_MAP_EXTRACT(SplitList_Lazy_DHP_dyn_cmp)\
166     TEST_MAP_EXTRACT(SplitList_Lazy_DHP_st_cmp)\
167     TEST_MAP_EXTRACT(SplitList_Lazy_DHP_dyn_less)\
168     TEST_MAP_EXTRACT(SplitList_Lazy_DHP_st_less)\
169     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_GPI_dyn_cmp)\
170     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_GPI_st_cmp)\
171     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_GPI_dyn_less)\
172     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_GPI_st_less)\
173     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_GPB_dyn_cmp)\
174     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_GPB_st_cmp)\
175     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_GPB_dyn_less)\
176     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_GPB_st_less)\
177     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_GPT_dyn_cmp)\
178     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_GPT_st_cmp)\
179     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_GPT_dyn_less)\
180     TEST_MAP_EXTRACT(SplitList_Lazy_RCU_GPT_st_less)\
181     CDSUNIT_DECLARE_SplitList_RCU_signal
182
183 #define CDSUNIT_TEST_SplitList  \
184     CPPUNIT_TEST(SplitList_Michael_HP_dyn_cmp)\
185     CPPUNIT_TEST(SplitList_Michael_HP_st_cmp)\
186     CPPUNIT_TEST(SplitList_Michael_HP_dyn_less)\
187     CPPUNIT_TEST(SplitList_Michael_HP_st_less)\
188     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_cmp)\
189     CPPUNIT_TEST(SplitList_Michael_DHP_st_cmp)\
190     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_less)\
191     CPPUNIT_TEST(SplitList_Michael_DHP_st_less)\
192     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_cmp)\
193     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_cmp)\
194     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_less)\
195     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_less)\
196     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_cmp)\
197     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_cmp)\
198     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_less)\
199     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_less)\
200     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_cmp)\
201     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_cmp)\
202     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_less)\
203     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_less)\
204     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_cmp)\
205     CPPUNIT_TEST(SplitList_Lazy_HP_st_cmp)\
206     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_less)\
207     CPPUNIT_TEST(SplitList_Lazy_HP_st_less)\
208     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_cmp)\
209     CPPUNIT_TEST(SplitList_Lazy_DHP_st_cmp)\
210     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_less)\
211     CPPUNIT_TEST(SplitList_Lazy_DHP_st_less)\
212     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp)\
213     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_cmp)\
214     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_less)\
215     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_less)\
216     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp)\
217     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_cmp)\
218     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_less)\
219     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_less)\
220     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp)\
221     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_cmp)\
222     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_less)\
223     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_less)\
224     CDSUNIT_TEST_SplitList_RCU_signal
225
226 #define CDSUNIT_DECLARE_SplitList_nogc  \
227     TEST_MAP(SplitList_Michael_NOGC_dyn_cmp)\
228     TEST_MAP(SplitList_Michael_NOGC_st_cmp)\
229     TEST_MAP(SplitList_Michael_NOGC_dyn_less)\
230     TEST_MAP(SplitList_Michael_NOGC_st_less)\
231     TEST_MAP(SplitList_Lazy_NOGC_dyn_cmp)\
232     TEST_MAP(SplitList_Lazy_NOGC_st_cmp)\
233     TEST_MAP(SplitList_Lazy_NOGC_dyn_less)\
234     TEST_MAP(SplitList_Lazy_NOGC_st_less)
235
236 #define CDSUNIT_TEST_SplitList_nogc  \
237     CPPUNIT_TEST(SplitList_Michael_NOGC_dyn_cmp)\
238     CPPUNIT_TEST(SplitList_Michael_NOGC_st_cmp)\
239     CPPUNIT_TEST(SplitList_Michael_NOGC_dyn_less)\
240     CPPUNIT_TEST(SplitList_Michael_NOGC_st_less)\
241     CPPUNIT_TEST(SplitList_Lazy_NOGC_dyn_cmp)\
242     CPPUNIT_TEST(SplitList_Lazy_NOGC_st_cmp)\
243     CPPUNIT_TEST(SplitList_Lazy_NOGC_dyn_less)\
244     CPPUNIT_TEST(SplitList_Lazy_NOGC_st_less)
245
246 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
247 #   define CDSUNIT_DECLARE_SkipListMap_RCU_signal \
248     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_shb_less_pascal)\
249     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_shb_cmp_pascal_stat)\
250     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_shb_less_xorshift)\
251     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_shb_cmp_xorshift_stat)\
252     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_sht_less_pascal)\
253     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_sht_cmp_pascal_stat)\
254     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_sht_less_xorshift)\
255     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_sht_cmp_xorshift_stat)
256
257 #   define CDSUNIT_TEST_SkipListMap_RCU_signal \
258     CPPUNIT_TEST(SkipListMap_rcu_shb_less_pascal)\
259     CPPUNIT_TEST(SkipListMap_rcu_shb_cmp_pascal_stat)\
260     CPPUNIT_TEST(SkipListMap_rcu_shb_less_xorshift)\
261     CPPUNIT_TEST(SkipListMap_rcu_shb_cmp_xorshift_stat)\
262     CPPUNIT_TEST(SkipListMap_rcu_sht_less_pascal)\
263     CPPUNIT_TEST(SkipListMap_rcu_sht_cmp_pascal_stat)\
264     CPPUNIT_TEST(SkipListMap_rcu_sht_less_xorshift)\
265     CPPUNIT_TEST(SkipListMap_rcu_sht_cmp_xorshift_stat)
266
267 #else
268 #   define CDSUNIT_DECLARE_SkipListMap_RCU_signal
269 #   define CDSUNIT_TEST_SkipListMap_RCU_signal
270 #endif
271
272 #define CDSUNIT_DECLARE_SkipListMap \
273     TEST_MAP_NOLF_EXTRACT(SkipListMap_hp_less_pascal)\
274     TEST_MAP_NOLF_EXTRACT(SkipListMap_hp_cmp_pascal_stat)\
275     TEST_MAP_NOLF_EXTRACT(SkipListMap_hp_less_xorshift)\
276     TEST_MAP_NOLF_EXTRACT(SkipListMap_hp_cmp_xorshift_stat)\
277     TEST_MAP_NOLF_EXTRACT(SkipListMap_ptb_less_pascal)\
278     TEST_MAP_NOLF_EXTRACT(SkipListMap_ptb_cmp_pascal_stat)\
279     TEST_MAP_NOLF_EXTRACT(SkipListMap_ptb_less_xorshift)\
280     TEST_MAP_NOLF_EXTRACT(SkipListMap_ptb_cmp_xorshift_stat)\
281     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_gpi_less_pascal)\
282     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_gpi_cmp_pascal_stat)\
283     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_gpi_less_xorshift)\
284     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_gpi_cmp_xorshift_stat)\
285     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_gpb_less_pascal)\
286     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_gpb_cmp_pascal_stat)\
287     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_gpb_less_xorshift)\
288     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_gpb_cmp_xorshift_stat)\
289     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_gpt_less_pascal)\
290     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_gpt_cmp_pascal_stat)\
291     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_gpt_less_xorshift)\
292     TEST_MAP_NOLF_EXTRACT(SkipListMap_rcu_gpt_cmp_xorshift_stat)\
293     CDSUNIT_DECLARE_SkipListMap_RCU_signal
294
295
296 #define CDSUNIT_TEST_SkipListMap \
297     CPPUNIT_TEST(SkipListMap_hp_less_pascal)\
298     CPPUNIT_TEST(SkipListMap_hp_cmp_pascal_stat)\
299     CPPUNIT_TEST(SkipListMap_hp_less_xorshift)\
300     CPPUNIT_TEST(SkipListMap_hp_cmp_xorshift_stat)\
301     CPPUNIT_TEST(SkipListMap_ptb_less_pascal)\
302     CPPUNIT_TEST(SkipListMap_ptb_cmp_pascal_stat)\
303     CPPUNIT_TEST(SkipListMap_ptb_less_xorshift)\
304     CPPUNIT_TEST(SkipListMap_ptb_cmp_xorshift_stat)\
305     CPPUNIT_TEST(SkipListMap_rcu_gpi_less_pascal)\
306     CPPUNIT_TEST(SkipListMap_rcu_gpi_cmp_pascal_stat)\
307     CPPUNIT_TEST(SkipListMap_rcu_gpi_less_xorshift)\
308     CPPUNIT_TEST(SkipListMap_rcu_gpi_cmp_xorshift_stat)\
309     CPPUNIT_TEST(SkipListMap_rcu_gpb_less_pascal)\
310     CPPUNIT_TEST(SkipListMap_rcu_gpb_cmp_pascal_stat)\
311     CPPUNIT_TEST(SkipListMap_rcu_gpb_less_xorshift)\
312     CPPUNIT_TEST(SkipListMap_rcu_gpb_cmp_xorshift_stat)\
313     CPPUNIT_TEST(SkipListMap_rcu_gpt_less_pascal)\
314     CPPUNIT_TEST(SkipListMap_rcu_gpt_cmp_pascal_stat)\
315     CPPUNIT_TEST(SkipListMap_rcu_gpt_less_xorshift)\
316     CPPUNIT_TEST(SkipListMap_rcu_gpt_cmp_xorshift_stat)\
317     CDSUNIT_TEST_SkipListMap_RCU_signal
318
319 #define CDSUNIT_DECLARE_SkipListMap_nogc \
320     TEST_MAP_NOLF(SkipListMap_nogc_less_pascal)\
321     TEST_MAP_NOLF(SkipListMap_nogc_cmp_pascal_stat)\
322     TEST_MAP_NOLF(SkipListMap_nogc_less_xorshift)\
323     TEST_MAP_NOLF(SkipListMap_nogc_cmp_xorshift_stat)
324
325 #define CDSUNIT_TEST_SkipListMap_nogc \
326     CPPUNIT_TEST(SkipListMap_nogc_less_pascal)\
327     CPPUNIT_TEST(SkipListMap_nogc_cmp_pascal_stat)\
328     CPPUNIT_TEST(SkipListMap_nogc_less_xorshift)\
329     CPPUNIT_TEST(SkipListMap_nogc_cmp_xorshift_stat)
330
331 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
332 #   define CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal \
333     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_rcu_shb)\
334     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_rcu_shb_stat)\
335     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_rcu_sht)\
336     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_rcu_sht_stat)
337
338 #   define CDSUNIT_TEST_EllenBinTreeMap_RCU_signal \
339     CPPUNIT_TEST(EllenBinTreeMap_rcu_shb)\
340     CPPUNIT_TEST(EllenBinTreeMap_rcu_shb_stat)\
341     CPPUNIT_TEST(EllenBinTreeMap_rcu_sht)\
342     CPPUNIT_TEST(EllenBinTreeMap_rcu_sht_stat)
343 #else
344 #   define CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal
345 #   define CDSUNIT_TEST_EllenBinTreeMap_RCU_signal
346 #endif
347
348 #define CDSUNIT_DECLARE_EllenBinTreeMap \
349     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_hp)\
350     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_hp_stat)\
351     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_ptb)\
352     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_ptb_stat)\
353     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_rcu_gpi)\
354     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_rcu_gpi_stat)\
355     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_rcu_gpb)\
356     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_rcu_gpb_stat)\
357     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_rcu_gpt)\
358     TEST_MAP_NOLF_EXTRACT(EllenBinTreeMap_rcu_gpt_stat)\
359     CDSUNIT_DECLARE_EllenBinTreeMap_RCU_signal
360
361 #define CDSUNIT_TEST_EllenBinTreeMap \
362     CPPUNIT_TEST(EllenBinTreeMap_hp)\
363     CPPUNIT_TEST(EllenBinTreeMap_hp_stat)\
364     CPPUNIT_TEST(EllenBinTreeMap_ptb)\
365     CPPUNIT_TEST(EllenBinTreeMap_ptb_stat)\
366     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpi)\
367     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpi_stat)\
368     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb)\
369     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpb_stat)\
370     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpt)\
371     CPPUNIT_TEST(EllenBinTreeMap_rcu_gpt_stat)\
372     CDSUNIT_TEST_EllenBinTreeMap_RCU_signal
373
374
375 #define CDSUNIT_DECLARE_StripedMap_common \
376     TEST_MAP(StripedMap_list) \
377     TEST_MAP(StripedMap_map) \
378     TEST_MAP(StripedMap_hashmap) \
379     TEST_MAP(StripedMap_boost_unordered_map)
380
381 #define CDSUNIT_TEST_StripedMap_common \
382     CPPUNIT_TEST(StripedMap_list) \
383     CPPUNIT_TEST(StripedMap_map) \
384     CPPUNIT_TEST(StripedMap_hashmap) \
385     CPPUNIT_TEST(StripedMap_boost_unordered_map)
386
387 #if BOOST_VERSION >= 104800
388 #   define CDSUNIT_DECLARE_StripedMap_boost_container \
389         TEST_MAP(StripedMap_boost_list) \
390         TEST_MAP(StripedMap_slist) \
391         TEST_MAP(StripedMap_boost_map)
392 #   define CDSUNIT_TEST_StripedMap_boost_container \
393         CPPUNIT_TEST(StripedMap_boost_list) \
394         CPPUNIT_TEST(StripedMap_slist) \
395         CPPUNIT_TEST(StripedMap_boost_map)
396 #else
397 #   define CDSUNIT_DECLARE_StripedMap_boost_container
398 #   define CDSUNIT_TEST_StripedMap_boost_container
399 #endif
400
401 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
402 #   define CDSUNIT_DECLARE_StripedMap_boost_flat_container \
403         TEST_MAP(StripedMap_boost_flat_map)
404 #   define CDSUNIT_TEST_StripedMap_boost_flat_container \
405         CPPUNIT_TEST(StripedMap_boost_flat_map)
406 #else
407 #   define CDSUNIT_DECLARE_StripedMap_boost_flat_container
408 #   define CDSUNIT_TEST_StripedMap_boost_flat_container
409 #endif
410
411 #define CDSUNIT_DECLARE_StripedMap \
412     CDSUNIT_DECLARE_StripedMap_common \
413     CDSUNIT_DECLARE_StripedMap_boost_container \
414     CDSUNIT_DECLARE_StripedMap_boost_flat_container
415 #define CDSUNIT_TEST_StripedMap \
416     CDSUNIT_TEST_StripedMap_common \
417     CDSUNIT_TEST_StripedMap_boost_container \
418     CDSUNIT_TEST_StripedMap_boost_flat_container
419
420
421
422 #define CDSUNIT_DECLARE_RefinableMap_common \
423     TEST_MAP(RefinableMap_list) \
424     TEST_MAP(RefinableMap_map) \
425     TEST_MAP(RefinableMap_hashmap) \
426     TEST_MAP(RefinableMap_boost_unordered_map)
427 #define CDSUNIT_TEST_RefinableMap_common \
428     CPPUNIT_TEST(RefinableMap_list) \
429     CPPUNIT_TEST(RefinableMap_map) \
430     CPPUNIT_TEST(RefinableMap_hashmap) \
431     CPPUNIT_TEST(RefinableMap_boost_unordered_map)
432
433 #if BOOST_VERSION >= 104800
434 #   define CDSUNIT_DECLARE_RefinableMap_boost_container \
435         TEST_MAP(RefinableMap_boost_list) \
436         TEST_MAP(RefinableMap_slist) \
437         TEST_MAP(RefinableMap_boost_map)
438 #   define CDSUNIT_TEST_RefinableMap_boost_container \
439         CPPUNIT_TEST(RefinableMap_boost_list) \
440         CPPUNIT_TEST(RefinableMap_slist) \
441         CPPUNIT_TEST(RefinableMap_boost_map)
442 #else
443 #   define CDSUNIT_DECLARE_RefinableMap_boost_container
444 #   define CDSUNIT_TEST_RefinableMap_boost_container
445 #endif
446
447 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
448 #   define CDSUNIT_DECLARE_RefinableMap_boost_flat_container \
449         TEST_MAP(RefinableMap_boost_flat_map)
450 #   define CDSUNIT_TEST_RefinableMap_boost_flat_container \
451         CPPUNIT_TEST(RefinableMap_boost_flat_map)
452 #else
453 #   define CDSUNIT_DECLARE_RefinableMap_boost_flat_container
454 #   define CDSUNIT_TEST_RefinableMap_boost_flat_container
455 #endif
456
457 #define CDSUNIT_DECLARE_RefinableMap \
458     CDSUNIT_DECLARE_RefinableMap_common \
459     CDSUNIT_DECLARE_RefinableMap_boost_container \
460     CDSUNIT_DECLARE_RefinableMap_boost_flat_container
461 #define CDSUNIT_TEST_RefinableMap \
462     CDSUNIT_TEST_RefinableMap_common \
463     CDSUNIT_TEST_RefinableMap_boost_container \
464     CDSUNIT_TEST_RefinableMap_boost_flat_container
465
466 #define CDSUNIT_DECLARE_CuckooMap \
467     TEST_MAP(CuckooStripedMap_list_unord)\
468     TEST_MAP(CuckooStripedMap_list_ord)\
469     TEST_MAP(CuckooStripedMap_vector_unord)\
470     TEST_MAP(CuckooStripedMap_vector_ord)\
471     TEST_MAP(CuckooStripedMap_list_unord_stat)\
472     TEST_MAP(CuckooStripedMap_list_ord_stat)\
473     TEST_MAP(CuckooStripedMap_vector_unord_stat)\
474     TEST_MAP(CuckooStripedMap_vector_ord_stat)\
475     TEST_MAP(CuckooRefinableMap_list_unord)\
476     TEST_MAP(CuckooRefinableMap_list_ord)\
477     TEST_MAP(CuckooRefinableMap_vector_unord)\
478     TEST_MAP(CuckooRefinableMap_vector_ord) \
479     TEST_MAP(CuckooRefinableMap_list_unord_stat)\
480     TEST_MAP(CuckooRefinableMap_list_ord_stat)\
481     TEST_MAP(CuckooRefinableMap_vector_unord_stat)\
482     TEST_MAP(CuckooRefinableMap_vector_ord_stat) \
483     TEST_MAP(CuckooStripedMap_list_unord_storehash)\
484     TEST_MAP(CuckooStripedMap_list_ord_storehash)\
485     TEST_MAP(CuckooStripedMap_vector_unord_storehash)\
486     TEST_MAP(CuckooStripedMap_vector_ord_storehash)\
487     TEST_MAP(CuckooRefinableMap_list_unord_storehash)\
488     TEST_MAP(CuckooRefinableMap_list_ord_storehash)\
489     TEST_MAP(CuckooRefinableMap_vector_unord_storehash)\
490     TEST_MAP(CuckooRefinableMap_vector_ord_storehash)
491
492 #define CDSUNIT_TEST_CuckooMap \
493     CPPUNIT_TEST(CuckooStripedMap_list_unord)\
494     CPPUNIT_TEST(CuckooStripedMap_list_unord_stat)\
495     CPPUNIT_TEST(CuckooStripedMap_list_unord_storehash)\
496     CPPUNIT_TEST(CuckooStripedMap_list_ord)\
497     CPPUNIT_TEST(CuckooStripedMap_list_ord_stat)\
498     CPPUNIT_TEST(CuckooStripedMap_list_ord_storehash)\
499     CPPUNIT_TEST(CuckooStripedMap_vector_unord)\
500     CPPUNIT_TEST(CuckooStripedMap_vector_unord_stat)\
501     CPPUNIT_TEST(CuckooStripedMap_vector_unord_storehash)\
502     CPPUNIT_TEST(CuckooStripedMap_vector_ord)\
503     CPPUNIT_TEST(CuckooStripedMap_vector_ord_stat)\
504     CPPUNIT_TEST(CuckooStripedMap_vector_ord_storehash)\
505     CPPUNIT_TEST(CuckooRefinableMap_list_unord)\
506     CPPUNIT_TEST(CuckooRefinableMap_list_unord_stat)\
507     CPPUNIT_TEST(CuckooRefinableMap_list_unord_storehash)\
508     CPPUNIT_TEST(CuckooRefinableMap_list_ord)\
509     CPPUNIT_TEST(CuckooRefinableMap_list_ord_stat)\
510     CPPUNIT_TEST(CuckooRefinableMap_list_ord_storehash)\
511     CPPUNIT_TEST(CuckooRefinableMap_vector_unord)\
512     CPPUNIT_TEST(CuckooRefinableMap_vector_unord_stat)\
513     CPPUNIT_TEST(CuckooRefinableMap_vector_unord_storehash)\
514     CPPUNIT_TEST(CuckooRefinableMap_vector_ord)\
515     CPPUNIT_TEST(CuckooRefinableMap_vector_ord_stat)\
516     CPPUNIT_TEST(CuckooRefinableMap_vector_ord_storehash)
517
518 #endif // #ifndef _CDSUNIT_MAP2_MAP_DEFS_H