X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2Funit%2Fmap%2Ftest_skiplist_rcu.h;h=39014ce5a4b3d971dc39ab0cb1292140fa5f0cb5;hb=9f9f9f1695656ca21d618b2f88ccd5b4f76218f7;hp=61a44cd9342d33cf479e031ec0e4b86ec3ddf9c1;hpb=1ed1fd2e3b72891e0be0c819fb6f8fa6f3036173;p=libcds.git diff --git a/test/unit/map/test_skiplist_rcu.h b/test/unit/map/test_skiplist_rcu.h index 61a44cd9..39014ce5 100644 --- a/test/unit/map/test_skiplist_rcu.h +++ b/test/unit/map/test_skiplist_rcu.h @@ -223,7 +223,7 @@ TYPED_TEST_P( SkipListMap, stat ) this->test( m ); } -TYPED_TEST_P( SkipListMap, random_level_generator ) +TYPED_TEST_P( SkipListMap, xorshift32 ) { typedef typename TestFixture::rcu_type rcu_type; typedef typename TestFixture::key_type key_type; @@ -231,12 +231,25 @@ TYPED_TEST_P( SkipListMap, random_level_generator ) struct map_traits: public cc::skip_list::traits { - typedef typename TestFixture::cmp compare; typedef typename TestFixture::less less; - typedef cds::atomicity::item_counter item_counter; - typedef cc::skip_list::stat<> stat; - typedef cc::skip_list::xorshift random_level_generator; - typedef cds::opt::v::rcu_assert_deadlock rcu_check_deadlock; + typedef cc::skip_list::xorshift32 random_level_generator; + }; + typedef cc::SkipListMap< rcu_type, key_type, value_type, map_traits > map_type; + + map_type m; + this->test( m ); +} + +TYPED_TEST_P( SkipListMap, xorshift24 ) +{ + typedef typename TestFixture::rcu_type rcu_type; + typedef typename TestFixture::key_type key_type; + typedef typename TestFixture::value_type value_type; + + struct map_traits: public cc::skip_list::traits + { + typedef typename TestFixture::less less; + typedef cc::skip_list::xorshift24 random_level_generator; }; typedef cc::SkipListMap< rcu_type, key_type, value_type, map_traits > map_type; @@ -244,9 +257,76 @@ TYPED_TEST_P( SkipListMap, random_level_generator ) this->test( m ); } +TYPED_TEST_P( SkipListMap, xorshift16 ) +{ + typedef typename TestFixture::rcu_type rcu_type; + typedef typename TestFixture::key_type key_type; + typedef typename TestFixture::value_type value_type; + + struct map_traits: public cc::skip_list::traits + { + typedef typename TestFixture::less less; + typedef cc::skip_list::xorshift16 random_level_generator; + }; + typedef cc::SkipListMap< rcu_type, key_type, value_type, map_traits > map_type; + + map_type m; + this->test( m ); +} + +TYPED_TEST_P( SkipListMap, turbo32 ) +{ + typedef typename TestFixture::rcu_type rcu_type; + typedef typename TestFixture::key_type key_type; + typedef typename TestFixture::value_type value_type; + + struct map_traits: public cc::skip_list::traits + { + typedef typename TestFixture::less less; + typedef cc::skip_list::turbo32 random_level_generator; + }; + typedef cc::SkipListMap< rcu_type, key_type, value_type, map_traits > map_type; + + map_type m; + this->test( m ); +} + +TYPED_TEST_P( SkipListMap, turbo24 ) +{ + typedef typename TestFixture::rcu_type rcu_type; + typedef typename TestFixture::key_type key_type; + typedef typename TestFixture::value_type value_type; + + struct map_traits: public cc::skip_list::traits + { + typedef typename TestFixture::less less; + typedef cc::skip_list::turbo24 random_level_generator; + }; + typedef cc::SkipListMap< rcu_type, key_type, value_type, map_traits > map_type; + + map_type m; + this->test( m ); +} + +TYPED_TEST_P( SkipListMap, turbo16 ) +{ + typedef typename TestFixture::rcu_type rcu_type; + typedef typename TestFixture::key_type key_type; + typedef typename TestFixture::value_type value_type; + + struct map_traits: public cc::skip_list::traits + { + typedef typename TestFixture::less less; + typedef cc::skip_list::turbo16 random_level_generator; + }; + typedef cc::SkipListMap< rcu_type, key_type, value_type, map_traits > map_type; + + map_type m; + this->test( m ); +} REGISTER_TYPED_TEST_CASE_P( SkipListMap, - compare, less, cmpmix, item_counting, backoff, stat, random_level_generator + compare, less, cmpmix, item_counting, backoff, stat, xorshift32, xorshift24, xorshift16, turbo32, turbo24, turbo16 );