Migrated set-insdel-func stress test to gtest framework
[libcds.git] / tests / unit / set2 / set_defs.h
index 478ce052dd459d8586a8315d6d94d853cda256b3..a6054bb535defd494bcd8ca983c35c9bf35be2b9 100644 (file)
@@ -1,4 +1,32 @@
-//$$CDS-header$$
+/*
+    This file is a part of libcds - Concurrent Data Structures library
+
+    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
+
+    Source code repo: http://github.com/khizmax/libcds/
+    Download: http://sourceforge.net/projects/libcds/files/
+    
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice, this
+      list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.     
+*/
 
 #define CDSUNIT_DECLARE_StdSet \
     TEST_CASE( tag_StdSet, StdSet_Spin) \
 
 
 //***********************************************
-// MultiLevelHashSet
+// FeldmanHashSet
 
 // For fixed-sized key - no hash function is needed
 
-#undef CDSUNIT_DECLARE_MultiLevelHashSet_fixed
-#undef CDSUNIT_DECLARE_MultiLevelHashSet_fixed_RCU_signal
-#undef CDSUNIT_TEST_MultiLevelHashSet_fixed
-#undef CDSUNIT_TEST_MultiLevelHashSet_fixed_RCU_signal
+#undef CDSUNIT_DECLARE_FeldmanHashSet_fixed
+#undef CDSUNIT_DECLARE_FeldmanHashSet_fixed_RCU_signal
+#undef CDSUNIT_TEST_FeldmanHashSet_fixed
+#undef CDSUNIT_TEST_FeldmanHashSet_fixed_RCU_signal
 
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
-#   define CDSUNIT_DECLARE_MultiLevelHashSet_fixed_RCU_signal  \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_fixed) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_fixed_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_fixed) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_fixed_stat) \
-
-#   define CDSUNIT_TEST_MultiLevelHashSet_fixed_RCU_signal \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_fixed) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_fixed_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_fixed) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_fixed_stat) \
+#   define CDSUNIT_DECLARE_FeldmanHashSet_fixed_RCU_signal  \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_fixed) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_fixed_stat) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_fixed) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_fixed_stat) \
+
+#   define CDSUNIT_TEST_FeldmanHashSet_fixed_RCU_signal \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_fixed) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_fixed_stat) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_fixed) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_fixed_stat) \
 
 #else
-#   define CDSUNIT_DECLARE_MultiLevelHashSet_fixed_RCU_signal
-#   define CDSUNIT_TEST_MultiLevelHashSet_fixed_RCU_signal
+#   define CDSUNIT_DECLARE_FeldmanHashSet_fixed_RCU_signal
+#   define CDSUNIT_TEST_FeldmanHashSet_fixed_RCU_signal
 #endif
 
-#define CDSUNIT_DECLARE_MultiLevelHashSet_fixed  \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_fixed) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_fixed_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_fixed) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_fixed_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_fixed) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_fixed_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_fixed) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_fixed_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_fixed) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_fixed_stat) \
-    CDSUNIT_DECLARE_MultiLevelHashSet_fixed_RCU_signal
-
-#define CDSUNIT_TEST_MultiLevelHashSet_fixed  \
-    CPPUNIT_TEST(MultiLevelHashSet_hp_fixed) \
-    CPPUNIT_TEST(MultiLevelHashSet_hp_fixed_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_dhp_fixed) \
-    CPPUNIT_TEST(MultiLevelHashSet_dhp_fixed_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_fixed) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_fixed_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_fixed) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_fixed_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_fixed) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_fixed_stat) \
-    CDSUNIT_TEST_MultiLevelHashSet_fixed_RCU_signal
+#define CDSUNIT_DECLARE_FeldmanHashSet_fixed  \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_hp_fixed) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_hp_fixed_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_dhp_fixed) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_dhp_fixed_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpi_fixed) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpi_fixed_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpb_fixed) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpb_fixed_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpt_fixed) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpt_fixed_stat) \
+    CDSUNIT_DECLARE_FeldmanHashSet_fixed_RCU_signal
+
+#define CDSUNIT_TEST_FeldmanHashSet_fixed  \
+    CPPUNIT_TEST(FeldmanHashSet_hp_fixed) \
+    CPPUNIT_TEST(FeldmanHashSet_hp_fixed_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_dhp_fixed) \
+    CPPUNIT_TEST(FeldmanHashSet_dhp_fixed_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpi_fixed) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpi_fixed_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpb_fixed) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpb_fixed_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpt_fixed) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpt_fixed_stat) \
+    CDSUNIT_TEST_FeldmanHashSet_fixed_RCU_signal
 
 // std::hash
