fefafa92300e5ed557c300a319848225e6b73380
[libcds.git] / tests / test-hdr / set / hdr_skiplist_set_rcu_gpb.cpp
1 //$$CDS-header$$
2
3 #include "set/hdr_skiplist_set_rcu.h"
4
5 #include <cds/urcu/general_buffered.h>
6 #include <cds/container/skip_list_set_rcu.h>
7
8 #include "unit/michael_alloc.h"
9 #include "map/print_skiplist_stat.h"
10
11 namespace set {
12     namespace {
13         typedef cds::urcu::gc< cds::urcu::general_buffered<> > rcu_type;
14     }
15
16     void SkipListSetRCUHdrTest::SkipList_RCU_GPB_less()
17     {
18         typedef cc::SkipListSet< rcu_type, item,
19             cc::skip_list::make_traits<
20                 co::less< less<item > >
21                 ,co::item_counter< simple_item_counter >
22             >::type
23         > set;
24         test< set, misc::print_skiplist_stat<set::stat> >();
25     }
26
27     void SkipListSetRCUHdrTest::SkipList_RCU_GPB_cmp()
28     {
29         typedef cc::SkipListSet< rcu_type, item,
30             cc::skip_list::make_traits<
31             co::compare< cmp<item > >
32             ,co::item_counter< simple_item_counter >
33             >::type
34         > set;
35         test< set, misc::print_skiplist_stat<set::stat> >();
36     }
37
38     void SkipListSetRCUHdrTest::SkipList_RCU_GPB_cmpless()
39     {
40         typedef cc::SkipListSet< rcu_type, item,
41             cc::skip_list::make_traits<
42             co::less< less<item > >
43             ,co::compare< cmp<item > >
44             ,co::item_counter< simple_item_counter >
45             >::type
46         > set;
47         test< set, misc::print_skiplist_stat<set::stat> >();
48     }
49
50     void SkipListSetRCUHdrTest::SkipList_RCU_GPB_less_stat()
51     {
52         typedef cc::SkipListSet< rcu_type, item,
53             cc::skip_list::make_traits<
54                 co::less< less<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_cmp_stat()
63     {
64         typedef cc::SkipListSet< rcu_type, item,
65             cc::skip_list::make_traits<
66                 co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_cmpless_stat()
75     {
76         typedef cc::SkipListSet< rcu_type, item,
77             cc::skip_list::make_traits<
78                 co::less< less<item > >
79                 ,co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_xorshift_less()
88     {
89         typedef cc::SkipListSet< rcu_type, item,
90             cc::skip_list::make_traits<
91                 co::less< less<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_xorshift_cmp()
100     {
101         typedef cc::SkipListSet< rcu_type, item,
102             cc::skip_list::make_traits<
103                 co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_xorshift_cmpless()
112     {
113         typedef cc::SkipListSet< rcu_type, item,
114             cc::skip_list::make_traits<
115                 co::less< less<item > >
116                 ,co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_xorshift_less_stat()
125     {
126         typedef cc::SkipListSet< rcu_type, item,
127             cc::skip_list::make_traits<
128                 co::less< less<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_xorshift_cmp_stat()
138     {
139         typedef cc::SkipListSet< rcu_type, item,
140             cc::skip_list::make_traits<
141                 co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_xorshift_cmpless_stat()
151     {
152         typedef cc::SkipListSet< rcu_type, item,
153             cc::skip_list::make_traits<
154                 co::less< less<item > >
155                 ,co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_turbopas_less()
165     {
166         typedef cc::SkipListSet< rcu_type, item,
167             cc::skip_list::make_traits<
168                 co::less< less<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_turbopas_cmp()
177     {
178         typedef cc::SkipListSet< rcu_type, item,
179             cc::skip_list::make_traits<
180                 co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_turbopas_cmpless()
189     {
190         typedef cc::SkipListSet< rcu_type, item,
191             cc::skip_list::make_traits<
192                 co::less< less<item > >
193                 ,co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_turbopas_less_stat()
202     {
203         typedef cc::SkipListSet< rcu_type, item,
204             cc::skip_list::make_traits<
205                 co::less< less<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_turbopas_cmp_stat()
215     {
216         typedef cc::SkipListSet< rcu_type, item,
217             cc::skip_list::make_traits<
218                 co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_turbopas_cmpless_stat()
228     {
229         typedef cc::SkipListSet< rcu_type, item,
230             cc::skip_list::make_traits<
231                 co::less< less<item > >
232                 ,co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_michaelalloc_less()
242     {
243         typedef cc::SkipListSet< rcu_type, item,
244             cc::skip_list::make_traits<
245                 co::less< less<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_michaelalloc_cmp()
254     {
255         typedef cc::SkipListSet< rcu_type, item,
256             cc::skip_list::make_traits<
257                 co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_michaelalloc_cmpless()
266     {
267         typedef cc::SkipListSet< rcu_type, item,
268             cc::skip_list::make_traits<
269                 co::less< less<item > >
270                 ,co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_michaelalloc_less_stat()
279     {
280         typedef cc::SkipListSet< rcu_type, item,
281             cc::skip_list::make_traits<
282                 co::less< less<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_michaelalloc_cmp_stat()
292     {
293         typedef cc::SkipListSet< rcu_type, item,
294             cc::skip_list::make_traits<
295                 co::compare< cmp<item > >
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 SkipListSetRCUHdrTest::SkipList_RCU_GPB_michaelalloc_cmpless_stat()
305     {
306         typedef cc::SkipListSet< rcu_type, item,
307             cc::skip_list::make_traits<
308                 co::less< less<item > >
309                 ,co::compare< cmp<item > >
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 set