3 #include "set/hdr_intrusive_skiplist_set.h"
5 #include <cds/intrusive/skip_list_hp.h>
6 #include "map/print_skiplist_stat.h"
10 void IntrusiveSkipListSet::skiplist_hp_base_cmp()
12 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
14 typedef ci::SkipListSet< cds::gc::HP, item,
15 ci::skip_list::make_traits<
16 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
17 ,co::compare< cmp<item> >
18 ,ci::opt::disposer< faked_disposer >
19 ,co::item_counter< cds::atomicity::item_counter >
23 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
26 void IntrusiveSkipListSet::skiplist_hp_base_less()
28 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
30 typedef ci::SkipListSet< cds::gc::HP, item,
31 ci::skip_list::make_traits<
32 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
33 ,co::less< less<item> >
34 ,ci::opt::disposer< faked_disposer >
35 ,co::item_counter< cds::atomicity::item_counter >
39 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
42 void IntrusiveSkipListSet::skiplist_hp_base_cmpmix()
44 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
46 typedef ci::SkipListSet< cds::gc::HP, item,
47 ci::skip_list::make_traits<
48 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
49 ,co::less< less<item> >
50 ,ci::opt::disposer< faked_disposer >
51 ,co::compare< cmp<item> >
52 ,co::item_counter< cds::atomicity::item_counter >
56 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
59 void IntrusiveSkipListSet::skiplist_hp_base_cmp_stat()
61 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
63 typedef ci::SkipListSet< cds::gc::HP, item,
64 ci::skip_list::make_traits<
65 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
66 ,co::compare< cmp<item> >
67 ,ci::opt::disposer< faked_disposer >
68 ,co::stat< ci::skip_list::stat<> >
69 ,co::item_counter< cds::atomicity::item_counter >
73 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
76 void IntrusiveSkipListSet::skiplist_hp_base_less_stat()
78 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
80 typedef ci::SkipListSet< cds::gc::HP, item,
81 ci::skip_list::make_traits<
82 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
83 ,co::less< less<item> >
84 ,ci::opt::disposer< faked_disposer >
85 ,co::stat< ci::skip_list::stat<> >
86 ,co::item_counter< cds::atomicity::item_counter >
90 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
93 void IntrusiveSkipListSet::skiplist_hp_base_cmpmix_stat()
95 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
97 typedef ci::SkipListSet< cds::gc::HP, item,
98 ci::skip_list::make_traits<
99 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
100 ,co::less< less<item> >
101 ,ci::opt::disposer< faked_disposer >
102 ,co::compare< cmp<item> >
103 ,co::stat< ci::skip_list::stat<> >
104 ,co::item_counter< cds::atomicity::item_counter >
108 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
111 void IntrusiveSkipListSet::skiplist_hp_base_cmp_xorshift()
113 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
115 typedef ci::SkipListSet< cds::gc::HP, item,
116 ci::skip_list::make_traits<
117 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
118 ,co::compare< cmp<item> >
119 ,ci::opt::disposer< faked_disposer >
120 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
121 ,co::item_counter< cds::atomicity::item_counter >
125 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
128 void IntrusiveSkipListSet::skiplist_hp_base_less_xorshift()
130 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
132 typedef ci::SkipListSet< cds::gc::HP, item,
133 ci::skip_list::make_traits<
134 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
135 ,co::less< less<item> >
136 ,ci::opt::disposer< faked_disposer >
137 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
138 ,co::item_counter< cds::atomicity::item_counter >
142 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
145 void IntrusiveSkipListSet::skiplist_hp_base_cmpmix_xorshift()
147 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
149 typedef ci::SkipListSet< cds::gc::HP, item,
150 ci::skip_list::make_traits<
151 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
152 ,co::less< less<item> >
153 ,ci::opt::disposer< faked_disposer >
154 ,co::compare< cmp<item> >
155 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
156 ,co::item_counter< cds::atomicity::item_counter >
160 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
163 void IntrusiveSkipListSet::skiplist_hp_base_cmp_xorshift_stat()
165 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
167 typedef ci::SkipListSet< cds::gc::HP, item,
168 ci::skip_list::make_traits<
169 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
170 ,co::compare< cmp<item> >
171 ,ci::opt::disposer< faked_disposer >
172 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
173 ,co::stat< ci::skip_list::stat<> >
174 ,co::item_counter< cds::atomicity::item_counter >
178 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
181 void IntrusiveSkipListSet::skiplist_hp_base_less_xorshift_stat()
183 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
185 typedef ci::SkipListSet< cds::gc::HP, item,
186 ci::skip_list::make_traits<
187 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
188 ,co::less< less<item> >
189 ,ci::opt::disposer< faked_disposer >
190 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
191 ,co::stat< ci::skip_list::stat<> >
192 ,co::item_counter< cds::atomicity::item_counter >
196 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
199 void IntrusiveSkipListSet::skiplist_hp_base_cmpmix_xorshift_stat()
201 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
203 typedef ci::SkipListSet< cds::gc::HP, item,
204 ci::skip_list::make_traits<
205 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
206 ,co::less< less<item> >
207 ,ci::opt::disposer< faked_disposer >
208 ,co::compare< cmp<item> >
209 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
210 ,co::stat< ci::skip_list::stat<> >
211 ,co::item_counter< cds::atomicity::item_counter >
215 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
220 void IntrusiveSkipListSet::skiplist_hp_base_cmp_pascal()
222 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
224 typedef ci::SkipListSet< cds::gc::HP, item,
225 ci::skip_list::make_traits<
226 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
227 ,co::compare< cmp<item> >
228 ,ci::opt::disposer< faked_disposer >
229 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
230 ,co::item_counter< cds::atomicity::item_counter >
234 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
237 void IntrusiveSkipListSet::skiplist_hp_base_less_pascal()
239 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
241 typedef ci::SkipListSet< cds::gc::HP, item,
242 ci::skip_list::make_traits<
243 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
244 ,co::less< less<item> >
245 ,ci::opt::disposer< faked_disposer >
246 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
247 ,co::item_counter< cds::atomicity::item_counter >
251 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
254 void IntrusiveSkipListSet::skiplist_hp_base_cmpmix_pascal()
256 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
258 typedef ci::SkipListSet< cds::gc::HP, item,
259 ci::skip_list::make_traits<
260 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
261 ,co::less< less<item> >
262 ,ci::opt::disposer< faked_disposer >
263 ,co::compare< cmp<item> >
264 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
265 ,co::item_counter< cds::atomicity::item_counter >
269 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
272 void IntrusiveSkipListSet::skiplist_hp_base_cmp_pascal_stat()
274 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
276 typedef ci::SkipListSet< cds::gc::HP, item,
277 ci::skip_list::make_traits<
278 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
279 ,co::compare< cmp<item> >
280 ,ci::opt::disposer< faked_disposer >
281 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
282 ,co::stat< ci::skip_list::stat<> >
283 ,co::item_counter< cds::atomicity::item_counter >
287 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
290 void IntrusiveSkipListSet::skiplist_hp_base_less_pascal_stat()
292 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
294 typedef ci::SkipListSet< cds::gc::HP, item,
295 ci::skip_list::make_traits<
296 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
297 ,co::less< less<item> >
298 ,ci::opt::disposer< faked_disposer >
299 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
300 ,co::stat< ci::skip_list::stat<> >
301 ,co::item_counter< cds::atomicity::item_counter >
305 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
308 void IntrusiveSkipListSet::skiplist_hp_base_cmpmix_pascal_stat()
310 typedef base_int_item< ci::skip_list::node< cds::gc::HP> > item;
312 typedef ci::SkipListSet< cds::gc::HP, item,
313 ci::skip_list::make_traits<
314 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::HP> > >
315 ,co::less< less<item> >
316 ,ci::opt::disposer< faked_disposer >
317 ,co::compare< cmp<item> >
318 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
319 ,co::stat< ci::skip_list::stat<> >
320 ,co::item_counter< cds::atomicity::item_counter >
324 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
329 CPPUNIT_TEST_SUITE_REGISTRATION(set::IntrusiveSkipListSet);