-#undef CDSUNIT_DECLARE_MultiLevelHashSet_stdhash
-#undef CDSUNIT_DECLARE_MultiLevelHashSet_stdhash_RCU_signal
-#undef CDSUNIT_TEST_MultiLevelHashSet_stdhash
-#undef CDSUNIT_TEST_MultiLevelHashSet_stdhash_RCU_signal
+#undef CDSUNIT_DECLARE_FeldmanHashSet_stdhash
+#undef CDSUNIT_DECLARE_FeldmanHashSet_stdhash_RCU_signal
+#undef CDSUNIT_TEST_FeldmanHashSet_stdhash
+#undef CDSUNIT_TEST_FeldmanHashSet_stdhash_RCU_signal
 
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
-#   define CDSUNIT_DECLARE_MultiLevelHashSet_stdhash_RCU_signal  \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_stdhash) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_stdhash_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_stdhash) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_stdhash_stat) \
-
-#   define CDSUNIT_TEST_MultiLevelHashSet_stdhash_RCU_signal \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_stdhash) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_stdhash_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_stdhash) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_stdhash_stat) \
+#   define CDSUNIT_DECLARE_FeldmanHashSet_stdhash_RCU_signal  \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_stdhash) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_stdhash_stat) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_stdhash) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_stdhash_stat) \
+
+#   define CDSUNIT_TEST_FeldmanHashSet_stdhash_RCU_signal \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_stdhash) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_stdhash_stat) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_stdhash) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_stdhash_stat) \
 
 #else
-#   define CDSUNIT_DECLARE_MultiLevelHashSet_stdhash_RCU_signal
-#   define CDSUNIT_TEST_MultiLevelHashSet_stdhash_RCU_signal
+#   define CDSUNIT_DECLARE_FeldmanHashSet_stdhash_RCU_signal
+#   define CDSUNIT_TEST_FeldmanHashSet_stdhash_RCU_signal
 #endif
 
