Move libcds 1.6.0 from SVN
[libcds.git] / tests / test-hdr / map / hdr_skiplist_map_rcu_shb.cpp
1 //$$CDS-header$$
2
3 #include "map/hdr_skiplist_map_rcu.h"
4
5 #include <cds/urcu/signal_buffered.h>
6 #include <cds/container/skip_list_map_rcu.h>
7
8 #include "unit/michael_alloc.h"
9 #include "map/print_skiplist_stat.h"
10
11 namespace map {
12 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
13     namespace {
14         typedef cds::urcu::gc< cds::urcu::signal_buffered<> > rcu_type;
15     }
16 #endif
17
18     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_less()
19     {
20 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
21         typedef cc::SkipListMap< rcu_type, key_type, value_type,
22             cc::skip_list::make_traits<
23                 co::less< less >
24                 ,co::item_counter< simple_item_counter >
25             >::type
26         > set;
27         test< set, misc::print_skiplist_stat<set::stat> >();
28 #endif
29     }
30
31     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_cmp()
32     {
33 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
34         typedef cc::SkipListMap< rcu_type, key_type, value_type,
35             cc::skip_list::make_traits<
36                 co::compare< cmp >
37                 ,co::item_counter< simple_item_counter >
38             >::type
39         > set;
40         test< set, misc::print_skiplist_stat<set::stat> >();
41 #endif
42     }
43
44     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_cmpless()
45     {
46 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
47         typedef cc::SkipListMap< rcu_type, key_type, value_type,
48             cc::skip_list::make_traits<
49                 co::less< less >
50                 ,co::compare< cmp >
51                 ,co::item_counter< simple_item_counter >
52             >::type
53         > set;
54         test< set, misc::print_skiplist_stat<set::stat> >();
55 #endif
56     }
57
58     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_less_stat()
59     {
60 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
61         typedef cc::SkipListMap< rcu_type, key_type, value_type,
62             cc::skip_list::make_traits<
63                 co::less< less >
64                 ,co::item_counter< simple_item_counter >
65                 ,co::stat< cc::skip_list::stat<> >
66             >::type
67         > set;
68         test< set, misc::print_skiplist_stat<set::stat> >();
69 #endif
70     }
71
72     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_cmp_stat()
73     {
74 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
75         typedef cc::SkipListMap< rcu_type, key_type, value_type,
76             cc::skip_list::make_traits<
77                 co::compare< cmp >
78                 ,co::item_counter< simple_item_counter >
79                 ,co::stat< cc::skip_list::stat<> >
80             >::type
81         > set;
82         test< set, misc::print_skiplist_stat<set::stat> >();
83 #endif
84     }
85
86     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_cmpless_stat()
87     {
88 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
89         typedef cc::SkipListMap< rcu_type, key_type, value_type,
90             cc::skip_list::make_traits<
91                 co::less< less >
92                 ,co::compare< cmp >
93                 ,co::item_counter< simple_item_counter >
94                 ,co::stat< cc::skip_list::stat<> >
95             >::type
96         > set;
97         test< set, misc::print_skiplist_stat<set::stat> >();
98 #endif
99     }
100
101     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_xorshift_less()
102     {
103 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
104         typedef cc::SkipListMap< rcu_type, key_type, value_type,
105             cc::skip_list::make_traits<
106                 co::less< less >
107                 ,co::item_counter< simple_item_counter >
108                 ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
109             >::type
110         > set;
111         test< set, misc::print_skiplist_stat<set::stat> >();
112 #endif
113     }
114
115     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_xorshift_cmp()
116     {
117 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
118         typedef cc::SkipListMap< rcu_type, key_type, value_type,
119             cc::skip_list::make_traits<
120                 co::compare< cmp >
121                 ,co::item_counter< simple_item_counter >
122                 ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
123             >::type
124         > set;
125         test< set, misc::print_skiplist_stat<set::stat> >();
126 #endif
127     }
128
129     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_xorshift_cmpless()
130     {
131 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
132         typedef cc::SkipListMap< rcu_type, key_type, value_type,
133             cc::skip_list::make_traits<
134                 co::less< less >
135                 ,co::compare< cmp >
136                 ,co::item_counter< simple_item_counter >
137                 ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
138             >::type
139         > set;
140         test< set, misc::print_skiplist_stat<set::stat> >();
141 #endif
142     }
143
144     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_xorshift_less_stat()
145     {
146 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
147         typedef cc::SkipListMap< rcu_type, key_type, value_type,
148             cc::skip_list::make_traits<
149                 co::less< less >
150                 ,co::item_counter< simple_item_counter >
151                 ,co::stat< cc::skip_list::stat<> >
152                 ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
153             >::type
154         > set;
155         test< set, misc::print_skiplist_stat<set::stat> >();
156 #endif
157     }
158
159     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_xorshift_cmp_stat()
160     {
161 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
162         typedef cc::SkipListMap< rcu_type, key_type, value_type,
163             cc::skip_list::make_traits<
164                 co::compare< cmp >
165                 ,co::item_counter< simple_item_counter >
166                 ,co::stat< cc::skip_list::stat<> >
167                 ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
168             >::type
169         > set;
170         test< set, misc::print_skiplist_stat<set::stat> >();
171 #endif
172     }
173
174     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_xorshift_cmpless_stat()
175     {
176 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
177         typedef cc::SkipListMap< rcu_type, key_type, value_type,
178             cc::skip_list::make_traits<
179                 co::less< less >
180                 ,co::compare< cmp >
181                 ,co::item_counter< simple_item_counter >
182                 ,co::stat< cc::skip_list::stat<> >
183                 ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
184             >::type
185         > set;
186         test< set, misc::print_skiplist_stat<set::stat> >();
187 #endif
188     }
189
190     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_turbopas_less()
191     {
192 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
193         typedef cc::SkipListMap< rcu_type, key_type, value_type,
194             cc::skip_list::make_traits<
195                 co::less< less >
196                 ,co::item_counter< simple_item_counter >
197                 ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
198             >::type
199         > set;
200         test< set, misc::print_skiplist_stat<set::stat> >();
201 #endif
202     }
203
204     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_turbopas_cmp()
205     {
206 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
207         typedef cc::SkipListMap< rcu_type, key_type, value_type,
208             cc::skip_list::make_traits<
209                 co::compare< cmp >
210                 ,co::item_counter< simple_item_counter >
211                 ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
212             >::type
213         > set;
214         test< set, misc::print_skiplist_stat<set::stat> >();
215 #endif
216     }
217
218     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_turbopas_cmpless()
219     {
220 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
221         typedef cc::SkipListMap< rcu_type, key_type, value_type,
222             cc::skip_list::make_traits<
223                 co::less< less >
224                 ,co::compare< cmp >
225                 ,co::item_counter< simple_item_counter >
226                 ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
227             >::type
228         > set;
229         test< set, misc::print_skiplist_stat<set::stat> >();
230 #endif
231     }
232
233     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_turbopas_less_stat()
234     {
235 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
236         typedef cc::SkipListMap< rcu_type, key_type, value_type,
237             cc::skip_list::make_traits<
238                 co::less< less >
239                 ,co::item_counter< simple_item_counter >
240                 ,co::stat< cc::skip_list::stat<> >
241                 ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
242             >::type
243         > set;
244         test< set, misc::print_skiplist_stat<set::stat> >();
245 #endif
246     }
247
248     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_turbopas_cmp_stat()
249     {
250 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
251         typedef cc::SkipListMap< rcu_type, key_type, value_type,
252             cc::skip_list::make_traits<
253                 co::compare< cmp >
254                 ,co::item_counter< simple_item_counter >
255                 ,co::stat< cc::skip_list::stat<> >
256                 ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
257             >::type
258         > set;
259         test< set, misc::print_skiplist_stat<set::stat> >();
260 #endif
261     }
262
263     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_turbopas_cmpless_stat()
264     {
265 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
266         typedef cc::SkipListMap< rcu_type, key_type, value_type,
267             cc::skip_list::make_traits<
268                 co::less< less >
269                 ,co::compare< cmp >
270                 ,co::item_counter< simple_item_counter >
271                 ,co::stat< cc::skip_list::stat<> >
272                 ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
273             >::type
274         > set;
275         test< set, misc::print_skiplist_stat<set::stat> >();
276 #endif
277     }
278
279     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_michaelalloc_less()
280     {
281 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
282         typedef cc::SkipListMap< rcu_type, key_type, value_type,
283             cc::skip_list::make_traits<
284                 co::less< less >
285                 ,co::item_counter< simple_item_counter >
286                 ,co::allocator< memory::MichaelAllocator<int> >
287             >::type
288         > set;
289         test< set, misc::print_skiplist_stat<set::stat> >();
290 #endif
291     }
292
293     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_michaelalloc_cmp()
294     {
295 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
296         typedef cc::SkipListMap< rcu_type, key_type, value_type,
297             cc::skip_list::make_traits<
298                 co::compare< cmp >
299                 ,co::item_counter< simple_item_counter >
300                 ,co::allocator< memory::MichaelAllocator<int> >
301             >::type
302         > set;
303         test< set, misc::print_skiplist_stat<set::stat> >();
304 #endif
305     }
306
307     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_michaelalloc_cmpless()
308     {
309 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
310         typedef cc::SkipListMap< rcu_type, key_type, value_type,
311             cc::skip_list::make_traits<
312                 co::less< less >
313                 ,co::compare< cmp >
314                 ,co::item_counter< simple_item_counter >
315                 ,co::allocator< memory::MichaelAllocator<int> >
316             >::type
317         > set;
318         test< set, misc::print_skiplist_stat<set::stat> >();
319 #endif
320     }
321
322     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_michaelalloc_less_stat()
323     {
324 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
325         typedef cc::SkipListMap< rcu_type, key_type, value_type,
326             cc::skip_list::make_traits<
327                 co::less< less >
328                 ,co::item_counter< simple_item_counter >
329                 ,co::stat< cc::skip_list::stat<> >
330                 ,co::allocator< memory::MichaelAllocator<int> >
331             >::type
332         > set;
333         test< set, misc::print_skiplist_stat<set::stat> >();
334 #endif
335     }
336
337     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_michaelalloc_cmp_stat()
338     {
339 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
340         typedef cc::SkipListMap< rcu_type, key_type, value_type,
341             cc::skip_list::make_traits<
342                 co::compare< cmp >
343                 ,co::item_counter< simple_item_counter >
344                 ,co::stat< cc::skip_list::stat<> >
345                 ,co::allocator< memory::MichaelAllocator<int> >
346             >::type
347         > set;
348         test< set, misc::print_skiplist_stat<set::stat> >();
349 #endif
350     }
351
352     void SkipListMapRCUHdrTest::SkipList_RCU_SHB_michaelalloc_cmpless_stat()
353     {
354 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
355         typedef cc::SkipListMap< rcu_type, key_type, value_type,
356             cc::skip_list::make_traits<
357                 co::less< less >
358                 ,co::compare< cmp >
359                 ,co::item_counter< simple_item_counter >
360                 ,co::stat< cc::skip_list::stat<> >
361                 ,co::allocator< memory::MichaelAllocator<int> >
362             >::type
363         > set;
364         test< set, misc::print_skiplist_stat<set::stat> >();
365 #endif
366     }
367
368 } // namespace map