Fixed -Wshadow warnings
[libcds.git] / test / unit / intrusive-set / test_intrusive_skiplist_rcu.h
index 306ebfa1cd15a8d0c987308dac816c4b6577119e..cbfdfba4bb13de8a0b13ed50ef30e05a17353bec 100644 (file)
@@ -65,13 +65,13 @@ TYPED_TEST_P( IntrusiveSkipListSet, base_cmp )
     typedef typename TestFixture::rcu_type rcu_type;
     typedef typename TestFixture::base_item_type base_item_type;
     typedef typename TestFixture::mock_disposer mock_disposer;
-    typedef typename TestFixture::template cmp<base_item_type> cmp;
+    typedef typename TestFixture::template cmp<base_item_type> item_cmp;
 
     struct traits : public ci::skip_list::traits
     {
         typedef ci::skip_list::base_hook< ci::opt::gc< rcu_type >> hook;
         typedef mock_disposer disposer;
-        typedef cmp compare;
+        typedef item_cmp compare;
     };
 
     typedef ci::SkipListSet< rcu_type, base_item_type, traits > set_type;
@@ -106,14 +106,14 @@ TYPED_TEST_P( IntrusiveSkipListSet, base_cmpmix )
     typedef typename TestFixture::rcu_type rcu_type;
     typedef typename TestFixture::base_item_type base_item_type;
     typedef typename TestFixture::mock_disposer mock_disposer;
-    typedef typename TestFixture::template cmp<base_item_type> cmp;
+    typedef typename TestFixture::template cmp<base_item_type> item_cmp;
     typedef typename TestFixture::template less<base_item_type> less_predicate;
 
     struct traits : public ci::skip_list::traits
     {
         typedef ci::skip_list::base_hook< ci::opt::gc< rcu_type >> hook;
         typedef mock_disposer disposer;
-        typedef cmp compare;
+        typedef item_cmp compare;
         typedef less_predicate less;
         typedef ci::skip_list::stat<> stat;
     };
@@ -124,19 +124,124 @@ TYPED_TEST_P( IntrusiveSkipListSet, base_cmpmix )
     this->test( s );
 }
 