-#define CDSUNIT_DECLARE_MultiLevelHashSet_stdhash  \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_stdhash) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_stdhash_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_stdhash) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_stdhash_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_stdhash) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_stdhash_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_stdhash) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_stdhash_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_stdhash) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_stdhash_stat) \
-    CDSUNIT_DECLARE_MultiLevelHashSet_stdhash_RCU_signal
-
-#define CDSUNIT_TEST_MultiLevelHashSet_stdhash  \
-    CPPUNIT_TEST(MultiLevelHashSet_hp_stdhash) \
-    CPPUNIT_TEST(MultiLevelHashSet_hp_stdhash_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_dhp_stdhash) \
-    CPPUNIT_TEST(MultiLevelHashSet_dhp_stdhash_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_stdhash) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_stdhash_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_stdhash) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_stdhash_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_stdhash) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_stdhash_stat) \
-    CDSUNIT_TEST_MultiLevelHashSet_stdhash_RCU_signal
-
-
-// MD5
-#undef CDSUNIT_DECLARE_MultiLevelHashSet_md5
-#undef CDSUNIT_DECLARE_MultiLevelHashSet_md5_RCU_signal
-#undef CDSUNIT_TEST_MultiLevelHashSet_md5
-#undef CDSUNIT_TEST_MultiLevelHashSet_md5_RCU_signal
-
-#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
-#   define CDSUNIT_DECLARE_MultiLevelHashSet_md5_RCU_signal  \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_md5) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_md5_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_md5) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_md5_stat) \
-
-#   define CDSUNIT_TEST_MultiLevelHashSet_md5_RCU_signal \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_md5) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_md5_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_md5) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_md5_stat) \
-
-#else
-#   define CDSUNIT_DECLARE_MultiLevelHashSet_md5_RCU_signal
-#   define CDSUNIT_TEST_MultiLevelHashSet_md5_RCU_signal
-#endif
-
-#define CDSUNIT_DECLARE_MultiLevelHashSet_md5  \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_md5) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_md5_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_md5) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_md5_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_md5) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_md5_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_md5) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_md5_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_md5) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_md5_stat) \
-    CDSUNIT_DECLARE_MultiLevelHashSet_md5_RCU_signal
-
-#define CDSUNIT_TEST_MultiLevelHashSet_md5  \
-    CPPUNIT_TEST(MultiLevelHashSet_hp_md5) \
-    CPPUNIT_TEST(MultiLevelHashSet_hp_md5_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_dhp_md5) \
-    CPPUNIT_TEST(MultiLevelHashSet_dhp_md5_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_md5) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_md5_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_md5) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_md5_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_md5) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_md5_stat) \
-    CDSUNIT_TEST_MultiLevelHashSet_md5_RCU_signal
-
-
-// SHA256
-#undef CDSUNIT_DECLARE_MultiLevelHashSet_sha256
-#undef CDSUNIT_DECLARE_MultiLevelHashSet_sha256_RCU_signal
-#undef CDSUNIT_TEST_MultiLevelHashSet_sha256
-#undef CDSUNIT_TEST_MultiLevelHashSet_sha256_RCU_signal
-
-#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
-#   define CDSUNIT_DECLARE_MultiLevelHashSet_sha256_RCU_signal  \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_sha256) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_sha256_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_sha256) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_sha256_stat) \
-
-#   define CDSUNIT_TEST_MultiLevelHashSet_sha256_RCU_signal \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_sha256) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_sha256_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_sha256) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_sha256_stat) \
-
-#else
-#   define CDSUNIT_DECLARE_MultiLevelHashSet_sha256_RCU_signal
-#   define CDSUNIT_TEST_MultiLevelHashSet_sha256_RCU_signal
-#endif
-
-#define CDSUNIT_DECLARE_MultiLevelHashSet_sha256  \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_sha256) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_sha256_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_sha256) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_sha256_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_sha256) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_sha256_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_sha256) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_sha256_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_sha256) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_sha256_stat) \
-    CDSUNIT_DECLARE_MultiLevelHashSet_sha256_RCU_signal
-
-#define CDSUNIT_TEST_MultiLevelHashSet_sha256  \
-    CPPUNIT_TEST(MultiLevelHashSet_hp_sha256) \
-    CPPUNIT_TEST(MultiLevelHashSet_hp_sha256_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_dhp_sha256) \
-    CPPUNIT_TEST(MultiLevelHashSet_dhp_sha256_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_sha256) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_sha256_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_sha256) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_sha256_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_sha256) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_sha256_stat) \
-    CDSUNIT_TEST_MultiLevelHashSet_sha256_RCU_signal
-
-
-// CityHash -only for 64bit 
-#undef CDSUNIT_DECLARE_MultiLevelHashSet_city
-#undef CDSUNIT_DECLARE_MultiLevelHashSet_city_RCU_signal
-#undef CDSUNIT_TEST_MultiLevelHashSet_city
-#undef CDSUNIT_TEST_MultiLevelHashSet_city_RCU_signal
+#define CDSUNIT_DECLARE_FeldmanHashSet_stdhash  \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_hp_stdhash) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_hp_stdhash_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_dhp_stdhash) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_dhp_stdhash_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpi_stdhash) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpi_stdhash_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpb_stdhash) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpb_stdhash_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpt_stdhash) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpt_stdhash_stat) \
+    CDSUNIT_DECLARE_FeldmanHashSet_stdhash_RCU_signal
+
+#define CDSUNIT_TEST_FeldmanHashSet_stdhash  \
+    CPPUNIT_TEST(FeldmanHashSet_hp_stdhash) \
+    CPPUNIT_TEST(FeldmanHashSet_hp_stdhash_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_dhp_stdhash) \
+    CPPUNIT_TEST(FeldmanHashSet_dhp_stdhash_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpi_stdhash) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpi_stdhash_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpb_stdhash) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpb_stdhash_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpt_stdhash) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpt_stdhash_stat) \
+    CDSUNIT_TEST_FeldmanHashSet_stdhash_RCU_signal
+
+
+// CityHash -only for 64bit
+
+#undef CDSUNIT_DECLARE_FeldmanHashSet_city
+#undef CDSUNIT_DECLARE_FeldmanHashSet_city_RCU_signal
+#undef CDSUNIT_TEST_FeldmanHashSet_city
+#undef CDSUNIT_TEST_FeldmanHashSet_city_RCU_signal
 
 #if CDS_BUILD_BITS == 64
 
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
-#   define CDSUNIT_DECLARE_MultiLevelHashSet_city_RCU_signal  \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_city64) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_city64_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_city64) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_city64_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_city128) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_city128_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_city128) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_city128_stat) \
-
-#   define CDSUNIT_TEST_MultiLevelHashSet_city_RCU_signal \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_city64) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_city64_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_city64) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_city64_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_city128) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_city128_stat) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_city128) \
-        TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_city128_stat) \
+#   define CDSUNIT_DECLARE_FeldmanHashSet_city_RCU_signal  \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_city64) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_city64_stat) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_city64) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_city64_stat) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_city128) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_city128_stat) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_city128) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_city128_stat) \
+
+#   define CDSUNIT_TEST_FeldmanHashSet_city_RCU_signal \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_city64) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_city64_stat) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_city64) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_city64_stat) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_city128) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_shb_city128_stat) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_city128) \
+        TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_sht_city128_stat) \
 
 #else
