Move libcds 1.6.0 from SVN
[libcds.git] / tests / test-hdr / map / hdr_skiplist_map_rcu_gpi.cpp
1 //$$CDS-header$$
2
3 #include "map/hdr_skiplist_map_rcu.h"
4
5 #include <cds/urcu/general_instant.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     namespace {
13         typedef cds::urcu::gc< cds::urcu::general_instant<> > rcu_type;
14     }
15
16     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_less()
17     {
18         typedef cc::SkipListMap< rcu_type, key_type, value_type,
19             cc::skip_list::make_traits<
20                 co::less< less >
21                 ,co::item_counter< simple_item_counter >
22             >::type
23         > set;
24         test< set, misc::print_skiplist_stat<set::stat> >();
25     }
26
27     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_cmp()
28     {
29         typedef cc::SkipListMap< rcu_type, key_type, value_type,
30             cc::skip_list::make_traits<
31                 co::compare< cmp >
32                 ,co::item_counter< simple_item_counter >
33             >::type
34         > set;
35         test< set, misc::print_skiplist_stat<set::stat> >();
36     }
37
38     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_cmpless()
39     {
40         typedef cc::SkipListMap< rcu_type, key_type, value_type,
41             cc::skip_list::make_traits<
42                 co::less< less >
43                 ,co::compare< cmp >
44                 ,co::item_counter< simple_item_counter >
45             >::type
46         > set;
47         test< set, misc::print_skiplist_stat<set::stat> >();
48     }
49
50     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_less_stat()
51     {
52         typedef cc::SkipListMap< rcu_type, key_type, value_type,
53             cc::skip_list::make_traits<
54                 co::less< less >
55                 ,co::item_counter< simple_item_counter >
56                 ,co::stat< cc::skip_list::stat<> >
57             >::type
58         > set;
59         test< set, misc::print_skiplist_stat<set::stat> >();
60     }
61
62     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_cmp_stat()
63     {
64         typedef cc::SkipListMap< rcu_type, key_type, value_type,
65             cc::skip_list::make_traits<
66                 co::compare< cmp >
67                 ,co::item_counter< simple_item_counter >
68                 ,co::stat< cc::skip_list::stat<> >
69             >::type
70         > set;
71         test< set, misc::print_skiplist_stat<set::stat> >();
72     }
73
74     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_cmpless_stat()
75     {
76         typedef cc::SkipListMap< rcu_type, key_type, value_type,
77             cc::skip_list::make_traits<
78                 co::less< less >
79                 ,co::compare< cmp >
80                 ,co::item_counter< simple_item_counter >
81                 ,co::stat< cc::skip_list::stat<> >
82             >::type
83         > set;
84         test< set, misc::print_skiplist_stat<set::stat> >();
85     }
86
87     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_xorshift_less()
88     {
89         typedef cc::SkipListMap< rcu_type, key_type, value_type,
90             cc::skip_list::make_traits<
91                 co::less< less >
92                 ,co::item_counter< simple_item_counter >
93                 ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
94             >::type
95         > set;
96         test< set, misc::print_skiplist_stat<set::stat> >();
97     }
98
99     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_xorshift_cmp()
100     {
101         typedef cc::SkipListMap< rcu_type, key_type, value_type,
102             cc::skip_list::make_traits<
103                 co::compare< cmp >
104                 ,co::item_counter< simple_item_counter >
105                 ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
106             >::type
107         > set;
108         test< set, misc::print_skiplist_stat<set::stat> >();
109     }
110
111     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_xorshift_cmpless()
112     {
113         typedef cc::SkipListMap< rcu_type, key_type, value_type,
114             cc::skip_list::make_traits<
115                 co::less< less >
116                 ,co::compare< cmp >
117                 ,co::item_counter< simple_item_counter >
118                 ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
119             >::type
120         > set;
121         test< set, misc::print_skiplist_stat<set::stat> >();
122     }
123
124     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_xorshift_less_stat()
125     {
126         typedef cc::SkipListMap< rcu_type, key_type, value_type,
127             cc::skip_list::make_traits<
128                 co::less< less >
129                 ,co::item_counter< simple_item_counter >
130                 ,co::stat< cc::skip_list::stat<> >
131                 ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
132             >::type
133         > set;
134         test< set, misc::print_skiplist_stat<set::stat> >();
135     }
136
137     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_xorshift_cmp_stat()
138     {
139         typedef cc::SkipListMap< rcu_type, key_type, value_type,
140             cc::skip_list::make_traits<
141                 co::compare< cmp >
142                 ,co::item_counter< simple_item_counter >
143                 ,co::stat< cc::skip_list::stat<> >
144                 ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
145             >::type
146         > set;
147         test< set, misc::print_skiplist_stat<set::stat> >();
148     }
149
150     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_xorshift_cmpless_stat()
151     {
152         typedef cc::SkipListMap< rcu_type, key_type, value_type,
153             cc::skip_list::make_traits<
154                 co::less< less >
155                 ,co::compare< cmp >
156                 ,co::item_counter< simple_item_counter >
157                 ,co::stat< cc::skip_list::stat<> >
158                 ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
159             >::type
160         > set;
161         test< set, misc::print_skiplist_stat<set::stat> >();
162     }
163
164     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_turbopas_less()
165     {
166         typedef cc::SkipListMap< rcu_type, key_type, value_type,
167             cc::skip_list::make_traits<
168                 co::less< less >
169                 ,co::item_counter< simple_item_counter >
170                 ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
171             >::type
172         > set;
173         test< set, misc::print_skiplist_stat<set::stat> >();
174     }
175
176     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_turbopas_cmp()
177     {
178         typedef cc::SkipListMap< rcu_type, key_type, value_type,
179             cc::skip_list::make_traits<
180                 co::compare< cmp >
181                 ,co::item_counter< simple_item_counter >
182                 ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
183             >::type
184         > set;
185         test< set, misc::print_skiplist_stat<set::stat> >();
186     }
187
188     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_turbopas_cmpless()
189     {
190         typedef cc::SkipListMap< rcu_type, key_type, value_type,
191             cc::skip_list::make_traits<
192                 co::less< less >
193                 ,co::compare< cmp >
194                 ,co::item_counter< simple_item_counter >
195                 ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
196             >::type
197         > set;
198         test< set, misc::print_skiplist_stat<set::stat> >();
199     }
200
201     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_turbopas_less_stat()
202     {
203         typedef cc::SkipListMap< rcu_type, key_type, value_type,
204             cc::skip_list::make_traits<
205                 co::less< less >
206                 ,co::item_counter< simple_item_counter >
207                 ,co::stat< cc::skip_list::stat<> >
208                 ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
209             >::type
210         > set;
211         test< set, misc::print_skiplist_stat<set::stat> >();
212     }
213
214     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_turbopas_cmp_stat()
215     {
216         typedef cc::SkipListMap< rcu_type, key_type, value_type,
217             cc::skip_list::make_traits<
218                 co::compare< cmp >
219                 ,co::item_counter< simple_item_counter >
220                 ,co::stat< cc::skip_list::stat<> >
221                 ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
222             >::type
223         > set;
224         test< set, misc::print_skiplist_stat<set::stat> >();
225     }
226
227     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_turbopas_cmpless_stat()
228     {
229         typedef cc::SkipListMap< rcu_type, key_type, value_type,
230             cc::skip_list::make_traits<
231                 co::less< less >
232                 ,co::compare< cmp >
233                 ,co::item_counter< simple_item_counter >
234                 ,co::stat< cc::skip_list::stat<> >
235                 ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
236             >::type
237         > set;
238         test< set, misc::print_skiplist_stat<set::stat> >();
239     }
240
241     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_michaelalloc_less()
242     {
243         typedef cc::SkipListMap< rcu_type, key_type, value_type,
244             cc::skip_list::make_traits<
245                 co::less< less >
246                 ,co::item_counter< simple_item_counter >
247                 ,co::allocator< memory::MichaelAllocator<int> >
248             >::type
249         > set;
250         test< set, misc::print_skiplist_stat<set::stat> >();
251     }
252
253     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_michaelalloc_cmp()
254     {
255             typedef cc::SkipListMap< rcu_type, key_type, value_type,
256                 cc::skip_list::make_traits<
257                     co::compare< cmp >
258                     ,co::item_counter< simple_item_counter >
259                     ,co::allocator< memory::MichaelAllocator<int> >
260                 >::type
261             > set;
262             test< set, misc::print_skiplist_stat<set::stat> >();
263     }
264
265     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_michaelalloc_cmpless()
266     {
267         typedef cc::SkipListMap< rcu_type, key_type, value_type,
268             cc::skip_list::make_traits<
269                 co::less< less >
270                 ,co::compare< cmp >
271                 ,co::item_counter< simple_item_counter >
272                 ,co::allocator< memory::MichaelAllocator<int> >
273             >::type
274         > set;
275         test< set, misc::print_skiplist_stat<set::stat> >();
276     }
277
278     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_michaelalloc_less_stat()
279     {
280         typedef cc::SkipListMap< rcu_type, key_type, value_type,
281             cc::skip_list::make_traits<
282                 co::less< less >
283                 ,co::item_counter< simple_item_counter >
284                 ,co::stat< cc::skip_list::stat<> >
285                 ,co::allocator< memory::MichaelAllocator<int> >
286             >::type
287         > set;
288         test< set, misc::print_skiplist_stat<set::stat> >();
289     }
290
291     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_michaelalloc_cmp_stat()
292     {
293         typedef cc::SkipListMap< rcu_type, key_type, value_type,
294             cc::skip_list::make_traits<
295                 co::compare< cmp >
296                 ,co::item_counter< simple_item_counter >
297                 ,co::stat< cc::skip_list::stat<> >
298                 ,co::allocator< memory::MichaelAllocator<int> >
299             >::type
300         > set;
301         test< set, misc::print_skiplist_stat<set::stat> >();
302     }
303
304     void SkipListMapRCUHdrTest::SkipList_RCU_GPI_michaelalloc_cmpless_stat()
305     {
306         typedef cc::SkipListMap< rcu_type, key_type, value_type,
307             cc::skip_list::make_traits<
308                 co::less< less >
309                 ,co::compare< cmp >
310                 ,co::item_counter< simple_item_counter >
311                 ,co::stat< cc::skip_list::stat<> >
312                 ,co::allocator< memory::MichaelAllocator<int> >
313             >::type
314         > set;
315         test< set, misc::print_skiplist_stat<set::stat> >();
316     }
317 } // namespace map
318
319 CPPUNIT_TEST_SUITE_REGISTRATION(map::SkipListMapRCUHdrTest);