-TYPED_TEST_P( IntrusiveSkipListSet, base_xorshift )
+TYPED_TEST_P( IntrusiveSkipListSet, base_xorshift32 )
 {
     typedef typename TestFixture::rcu_type rcu_type;
     typedef typename TestFixture::base_item_type base_item_type;
     typedef typename TestFixture::mock_disposer mock_disposer;
-    typedef typename TestFixture::template cmp<base_item_type> cmp;
+    typedef typename TestFixture::template cmp<base_item_type> item_cmp;
 
     struct traits : public ci::skip_list::traits
     {
         typedef ci::skip_list::base_hook< ci::opt::gc< rcu_type >> hook;
         typedef mock_disposer disposer;
-        typedef cmp compare;
-        typedef ci::skip_list::xorshift random_level_generator;
+        typedef item_cmp compare;
+        typedef ci::skip_list::xorshift32 random_level_generator;
+    };
+
+    typedef ci::SkipListSet< rcu_type, base_item_type, traits > set_type;
+
+    set_type s;
+    this->test( s );
+}
+
+TYPED_TEST_P( IntrusiveSkipListSet, base_xorshift24 )
+{
+    typedef typename TestFixture::rcu_type rcu_type;
+    typedef typename TestFixture::base_item_type base_item_type;
+    typedef typename TestFixture::mock_disposer mock_disposer;
+    typedef typename TestFixture::template cmp<base_item_type> item_cmp;
+
+    struct traits: public ci::skip_list::traits
+    {
+        typedef ci::skip_list::base_hook< ci::opt::gc< rcu_type >> hook;
+        typedef mock_disposer disposer;
+        typedef item_cmp compare;
+        typedef ci::skip_list::xorshift24 random_level_generator;
+    };
+
+    typedef ci::SkipListSet< rcu_type, base_item_type, traits > set_type;
+
+    set_type s;
+    this->test( s );
+}
+
+TYPED_TEST_P( IntrusiveSkipListSet, base_xorshift16 )
+{
+    typedef typename TestFixture::rcu_type rcu_type;
+    typedef typename TestFixture::base_item_type base_item_type;
+    typedef typename TestFixture::mock_disposer mock_disposer;
+    typedef typename TestFixture::template cmp<base_item_type> item_cmp;
+
+    struct traits: public ci::skip_list::traits
+    {
+        typedef ci::skip_list::base_hook< ci::opt::gc< rcu_type >> hook;
+        typedef mock_disposer disposer;
+        typedef item_cmp compare;
+        typedef ci::skip_list::xorshift16 random_level_generator;
+    };
+
+    typedef ci::SkipListSet< rcu_type, base_item_type, traits > set_type;
+
+    set_type s;
+    this->test( s );
+}
+
+TYPED_TEST_P( IntrusiveSkipListSet, base_turbo32 )
+{
+    typedef typename TestFixture::rcu_type rcu_type;
+    typedef typename TestFixture::base_item_type base_item_type;
+    typedef typename TestFixture::mock_disposer mock_disposer;
+    typedef typename TestFixture::template cmp<base_item_type> item_cmp;
+
+    struct traits: public ci::skip_list::traits
+    {
+        typedef ci::skip_list::base_hook< ci::opt::gc< rcu_type >> hook;
+        typedef mock_disposer disposer;
+        typedef item_cmp compare;
+        typedef ci::skip_list::turbo32 random_level_generator;
+    };
+
+    typedef ci::SkipListSet< rcu_type, base_item_type, traits > set_type;
+
+    set_type s;
+    this->test( s );
+}
+
+TYPED_TEST_P( IntrusiveSkipListSet, base_turbo24 )
+{
+    typedef typename TestFixture::rcu_type rcu_type;
+    typedef typename TestFixture::base_item_type base_item_type;
+    typedef typename TestFixture::mock_disposer mock_disposer;
+    typedef typename TestFixture::template cmp<base_item_type> item_cmp;
+
+    struct traits: public ci::skip_list::traits
+    {
+        typedef ci::skip_list::base_hook< ci::opt::gc< rcu_type >> hook;
+        typedef mock_disposer disposer;
+        typedef item_cmp compare;
+        typedef ci::skip_list::turbo24 random_level_generator;
+    };
+
+    typedef ci::SkipListSet< rcu_type, base_item_type, traits > set_type;
+
+    set_type s;
+    this->test( s );
+}
+
+TYPED_TEST_P( IntrusiveSkipListSet, base_turbo16 )
+{
+    typedef typename TestFixture::rcu_type rcu_type;
+    typedef typename TestFixture::base_item_type base_item_type;
+    typedef typename TestFixture::mock_disposer mock_disposer;
+    typedef typename TestFixture::template cmp<base_item_type> item_cmp;
+
+    struct traits: public ci::skip_list::traits
+    {
+        typedef ci::skip_list::base_hook< ci::opt::gc< rcu_type >> hook;
+        typedef mock_disposer disposer;
+        typedef item_cmp compare;
+        typedef ci::skip_list::turbo16 random_level_generator;
     };
 
     typedef ci::SkipListSet< rcu_type, base_item_type, traits > set_type;
@@ -151,13 +256,13 @@ TYPED_TEST_P( IntrusiveSkipListSet, member_cmp )
     typedef typename TestFixture::rcu_type rcu_type;
     typedef typename TestFixture::member_item_type member_item_type;
     typedef typename TestFixture::mock_disposer mock_disposer;
-    typedef typename TestFixture::template cmp<member_item_type> cmp;
+    typedef typename TestFixture::template cmp<member_item_type> item_cmp;
 
     struct traits : public ci::skip_list::traits
     {
         typedef ci::skip_list::member_hook< offsetof( member_item_type, hMember ), ci::opt::gc< rcu_type >> hook;
         typedef mock_disposer disposer;
-        typedef cmp compare;
+        typedef item_cmp compare;
     };
 
     typedef ci::SkipListSet< rcu_type, member_item_type, traits > set_type;
@@ -195,13 +300,13 @@ TYPED_TEST_P( IntrusiveSkipListSet, member_cmpmix )
     typedef typename TestFixture::member_item_type member_item_type;
     typedef typename TestFixture::mock_disposer mock_disposer;
     typedef typename TestFixture::template less<member_item_type> less_predicate;
-    typedef typename TestFixture::template cmp<member_item_type> cmp;
+    typedef typename TestFixture::template cmp<member_item_type> item_cmp;
 
     struct traits : public ci::skip_list::traits
     {
         typedef ci::skip_list::member_hook< offsetof( member_item_type, hMember ), ci::opt::gc< rcu_type >> hook;
         typedef mock_disposer disposer;
-        typedef cmp compare;
+        typedef item_cmp compare;
         typedef less_predicate less;
         typedef ci::skip_list::stat<> stat;
     };
@@ -212,22 +317,142 @@ TYPED_TEST_P( IntrusiveSkipListSet, member_cmpmix )
     this->test( s );
 }
 