-#   define CDSUNIT_DECLARE_MultiLevelHashSet_city_RCU_signal
-#   define CDSUNIT_TEST_MultiLevelHashSet_city_RCU_signal
+#   define CDSUNIT_DECLARE_FeldmanHashSet_city_RCU_signal
+#   define CDSUNIT_TEST_FeldmanHashSet_city_RCU_signal
 #endif
 
-#define CDSUNIT_DECLARE_MultiLevelHashSet_city  \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_city64) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_city64_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_city64) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_city64_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_city64) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_city64_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_city64) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_city64_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_city64) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_city64_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_city128) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_city128_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_city128) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_city128_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_city128) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_city128_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_city128) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_city128_stat) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_city128) \
-    TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_city128_stat) \
-    CDSUNIT_DECLARE_MultiLevelHashSet_city_RCU_signal
-
-#define CDSUNIT_TEST_MultiLevelHashSet_city  \
-    CPPUNIT_TEST(MultiLevelHashSet_hp_city64) \
-    CPPUNIT_TEST(MultiLevelHashSet_hp_city64_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_dhp_city64) \
-    CPPUNIT_TEST(MultiLevelHashSet_dhp_city64_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_city64) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_city64_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_city64) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_city64_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_city64) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_city64_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_hp_city128) \
-    CPPUNIT_TEST(MultiLevelHashSet_hp_city128_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_dhp_city128) \
-    CPPUNIT_TEST(MultiLevelHashSet_dhp_city128_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_city128) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_city128_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_city128) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_city128_stat) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_city128) \
-    CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_city128_stat) \
-    CDSUNIT_TEST_MultiLevelHashSet_city_RCU_signal
+#define CDSUNIT_DECLARE_FeldmanHashSet_city  \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_hp_city64) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_hp_city64_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_dhp_city64) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_dhp_city64_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpi_city64) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpi_city64_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpb_city64) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpb_city64_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpt_city64) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpt_city64_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_hp_city128) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_hp_city128_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_dhp_city128) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_dhp_city128_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpi_city128) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpi_city128_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpb_city128) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpb_city128_stat) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpt_city128) \
+    TEST_CASE(tag_FeldmanHashSet, FeldmanHashSet_rcu_gpt_city128_stat) \
+    CDSUNIT_DECLARE_FeldmanHashSet_city_RCU_signal
+
+#define CDSUNIT_TEST_FeldmanHashSet_city  \
+    CPPUNIT_TEST(FeldmanHashSet_hp_city64) \
+    CPPUNIT_TEST(FeldmanHashSet_hp_city64_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_dhp_city64) \
+    CPPUNIT_TEST(FeldmanHashSet_dhp_city64_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpi_city64) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpi_city64_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpb_city64) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpb_city64_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpt_city64) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpt_city64_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_hp_city128) \
+    CPPUNIT_TEST(FeldmanHashSet_hp_city128_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_dhp_city128) \
+    CPPUNIT_TEST(FeldmanHashSet_dhp_city128_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpi_city128) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpi_city128_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpb_city128) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpb_city128_stat) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpt_city128) \
+    CPPUNIT_TEST(FeldmanHashSet_rcu_gpt_city128_stat) \
+    CDSUNIT_TEST_FeldmanHashSet_city_RCU_signal
 
 #else
