Added new option hash_size for FeldmanHashSet
[libcds.git] / test / unit / intrusive-set / test_intrusive_feldman_hashset_rcu.h
index 6b5c1fc270055ebc08f42dafc84afb9db0871b2a..3f9436328c8c172f9b01f50cb1f296d6cf5912ad 100644 (file)
@@ -223,10 +223,29 @@ TYPED_TEST_P( IntrusiveFeldmanHashSet, stat )
     this->test( s );
 }
 
+TYPED_TEST_P( IntrusiveFeldmanHashSet, explicit_hash_size )
+{
+    struct traits: public ci::feldman_hashset::traits
+    {
+        typedef typename TestFixture::hash_accessor2 hash_accessor;
+        enum: size_t {
+            hash_size = sizeof( std::declval<key_val>().nKey )
+        };
+        typedef typename TestFixture::cmp2 compare;
+        typedef typename TestFixture::mock_disposer disposer;
+        typedef ci::feldman_hashset::stat<> stat;
+    };
+
+    typedef ci::FeldmanHashSet< typename TestFixture::rcu_type, typename TestFixture::int_item2, traits > set_type;
+
+    set_type s( 8, 3 );
+    this->test( s );
+}
+
 // GCC 5: 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( IntrusiveFeldmanHashSet,
-    compare, less, cmpmix, backoff, stat
+    compare, less, cmpmix, backoff, stat, explicit_hash_size
     );