3 #include "set/hdr_set.h"
7 class SkipListSetRCUHdrTest: public HashSetHdrTest
9 typedef HashSetHdrTest base_class;
11 typedef base_class::other_item wrapped_item;
12 typedef base_class::other_less wrapped_less;
14 template <class Set, typename PrintStat >
18 base_class::test_int_with( s );
20 static int const nLimit = 10000;
21 typedef typename Set::iterator set_iterator;
22 typedef typename Set::const_iterator const_set_iterator;
23 typedef typename Set::gc::scoped_lock rcu_lock;
28 int arrRandom[nLimit];
29 for ( int i = 0; i < nLimit; ++i )
31 std::random_shuffle( arrRandom, arrRandom + nLimit );
33 // Test iterator - ascending order
35 CPPUNIT_ASSERT( s.empty() );
37 for ( int i = 0; i < nLimit; ++i ) {
38 CPPUNIT_ASSERT( s.insert(i) );
40 CPPUNIT_MSG( PrintStat()(s, "Iterator test, ascending insert order") );
46 for ( set_iterator it = s.begin(), itEnd = s.end(); it != itEnd; ++it ) {
47 CPPUNIT_ASSERT( (*it).nKey == it->nVal );
48 CPPUNIT_ASSERT( s.find( it->nKey ));
49 it->nVal = (*it).nKey * 2;
51 if ( it != s.begin() ) {
52 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
57 CPPUNIT_ASSERT( nCount == nLimit );
62 for ( const_set_iterator it = s.cbegin(), itEnd = s.cend(); it != itEnd; ++it ) {
63 CPPUNIT_ASSERT( (*it).nKey * 2 == it->nVal );
65 if ( it != s.cbegin() ) {
66 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
71 CPPUNIT_ASSERT( nCount == nLimit );
73 // Test iterator - descending order
75 CPPUNIT_ASSERT( s.empty() );
77 for ( int i = nLimit; i > 0; --i ) {
78 CPPUNIT_ASSERT( s.insert( std::make_pair(i - 1, (i-1) * 2) ));
80 CPPUNIT_MSG( PrintStat()(s, "Iterator test, descending insert order") );
86 for ( set_iterator it = s.begin(), itEnd = s.end(); it != itEnd; ++it ) {
87 CPPUNIT_ASSERT( (*it).nKey * 2 == it->nVal );
88 CPPUNIT_ASSERT( s.find( it->nKey ));
89 it->nVal = (*it).nKey;
91 if ( it != s.begin() ) {
92 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
97 CPPUNIT_ASSERT( nCount == nLimit );
102 for ( const_set_iterator it = s.cbegin(), itEnd = s.cend(); it != itEnd; ++it ) {
103 CPPUNIT_ASSERT( (*it).nKey == it->nVal );
105 if ( it != s.cbegin() ) {
106 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
111 CPPUNIT_ASSERT( nCount == nLimit );
113 // Test iterator - random order
115 CPPUNIT_ASSERT( s.empty() );
117 for ( int i = 0; i < nLimit; ++i ) {
118 CPPUNIT_ASSERT( s.insert( arrRandom[i] ) );
120 CPPUNIT_MSG( PrintStat()(s, "Iterator test, random insert order") );
127 for ( set_iterator it = s.begin(), itEnd = s.end(); it != itEnd; ++it ) {
128 CPPUNIT_ASSERT( (*it).nKey == it->nVal );
129 CPPUNIT_ASSERT( s.find( it->nKey ));
130 it->nVal = (*it).nKey * 2;
132 if ( it != s.begin() ) {
133 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
138 CPPUNIT_ASSERT( nCount == nLimit );
143 for ( const_set_iterator it = s.cbegin(), itEnd = s.cend(); it != itEnd; ++it ) {
144 CPPUNIT_ASSERT( (*it).nKey * 2 == it->nVal );
146 if ( it != s.cbegin() ) {
147 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
152 CPPUNIT_ASSERT( nCount == nLimit );
156 typedef typename base_class::less<typename Set::value_type> less_predicate;
157 typename Set::value_type * pVal;
158 typename Set::exempt_ptr ep;
161 for ( int i = 0; i < nLimit; ++i ) {
162 int nKey = arrRandom[i];
165 pVal = s.get( nKey );
166 CPPUNIT_ASSERT( pVal != nullptr );
167 CPPUNIT_CHECK( pVal->nKey == nKey );
168 CPPUNIT_CHECK( pVal->nVal == nKey * 2 );
171 ep = s.extract( nKey );
172 CPPUNIT_ASSERT( ep );
173 CPPUNIT_ASSERT( !ep.empty() );
174 CPPUNIT_CHECK( ep->nKey == nKey );
175 CPPUNIT_CHECK( ep->nVal == nKey * 2 );
179 CPPUNIT_CHECK( s.get( nKey ) == nullptr );
181 ep = s.extract( nKey );
182 CPPUNIT_CHECK( !ep );
184 CPPUNIT_CHECK( s.empty());
186 // extract_with/get_with
187 for ( int i = 0; i < nLimit; ++i )
188 CPPUNIT_ASSERT( s.insert( arrRandom[i]) );
190 for ( int i = 0; i < nLimit; ++i ) {
191 int nKey = arrRandom[i];
194 pVal = s.get_with( wrapped_item(nKey), wrapped_less() );
195 CPPUNIT_ASSERT( pVal != nullptr );
196 CPPUNIT_CHECK( pVal->nKey == nKey );
197 CPPUNIT_CHECK( pVal->nVal == nKey );
200 ep = s.extract_with( wrapped_item( nKey ), wrapped_less() );
201 CPPUNIT_ASSERT( ep );
202 CPPUNIT_ASSERT( !ep.empty() );
203 CPPUNIT_CHECK( ep->nKey == nKey );
204 CPPUNIT_CHECK( ep->nVal == nKey );
208 CPPUNIT_CHECK( s.get_with( wrapped_item( nKey ), wrapped_less() ) == nullptr );
210 ep = s.extract_with( wrapped_item( nKey ), wrapped_less() );
211 CPPUNIT_CHECK( !ep );
213 CPPUNIT_CHECK( s.empty());
216 for ( int i = 0; i < nLimit; ++i )
217 CPPUNIT_ASSERT( s.insert( arrRandom[i]) );
219 for ( int i = 0; i < nLimit; ++i ) {
220 ep = s.extract_min();
221 CPPUNIT_ASSERT( ep );
222 CPPUNIT_ASSERT( !ep.empty() );
223 CPPUNIT_CHECK( ep->nKey == i );
224 CPPUNIT_CHECK( ep->nVal == i );
225 CPPUNIT_CHECK( !s.find(i) );
227 CPPUNIT_CHECK( s.empty());
230 for ( int i = 0; i < nLimit; ++i )
231 CPPUNIT_ASSERT( s.insert( arrRandom[i]) );
233 for ( int i = nLimit-1; i >= 0; --i ) {
234 ep = s.extract_max();
235 CPPUNIT_ASSERT( ep );
236 CPPUNIT_ASSERT( !ep.empty() );
237 CPPUNIT_CHECK( ep->nKey == i );
238 CPPUNIT_CHECK( ep->nVal == i );
239 CPPUNIT_CHECK( !s.find(i) );
241 CPPUNIT_CHECK( s.empty());
242 ep = s.extract_min();
243 CPPUNIT_CHECK( !ep );
244 CPPUNIT_CHECK( !s.extract_max() );
247 CPPUNIT_MSG( PrintStat()(s, nullptr) );
251 void SkipList_RCU_GPI_less();
252 void SkipList_RCU_GPI_cmp();
253 void SkipList_RCU_GPI_cmpless();
254 void SkipList_RCU_GPI_less_stat();
255 void SkipList_RCU_GPI_cmp_stat();
256 void SkipList_RCU_GPI_cmpless_stat();
257 void SkipList_RCU_GPI_xorshift_less();
258 void SkipList_RCU_GPI_xorshift_cmp();
259 void SkipList_RCU_GPI_xorshift_cmpless();
260 void SkipList_RCU_GPI_xorshift_less_stat();
261 void SkipList_RCU_GPI_xorshift_cmp_stat();
262 void SkipList_RCU_GPI_xorshift_cmpless_stat();
263 void SkipList_RCU_GPI_turbopas_less();
264 void SkipList_RCU_GPI_turbopas_cmp();
265 void SkipList_RCU_GPI_turbopas_cmpless();
266 void SkipList_RCU_GPI_turbopas_less_stat();
267 void SkipList_RCU_GPI_turbopas_cmp_stat();
268 void SkipList_RCU_GPI_turbopas_cmpless_stat();
269 void SkipList_RCU_GPI_michaelalloc_less();
270 void SkipList_RCU_GPI_michaelalloc_cmp();
271 void SkipList_RCU_GPI_michaelalloc_cmpless();
272 void SkipList_RCU_GPI_michaelalloc_less_stat();
273 void SkipList_RCU_GPI_michaelalloc_cmp_stat();
274 void SkipList_RCU_GPI_michaelalloc_cmpless_stat();
276 void SkipList_RCU_GPB_less();
277 void SkipList_RCU_GPB_cmp();
278 void SkipList_RCU_GPB_cmpless();
279 void SkipList_RCU_GPB_less_stat();
280 void SkipList_RCU_GPB_cmp_stat();
281 void SkipList_RCU_GPB_cmpless_stat();
282 void SkipList_RCU_GPB_xorshift_less();
283 void SkipList_RCU_GPB_xorshift_cmp();
284 void SkipList_RCU_GPB_xorshift_cmpless();
285 void SkipList_RCU_GPB_xorshift_less_stat();
286 void SkipList_RCU_GPB_xorshift_cmp_stat();
287 void SkipList_RCU_GPB_xorshift_cmpless_stat();
288 void SkipList_RCU_GPB_turbopas_less();
289 void SkipList_RCU_GPB_turbopas_cmp();
290 void SkipList_RCU_GPB_turbopas_cmpless();
291 void SkipList_RCU_GPB_turbopas_less_stat();
292 void SkipList_RCU_GPB_turbopas_cmp_stat();
293 void SkipList_RCU_GPB_turbopas_cmpless_stat();
294 void SkipList_RCU_GPB_michaelalloc_less();
295 void SkipList_RCU_GPB_michaelalloc_cmp();
296 void SkipList_RCU_GPB_michaelalloc_cmpless();
297 void SkipList_RCU_GPB_michaelalloc_less_stat();
298 void SkipList_RCU_GPB_michaelalloc_cmp_stat();
299 void SkipList_RCU_GPB_michaelalloc_cmpless_stat();
301 void SkipList_RCU_GPT_less();
302 void SkipList_RCU_GPT_cmp();
303 void SkipList_RCU_GPT_cmpless();
304 void SkipList_RCU_GPT_less_stat();
305 void SkipList_RCU_GPT_cmp_stat();
306 void SkipList_RCU_GPT_cmpless_stat();
307 void SkipList_RCU_GPT_xorshift_less();
308 void SkipList_RCU_GPT_xorshift_cmp();
309 void SkipList_RCU_GPT_xorshift_cmpless();
310 void SkipList_RCU_GPT_xorshift_less_stat();
311 void SkipList_RCU_GPT_xorshift_cmp_stat();
312 void SkipList_RCU_GPT_xorshift_cmpless_stat();
313 void SkipList_RCU_GPT_turbopas_less();
314 void SkipList_RCU_GPT_turbopas_cmp();
315 void SkipList_RCU_GPT_turbopas_cmpless();
316 void SkipList_RCU_GPT_turbopas_less_stat();
317 void SkipList_RCU_GPT_turbopas_cmp_stat();
318 void SkipList_RCU_GPT_turbopas_cmpless_stat();
319 void SkipList_RCU_GPT_michaelalloc_less();
320 void SkipList_RCU_GPT_michaelalloc_cmp();
321 void SkipList_RCU_GPT_michaelalloc_cmpless();
322 void SkipList_RCU_GPT_michaelalloc_less_stat();
323 void SkipList_RCU_GPT_michaelalloc_cmp_stat();
324 void SkipList_RCU_GPT_michaelalloc_cmpless_stat();
326 void SkipList_RCU_SHB_less();
327 void SkipList_RCU_SHB_cmp();
328 void SkipList_RCU_SHB_cmpless();
329 void SkipList_RCU_SHB_less_stat();
330 void SkipList_RCU_SHB_cmp_stat();
331 void SkipList_RCU_SHB_cmpless_stat();
332 void SkipList_RCU_SHB_xorshift_less();
333 void SkipList_RCU_SHB_xorshift_cmp();
334 void SkipList_RCU_SHB_xorshift_cmpless();
335 void SkipList_RCU_SHB_xorshift_less_stat();
336 void SkipList_RCU_SHB_xorshift_cmp_stat();
337 void SkipList_RCU_SHB_xorshift_cmpless_stat();
338 void SkipList_RCU_SHB_turbopas_less();
339 void SkipList_RCU_SHB_turbopas_cmp();
340 void SkipList_RCU_SHB_turbopas_cmpless();
341 void SkipList_RCU_SHB_turbopas_less_stat();
342 void SkipList_RCU_SHB_turbopas_cmp_stat();
343 void SkipList_RCU_SHB_turbopas_cmpless_stat();
344 void SkipList_RCU_SHB_michaelalloc_less();
345 void SkipList_RCU_SHB_michaelalloc_cmp();
346 void SkipList_RCU_SHB_michaelalloc_cmpless();
347 void SkipList_RCU_SHB_michaelalloc_less_stat();
348 void SkipList_RCU_SHB_michaelalloc_cmp_stat();
349 void SkipList_RCU_SHB_michaelalloc_cmpless_stat();
351 void SkipList_RCU_SHT_less();
352 void SkipList_RCU_SHT_cmp();
353 void SkipList_RCU_SHT_cmpless();
354 void SkipList_RCU_SHT_less_stat();
355 void SkipList_RCU_SHT_cmp_stat();
356 void SkipList_RCU_SHT_cmpless_stat();
357 void SkipList_RCU_SHT_xorshift_less();
358 void SkipList_RCU_SHT_xorshift_cmp();
359 void SkipList_RCU_SHT_xorshift_cmpless();
360 void SkipList_RCU_SHT_xorshift_less_stat();
361 void SkipList_RCU_SHT_xorshift_cmp_stat();
362 void SkipList_RCU_SHT_xorshift_cmpless_stat();
363 void SkipList_RCU_SHT_turbopas_less();
364 void SkipList_RCU_SHT_turbopas_cmp();
365 void SkipList_RCU_SHT_turbopas_cmpless();
366 void SkipList_RCU_SHT_turbopas_less_stat();
367 void SkipList_RCU_SHT_turbopas_cmp_stat();
368 void SkipList_RCU_SHT_turbopas_cmpless_stat();
369 void SkipList_RCU_SHT_michaelalloc_less();
370 void SkipList_RCU_SHT_michaelalloc_cmp();
371 void SkipList_RCU_SHT_michaelalloc_cmpless();
372 void SkipList_RCU_SHT_michaelalloc_less_stat();
373 void SkipList_RCU_SHT_michaelalloc_cmp_stat();
374 void SkipList_RCU_SHT_michaelalloc_cmpless_stat();
376 CPPUNIT_TEST_SUITE(SkipListSetRCUHdrTest)
377 CPPUNIT_TEST(SkipList_RCU_GPI_less)
378 CPPUNIT_TEST(SkipList_RCU_GPI_cmp)
379 CPPUNIT_TEST(SkipList_RCU_GPI_cmpless)
380 CPPUNIT_TEST(SkipList_RCU_GPI_less_stat)
381 CPPUNIT_TEST(SkipList_RCU_GPI_cmp_stat)
382 CPPUNIT_TEST(SkipList_RCU_GPI_cmpless_stat)
383 CPPUNIT_TEST(SkipList_RCU_GPI_xorshift_less)
384 CPPUNIT_TEST(SkipList_RCU_GPI_xorshift_cmp)
385 CPPUNIT_TEST(SkipList_RCU_GPI_xorshift_cmpless)
386 CPPUNIT_TEST(SkipList_RCU_GPI_xorshift_less_stat)
387 CPPUNIT_TEST(SkipList_RCU_GPI_xorshift_cmp_stat)
388 CPPUNIT_TEST(SkipList_RCU_GPI_xorshift_cmpless_stat)
389 CPPUNIT_TEST(SkipList_RCU_GPI_turbopas_less)
390 CPPUNIT_TEST(SkipList_RCU_GPI_turbopas_cmp)
391 CPPUNIT_TEST(SkipList_RCU_GPI_turbopas_cmpless)
392 CPPUNIT_TEST(SkipList_RCU_GPI_turbopas_less_stat)
393 CPPUNIT_TEST(SkipList_RCU_GPI_turbopas_cmp_stat)
394 CPPUNIT_TEST(SkipList_RCU_GPI_turbopas_cmpless_stat)
395 CPPUNIT_TEST(SkipList_RCU_GPI_michaelalloc_less)
396 CPPUNIT_TEST(SkipList_RCU_GPI_michaelalloc_cmp)
397 CPPUNIT_TEST(SkipList_RCU_GPI_michaelalloc_cmpless)
398 CPPUNIT_TEST(SkipList_RCU_GPI_michaelalloc_less_stat)
399 CPPUNIT_TEST(SkipList_RCU_GPI_michaelalloc_cmp_stat)
400 CPPUNIT_TEST(SkipList_RCU_GPI_michaelalloc_cmpless_stat)
402 CPPUNIT_TEST(SkipList_RCU_GPB_less)
403 CPPUNIT_TEST(SkipList_RCU_GPB_cmp)
404 CPPUNIT_TEST(SkipList_RCU_GPB_cmpless)
405 CPPUNIT_TEST(SkipList_RCU_GPB_less_stat)
406 CPPUNIT_TEST(SkipList_RCU_GPB_cmp_stat)
407 CPPUNIT_TEST(SkipList_RCU_GPB_cmpless_stat)
408 CPPUNIT_TEST(SkipList_RCU_GPB_xorshift_less)
409 CPPUNIT_TEST(SkipList_RCU_GPB_xorshift_cmp)
410 CPPUNIT_TEST(SkipList_RCU_GPB_xorshift_cmpless)
411 CPPUNIT_TEST(SkipList_RCU_GPB_xorshift_less_stat)
412 CPPUNIT_TEST(SkipList_RCU_GPB_xorshift_cmp_stat)
413 CPPUNIT_TEST(SkipList_RCU_GPB_xorshift_cmpless_stat)
414 CPPUNIT_TEST(SkipList_RCU_GPB_turbopas_less)
415 CPPUNIT_TEST(SkipList_RCU_GPB_turbopas_cmp)
416 CPPUNIT_TEST(SkipList_RCU_GPB_turbopas_cmpless)
417 CPPUNIT_TEST(SkipList_RCU_GPB_turbopas_less_stat)
418 CPPUNIT_TEST(SkipList_RCU_GPB_turbopas_cmp_stat)
419 CPPUNIT_TEST(SkipList_RCU_GPB_turbopas_cmpless_stat)
420 CPPUNIT_TEST(SkipList_RCU_GPB_michaelalloc_less)
421 CPPUNIT_TEST(SkipList_RCU_GPB_michaelalloc_cmp)
422 CPPUNIT_TEST(SkipList_RCU_GPB_michaelalloc_cmpless)
423 CPPUNIT_TEST(SkipList_RCU_GPB_michaelalloc_less_stat)
424 CPPUNIT_TEST(SkipList_RCU_GPB_michaelalloc_cmp_stat)
425 CPPUNIT_TEST(SkipList_RCU_GPB_michaelalloc_cmpless_stat)
427 CPPUNIT_TEST(SkipList_RCU_GPT_less)
428 CPPUNIT_TEST(SkipList_RCU_GPT_cmp)
429 CPPUNIT_TEST(SkipList_RCU_GPT_cmpless)
430 CPPUNIT_TEST(SkipList_RCU_GPT_less_stat)
431 CPPUNIT_TEST(SkipList_RCU_GPT_cmp_stat)
432 CPPUNIT_TEST(SkipList_RCU_GPT_cmpless_stat)
433 CPPUNIT_TEST(SkipList_RCU_GPT_xorshift_less)
434 CPPUNIT_TEST(SkipList_RCU_GPT_xorshift_cmp)
435 CPPUNIT_TEST(SkipList_RCU_GPT_xorshift_cmpless)
436 CPPUNIT_TEST(SkipList_RCU_GPT_xorshift_less_stat)
437 CPPUNIT_TEST(SkipList_RCU_GPT_xorshift_cmp_stat)
438 CPPUNIT_TEST(SkipList_RCU_GPT_xorshift_cmpless_stat)
439 CPPUNIT_TEST(SkipList_RCU_GPT_turbopas_less)
440 CPPUNIT_TEST(SkipList_RCU_GPT_turbopas_cmp)
441 CPPUNIT_TEST(SkipList_RCU_GPT_turbopas_cmpless)
442 CPPUNIT_TEST(SkipList_RCU_GPT_turbopas_less_stat)
443 CPPUNIT_TEST(SkipList_RCU_GPT_turbopas_cmp_stat)
444 CPPUNIT_TEST(SkipList_RCU_GPT_turbopas_cmpless_stat)
445 CPPUNIT_TEST(SkipList_RCU_GPT_michaelalloc_less)
446 CPPUNIT_TEST(SkipList_RCU_GPT_michaelalloc_cmp)
447 CPPUNIT_TEST(SkipList_RCU_GPT_michaelalloc_cmpless)
448 CPPUNIT_TEST(SkipList_RCU_GPT_michaelalloc_less_stat)
449 CPPUNIT_TEST(SkipList_RCU_GPT_michaelalloc_cmp_stat)
450 CPPUNIT_TEST(SkipList_RCU_GPT_michaelalloc_cmpless_stat)
452 CPPUNIT_TEST(SkipList_RCU_SHB_less)
453 CPPUNIT_TEST(SkipList_RCU_SHB_cmp)
454 CPPUNIT_TEST(SkipList_RCU_SHB_cmpless)
455 CPPUNIT_TEST(SkipList_RCU_SHB_less_stat)
456 CPPUNIT_TEST(SkipList_RCU_SHB_cmp_stat)
457 CPPUNIT_TEST(SkipList_RCU_SHB_cmpless_stat)
458 CPPUNIT_TEST(SkipList_RCU_SHB_xorshift_less)
459 CPPUNIT_TEST(SkipList_RCU_SHB_xorshift_cmp)
460 CPPUNIT_TEST(SkipList_RCU_SHB_xorshift_cmpless)
461 CPPUNIT_TEST(SkipList_RCU_SHB_xorshift_less_stat)
462 CPPUNIT_TEST(SkipList_RCU_SHB_xorshift_cmp_stat)
463 CPPUNIT_TEST(SkipList_RCU_SHB_xorshift_cmpless_stat)
464 CPPUNIT_TEST(SkipList_RCU_SHB_turbopas_less)
465 CPPUNIT_TEST(SkipList_RCU_SHB_turbopas_cmp)
466 CPPUNIT_TEST(SkipList_RCU_SHB_turbopas_cmpless)
467 CPPUNIT_TEST(SkipList_RCU_SHB_turbopas_less_stat)
468 CPPUNIT_TEST(SkipList_RCU_SHB_turbopas_cmp_stat)
469 CPPUNIT_TEST(SkipList_RCU_SHB_turbopas_cmpless_stat)
470 CPPUNIT_TEST(SkipList_RCU_SHB_michaelalloc_less)
471 CPPUNIT_TEST(SkipList_RCU_SHB_michaelalloc_cmp)
472 CPPUNIT_TEST(SkipList_RCU_SHB_michaelalloc_cmpless)
473 CPPUNIT_TEST(SkipList_RCU_SHB_michaelalloc_less_stat)
474 CPPUNIT_TEST(SkipList_RCU_SHB_michaelalloc_cmp_stat)
475 CPPUNIT_TEST(SkipList_RCU_SHB_michaelalloc_cmpless_stat)
477 CPPUNIT_TEST(SkipList_RCU_SHT_less)
478 CPPUNIT_TEST(SkipList_RCU_SHT_cmp)
479 CPPUNIT_TEST(SkipList_RCU_SHT_cmpless)
480 CPPUNIT_TEST(SkipList_RCU_SHT_less_stat)
481 CPPUNIT_TEST(SkipList_RCU_SHT_cmp_stat)
482 CPPUNIT_TEST(SkipList_RCU_SHT_cmpless_stat)
483 CPPUNIT_TEST(SkipList_RCU_SHT_xorshift_less)
484 CPPUNIT_TEST(SkipList_RCU_SHT_xorshift_cmp)
485 CPPUNIT_TEST(SkipList_RCU_SHT_xorshift_cmpless)
486 CPPUNIT_TEST(SkipList_RCU_SHT_xorshift_less_stat)
487 CPPUNIT_TEST(SkipList_RCU_SHT_xorshift_cmp_stat)
488 CPPUNIT_TEST(SkipList_RCU_SHT_xorshift_cmpless_stat)
489 CPPUNIT_TEST(SkipList_RCU_SHT_turbopas_less)
490 CPPUNIT_TEST(SkipList_RCU_SHT_turbopas_cmp)
491 CPPUNIT_TEST(SkipList_RCU_SHT_turbopas_cmpless)
492 CPPUNIT_TEST(SkipList_RCU_SHT_turbopas_less_stat)
493 CPPUNIT_TEST(SkipList_RCU_SHT_turbopas_cmp_stat)
494 CPPUNIT_TEST(SkipList_RCU_SHT_turbopas_cmpless_stat)
495 CPPUNIT_TEST(SkipList_RCU_SHT_michaelalloc_less)
496 CPPUNIT_TEST(SkipList_RCU_SHT_michaelalloc_cmp)
497 CPPUNIT_TEST(SkipList_RCU_SHT_michaelalloc_cmpless)
498 CPPUNIT_TEST(SkipList_RCU_SHT_michaelalloc_less_stat)
499 CPPUNIT_TEST(SkipList_RCU_SHT_michaelalloc_cmp_stat)
500 CPPUNIT_TEST(SkipList_RCU_SHT_michaelalloc_cmpless_stat)
502 CPPUNIT_TEST_SUITE_END()