-#   define CDSUNIT_DECLARE_MultiLevelHashSet_city
-#   define CDSUNIT_DECLARE_MultiLevelHashSet_city_RCU_signal
-#   define CDSUNIT_TEST_MultiLevelHashSet_city
-#   define CDSUNIT_TEST_MultiLevelHashSet_city_RCU_signal
+#   define CDSUNIT_DECLARE_FeldmanHashSet_city
+#   define CDSUNIT_DECLARE_FeldmanHashSet_city_RCU_signal
+#   define CDSUNIT_TEST_FeldmanHashSet_city
+#   define CDSUNIT_TEST_FeldmanHashSet_city_RCU_signal
 #endif // CDS_BUILD_BITS == 64
 
 
-// All 
-#define CDSUNIT_DECLARE_MultiLevelHashSet \
-    CDSUNIT_DECLARE_MultiLevelHashSet_fixed \
-    CDSUNIT_DECLARE_MultiLevelHashSet_stdhash \
-    CDSUNIT_DECLARE_MultiLevelHashSet_md5 \
-    CDSUNIT_DECLARE_MultiLevelHashSet_sha256 \
-    CDSUNIT_DECLARE_MultiLevelHashSet_city
-
-#define CDSUNIT_TEST_MultiLevelHashSet \
-    CDSUNIT_TEST_MultiLevelHashSet_fixed \
-    CDSUNIT_TEST_MultiLevelHashSet_stdhash \
-    CDSUNIT_TEST_MultiLevelHashSet_md5 \
-    CDSUNIT_TEST_MultiLevelHashSet_sha256 \
-    CDSUNIT_TEST_MultiLevelHashSet_city
+// All
+
+#define CDSUNIT_DECLARE_FeldmanHashSet \
+    CDSUNIT_DECLARE_FeldmanHashSet_fixed \
+    CDSUNIT_DECLARE_FeldmanHashSet_stdhash \
+    CDSUNIT_DECLARE_FeldmanHashSet_city
+
+#define CDSUNIT_TEST_FeldmanHashSet \
+    CDSUNIT_TEST_FeldmanHashSet_fixed \
+    CDSUNIT_TEST_FeldmanHashSet_stdhash \
+    CDSUNIT_TEST_FeldmanHashSet_city