-TYPED_TEST_P( IntrusiveSkipListSet, member_xorshift )
+TYPED_TEST_P( IntrusiveSkipListSet, member_xorshift32 )
 {
     typedef typename TestFixture::rcu_type rcu_type;
     typedef typename TestFixture::member_item_type member_item_type;
     typedef typename TestFixture::mock_disposer mock_disposer;
     typedef typename TestFixture::template less<member_item_type> less_predicate;
-    typedef typename TestFixture::template cmp<member_item_type> cmp;
+    typedef typename TestFixture::template cmp<member_item_type> item_cmp;
 
     struct traits : public ci::skip_list::traits
     {
         typedef ci::skip_list::member_hook< offsetof( member_item_type, hMember ), ci::opt::gc< rcu_type >> hook;
         typedef mock_disposer disposer;
-        typedef cmp compare;
+        typedef item_cmp compare;
+        typedef less_predicate less;
+        typedef ci::skip_list::stat<> stat;
+        typedef ci::skip_list::xorshift32 random_level_generator;
+    };
+
+    typedef ci::SkipListSet< rcu_type, member_item_type, traits > set_type;
+
+    set_type s;
+    this->test( s );
+}
+
+TYPED_TEST_P( IntrusiveSkipListSet, member_xorshift24 )
+{
+    typedef typename TestFixture::rcu_type rcu_type;
+    typedef typename TestFixture::member_item_type member_item_type;
+    typedef typename TestFixture::mock_disposer mock_disposer;
+    typedef typename TestFixture::template less<member_item_type> less_predicate;
+    typedef typename TestFixture::template cmp<member_item_type> item_cmp;
+
+    struct traits: public ci::skip_list::traits
+    {
+        typedef ci::skip_list::member_hook< offsetof( member_item_type, hMember ), ci::opt::gc< rcu_type >> hook;
+        typedef mock_disposer disposer;
+        typedef item_cmp compare;
+        typedef less_predicate less;
+        typedef ci::skip_list::stat<> stat;
+        typedef ci::skip_list::xorshift24 random_level_generator;
+    };
+
+    typedef ci::SkipListSet< rcu_type, member_item_type, traits > set_type;
+
+    set_type s;
+    this->test( s );
+}
+
+TYPED_TEST_P( IntrusiveSkipListSet, member_xorshift16 )
+{
+    typedef typename TestFixture::rcu_type rcu_type;
+    typedef typename TestFixture::member_item_type member_item_type;
+    typedef typename TestFixture::mock_disposer mock_disposer;
+    typedef typename TestFixture::template less<member_item_type> less_predicate;
+    typedef typename TestFixture::template cmp<member_item_type> item_cmp;
+
+    struct traits: public ci::skip_list::traits
+    {
+        typedef ci::skip_list::member_hook< offsetof( member_item_type, hMember ), ci::opt::gc< rcu_type >> hook;
+        typedef mock_disposer disposer;
+        typedef item_cmp compare;
+        typedef less_predicate less;
+        typedef ci::skip_list::stat<> stat;
+        typedef ci::skip_list::xorshift16 random_level_generator;
+    };
+
+    typedef ci::SkipListSet< rcu_type, member_item_type, traits > set_type;
+
+    set_type s;
+    this->test( s );
+}
+
+TYPED_TEST_P( IntrusiveSkipListSet, member_turbo32 )
+{
+    typedef typename TestFixture::rcu_type rcu_type;
+    typedef typename TestFixture::member_item_type member_item_type;
+    typedef typename TestFixture::mock_disposer mock_disposer;
+    typedef typename TestFixture::template less<member_item_type> less_predicate;
+    typedef typename TestFixture::template cmp<member_item_type> item_cmp;
+
+    struct traits: public ci::skip_list::traits
+    {
+        typedef ci::skip_list::member_hook< offsetof( member_item_type, hMember ), ci::opt::gc< rcu_type >> hook;
+        typedef mock_disposer disposer;
+        typedef item_cmp compare;
+        typedef less_predicate less;
+        typedef ci::skip_list::stat<> stat;
+        typedef ci::skip_list::turbo32 random_level_generator;
+    };
+
+    typedef ci::SkipListSet< rcu_type, member_item_type, traits > set_type;
+
+    set_type s;
+    this->test( s );
+}
+
+TYPED_TEST_P( IntrusiveSkipListSet, member_turbo24 )
+{
+    typedef typename TestFixture::rcu_type rcu_type;
+    typedef typename TestFixture::member_item_type member_item_type;
+    typedef typename TestFixture::mock_disposer mock_disposer;
+    typedef typename TestFixture::template less<member_item_type> less_predicate;
+    typedef typename TestFixture::template cmp<member_item_type> item_cmp;
+
+    struct traits: public ci::skip_list::traits
+    {
+        typedef ci::skip_list::member_hook< offsetof( member_item_type, hMember ), ci::opt::gc< rcu_type >> hook;
+        typedef mock_disposer disposer;
+        typedef item_cmp compare;
+        typedef less_predicate less;
+        typedef ci::skip_list::stat<> stat;
+        typedef ci::skip_list::turbo24 random_level_generator;
+    };
+
+    typedef ci::SkipListSet< rcu_type, member_item_type, traits > set_type;
+
+    set_type s;
+    this->test( s );
+}
+
+TYPED_TEST_P( IntrusiveSkipListSet, member_turbo16 )
+{
+    typedef typename TestFixture::rcu_type rcu_type;
+    typedef typename TestFixture::member_item_type member_item_type;
+    typedef typename TestFixture::mock_disposer mock_disposer;
+    typedef typename TestFixture::template less<member_item_type> less_predicate;
+    typedef typename TestFixture::template cmp<member_item_type> item_cmp;
+
+    struct traits: public ci::skip_list::traits
+    {
+        typedef ci::skip_list::member_hook< offsetof( member_item_type, hMember ), ci::opt::gc< rcu_type >> hook;
+        typedef mock_disposer disposer;
+        typedef item_cmp compare;
         typedef less_predicate less;
         typedef ci::skip_list::stat<> stat;
-        typedef ci::skip_list::xorshift random_level_generator;
+        typedef ci::skip_list::turbo16 random_level_generator;
     };
 
     typedef ci::SkipListSet< rcu_type, member_item_type, traits > set_type;
@@ -237,10 +462,10 @@ TYPED_TEST_P( IntrusiveSkipListSet, member_xorshift )
 }
 
 
-// GCC 5: All test names should be written on single line, otherwise a runtime error will be encountered like as
+// All test names should be written on single line, otherwise a runtime error will be encountered like as
 // "No test named <test_name> can be found in this test case"
 REGISTER_TYPED_TEST_CASE_P( IntrusiveSkipListSet,
-    base_cmp, base_less, base_cmpmix, base_xorshift, member_cmp, member_less, member_cmpmix, member_xorshift
+    base_cmp, base_less, base_cmpmix, base_xorshift32, base_xorshift24, base_xorshift16, base_turbo32, base_turbo24, base_turbo16, member_cmp, member_less, member_cmpmix, member_xorshift32, member_xorshift24, member_xorshift16, member_turbo32, member_turbo24, member_turbo16
 );