From e5f24dafbd5df7812a4c97c80cb9b94a6adbf41a Mon Sep 17 00:00:00 2001 From: khizmax Date: Sun, 6 Sep 2015 12:26:33 +0300 Subject: [PATCH] Refactored Map_find_string MT-test --- projects/Win/vc12/unit-map-find.vcxproj | 2 +- .../Win/vc12/unit-map-find.vcxproj.filters | 12 +- projects/source.unit.map.mk | 2 +- tests/data/test-debug.conf | 16 +++ tests/data/test-express.conf | 16 +++ tests/data/test.conf | 16 +++ tests/unit/map2/CMakeLists.txt | 2 +- tests/unit/map2/map_find_string.cpp | 69 ++++------- tests/unit/map2/map_find_string.h | 116 ++++++++++-------- .../map2/map_find_string_bronsonavltree.cpp | 10 +- tests/unit/map2/map_find_string_cuckoo.cpp | 10 +- tests/unit/map2/map_find_string_ellentree.cpp | 10 +- tests/unit/map2/map_find_string_michael.cpp | 13 +- .../map_find_string_multilevelhashmap.cpp | 12 ++ tests/unit/map2/map_find_string_refinable.cpp | 12 -- tests/unit/map2/map_find_string_skip.cpp | 13 +- tests/unit/map2/map_find_string_split.cpp | 13 +- tests/unit/map2/map_find_string_std.cpp | 11 +- tests/unit/map2/map_find_string_striped.cpp | 11 +- 19 files changed, 205 insertions(+), 161 deletions(-) create mode 100644 tests/unit/map2/map_find_string_multilevelhashmap.cpp delete mode 100644 tests/unit/map2/map_find_string_refinable.cpp diff --git a/projects/Win/vc12/unit-map-find.vcxproj b/projects/Win/vc12/unit-map-find.vcxproj index ec8ae23c..9c527b7a 100644 --- a/projects/Win/vc12/unit-map-find.vcxproj +++ b/projects/Win/vc12/unit-map-find.vcxproj @@ -58,7 +58,7 @@ - + diff --git a/projects/Win/vc12/unit-map-find.vcxproj.filters b/projects/Win/vc12/unit-map-find.vcxproj.filters index ff0be0d8..490f3fd6 100644 --- a/projects/Win/vc12/unit-map-find.vcxproj.filters +++ b/projects/Win/vc12/unit-map-find.vcxproj.filters @@ -43,9 +43,6 @@ map_find_string - - map_find_string - map_find_string @@ -73,9 +70,6 @@ map_insfind_int - - map_insfind_int - map_insfind_int @@ -91,6 +85,12 @@ map_find_int + + map_insfind_int + + + map_find_string + diff --git a/projects/source.unit.map.mk b/projects/source.unit.map.mk index 953e74ee..80dc4804 100644 --- a/projects/source.unit.map.mk +++ b/projects/source.unit.map.mk @@ -15,10 +15,10 @@ CDSUNIT_MAP_SOURCES := \ tests/unit/map2/map_find_string_cuckoo.cpp \ tests/unit/map2/map_find_string_ellentree.cpp \ tests/unit/map2/map_find_string_michael.cpp \ + tests/unit/map2/map_find_string_multilevelhashmap.cpp \ tests/unit/map2/map_find_string_skip.cpp \ tests/unit/map2/map_find_string_split.cpp \ tests/unit/map2/map_find_string_striped.cpp \ - tests/unit/map2/map_find_string_refinable.cpp \ tests/unit/map2/map_find_string_std.cpp \ tests/unit/map2/map_insfind_int.cpp \ tests/unit/map2/map_insfind_int_bronsonavltree.cpp \ diff --git a/tests/data/test-debug.conf b/tests/data/test-debug.conf index d9a924f9..bf2a6506 100644 --- a/tests/data/test-debug.conf +++ b/tests/data/test-debug.conf @@ -122,6 +122,14 @@ PercentExists=50 PassCount=2 MaxLoadFactor=4 PrintGCStateFlag=1 +# *** Cuckoo map properties +CuckooInitialSize=256 +CuckooProbesetSize=8 +# 0 - use default +CuckooProbesetThreshold=0 +# *** MultiLevelHashMap properties +MultiLevelMapHeadBits=8 +MultiLevelMapArrayBits=4 [Map_find_string] ThreadCount=2 @@ -130,6 +138,14 @@ PercentExists=50 PassCount=2 MaxLoadFactor=4 PrintGCStateFlag=1 +# *** Cuckoo map properties +CuckooInitialSize=256 +CuckooProbesetSize=8 +# 0 - use default +CuckooProbesetThreshold=0 +# *** MultiLevelHashMap properties +MultiLevelMapHeadBits=8 +MultiLevelMapArrayBits=4 [Map_InsDel_int] InsertThreadCount=4 diff --git a/tests/data/test-express.conf b/tests/data/test-express.conf index 27e8f232..3a533135 100644 --- a/tests/data/test-express.conf +++ b/tests/data/test-express.conf @@ -120,6 +120,14 @@ PercentExists=50 PassCount=2 MaxLoadFactor=4 PrintGCStateFlag=1 +# *** Cuckoo map properties +CuckooInitialSize=1024 +CuckooProbesetSize=16 +# 0 - use default +CuckooProbesetThreshold=0 +# *** MultiLevelHashMap properties +MultiLevelMapHeadBits=8 +MultiLevelMapArrayBits=4 [Map_find_string] ThreadCount=8 @@ -128,6 +136,14 @@ PercentExists=50 PassCount=2 MaxLoadFactor=4 PrintGCStateFlag=1 +# *** Cuckoo map properties +CuckooInitialSize=1024 +CuckooProbesetSize=16 +# 0 - use default +CuckooProbesetThreshold=0 +# *** MultiLevelHashMap properties +MultiLevelMapHeadBits=8 +MultiLevelMapArrayBits=4 [Map_InsDel_int] InsertThreadCount=4 diff --git a/tests/data/test.conf b/tests/data/test.conf index e2703951..d65bd713 100644 --- a/tests/data/test.conf +++ b/tests/data/test.conf @@ -115,6 +115,14 @@ PercentExists=50 PassCount=1 MaxLoadFactor=4 PrintGCStateFlag=1 +# *** Cuckoo map properties +CuckooInitialSize=1024 +CuckooProbesetSize=16 +# 0 - use default +CuckooProbesetThreshold=0 +# *** MultiLevelHashMap properties +MultiLevelMapHeadBits=10 +MultiLevelMapArrayBits=4 [Map_find_string] ThreadCount=8 @@ -123,6 +131,14 @@ PercentExists=50 PassCount=1 MaxLoadFactor=4 PrintGCStateFlag=1 +# *** Cuckoo map properties +CuckooInitialSize=1024 +CuckooProbesetSize=16 +# 0 - use default +CuckooProbesetThreshold=0 +# *** MultiLevelHashMap properties +MultiLevelMapHeadBits=10 +MultiLevelMapArrayBits=4 [Map_InsDel_int] InsertThreadCount=4 diff --git a/tests/unit/map2/CMakeLists.txt b/tests/unit/map2/CMakeLists.txt index 1e87f1ac..bc30418f 100644 --- a/tests/unit/map2/CMakeLists.txt +++ b/tests/unit/map2/CMakeLists.txt @@ -16,10 +16,10 @@ set(CDSUNIT_MAP_SOURCES map_find_string_cuckoo.cpp map_find_string_ellentree.cpp map_find_string_michael.cpp + map_find_string_multilevelhashmap.cpp map_find_string_skip.cpp map_find_string_split.cpp map_find_string_striped.cpp - map_find_string_refinable.cpp map_find_string_std.cpp map_insfind_int.cpp map_insfind_int_bronsonavltree.cpp diff --git a/tests/unit/map2/map_find_string.cpp b/tests/unit/map2/map_find_string.cpp index c0629f43..6ccadef3 100644 --- a/tests/unit/map2/map_find_string.cpp +++ b/tests/unit/map2/map_find_string.cpp @@ -5,13 +5,6 @@ namespace map2 { CPPUNIT_TEST_SUITE_REGISTRATION( Map_find_string ); - size_t Map_find_string::c_nThreadCount = 8 ; // thread count - size_t Map_find_string::c_nMapSize = 20000000 ; // map size (count of searching item) - size_t Map_find_string::c_nPercentExists = 50 ; // percent of existing keys in searching sequence - size_t Map_find_string::c_nPassCount = 2; - size_t Map_find_string::c_nMaxLoadFactor = 8 ; // maximum load factor - bool Map_find_string::c_bPrintGCState = true; - void Map_find_string::generateSequence() { size_t nPercent = c_nPercentExists; @@ -21,59 +14,47 @@ namespace map2 { else if ( nPercent < 1 ) nPercent = 1; - m_nRealMapSize = 0; - - std::vector const & arrString = CppUnitMini::TestCase::getTestStrings(); + std::vector const& arrString = CppUnitMini::TestCase::getTestStrings(); size_t nSize = arrString.size(); if ( nSize > c_nMapSize ) nSize = c_nMapSize; m_Arr.resize( nSize ); + + nSize = 0; for ( size_t i = 0; i < nSize; ++i ) { m_Arr[i].pKey = &( arrString[i] ); m_Arr[i].bExists = CppUnitMini::Rand( 100 ) <= nPercent; if ( m_Arr[i].bExists ) - ++m_nRealMapSize; - } - } - - void Map_find_string::initTestSequence() - { - if ( !m_bSeqInit ) { - m_bSeqInit = true; - - CPPUNIT_MSG( "Generating test data..."); - cds::OS::Timer timer; - generateSequence(); - CPPUNIT_MSG( " Duration=" << timer.duration() ); - CPPUNIT_MSG( "Map size=" << m_nRealMapSize << " find key loop=" << m_Arr.size() << " (" << c_nPercentExists << "% success)" ); - CPPUNIT_MSG( "Thread count=" << c_nThreadCount << " Pass count=" << c_nPassCount ); + ++nSize; } + c_nMapSize = nSize; } void Map_find_string::setUpParams( const CppUnitMini::TestCfg& cfg ) { c_nThreadCount = cfg.getSizeT("ThreadCount", c_nThreadCount ); - c_nMapSize = cfg.getSizeT("MapSize", c_nMapSize ); - c_nPercentExists = cfg.getSizeT("PercentExists", c_nPercentExists ); - c_nPassCount = cfg.getSizeT("PassCount", c_nPassCount ); - c_nMaxLoadFactor = cfg.getSizeT("MaxLoadFactor", c_nMaxLoadFactor ); - c_bPrintGCState = cfg.getBool("PrintGCStateFlag", true ); - } + c_nMapSize = cfg.getSizeT("MapSize", c_nMapSize); + c_nPercentExists = cfg.getSizeT("PercentExists", c_nPercentExists); + c_nPassCount = cfg.getSizeT("PassCount", c_nPassCount); + c_nMaxLoadFactor = cfg.getSizeT("MaxLoadFactor", c_nMaxLoadFactor); + c_bPrintGCState = cfg.getBool("PrintGCStateFlag", c_bPrintGCState ); - void Map_find_string::myRun(const char *in_name, bool invert /*= false*/) - { - setUpParams( m_Cfg.get( "Map_find_string" )); + c_nCuckooInitialSize = cfg.getSizeT("CuckooInitialSize", c_nCuckooInitialSize); + c_nCuckooProbesetSize = cfg.getSizeT("CuckooProbesetSize", c_nCuckooProbesetSize); + c_nCuckooProbesetThreshold = cfg.getSizeT("CuckooProbesetThreshold", c_nCuckooProbesetThreshold); + + c_nMultiLevelMap_HeadBits = cfg.getSizeT("MultiLevelMapHeadBits", c_nMultiLevelMap_HeadBits); + c_nMultiLevelMap_ArrayBits = cfg.getSizeT("MultiLevelMapArrayBits", c_nMultiLevelMap_ArrayBits); + + if ( c_nThreadCount == 0 ) + c_nThreadCount = std::thread::hardware_concurrency(); - run_MichaelMap(in_name, invert); - run_SplitList(in_name, invert); - run_SkipListMap(in_name, invert); - run_EllenBinTreeMap(in_name, invert); - run_BronsonAVLTreeMap(in_name, invert); - run_StripedMap(in_name, invert); - run_RefinableMap(in_name, invert); - run_CuckooMap(in_name, invert); - run_StdMap(in_name, invert); + CPPUNIT_MSG( "Generating test data..."); + cds::OS::Timer timer; + generateSequence(); + CPPUNIT_MSG( " Duration=" << timer.duration() ); + CPPUNIT_MSG( "Map size=" << c_nMapSize << " find key loop=" << m_Arr.size() << " (" << c_nPercentExists << "% success)" ); + CPPUNIT_MSG( "Thread count=" << c_nThreadCount << " Pass count=" << c_nPassCount ); - endTestCase(); } } // namespace map2 diff --git a/tests/unit/map2/map_find_string.h b/tests/unit/map2/map_find_string.h index 31d3fe43..bb051053 100644 --- a/tests/unit/map2/map_find_string.h +++ b/tests/unit/map2/map_find_string.h @@ -7,20 +7,28 @@ namespace map2 { -# define TEST_MAP(IMPL, C, X) void C::X() { test::X >(); } -# define TEST_MAP_NOLF(IMPL, C, X) void C::X() { test_nolf::X >(); } -# define TEST_MAP_EXTRACT(IMPL, C, X) TEST_MAP(IMPL, C, X) -# define TEST_MAP_NOLF_EXTRACT(IMPL, C, X) TEST_MAP_NOLF(IMPL, C, X) +#define TEST_CASE(TAG, X) void X(); class Map_find_string: public CppUnitMini::TestCase { - static size_t c_nThreadCount; // thread count - static size_t c_nMapSize; // map size (count of searching item) - static size_t c_nPercentExists; // percent of existing keys in searching sequence - static size_t c_nPassCount; - static size_t c_nMaxLoadFactor; // maximum load factor - static bool c_bPrintGCState; + public: + size_t c_nThreadCount = 8; // thread count + size_t c_nMapSize = 10000000; // map size (count of searching item) + size_t c_nPercentExists = 50; // percent of existing keys in searching sequence + size_t c_nPassCount = 2; + size_t c_nMaxLoadFactor = 8; // maximum load factor + bool c_bPrintGCState = true; + + size_t c_nCuckooInitialSize = 1024;// initial size for CuckooMap + size_t c_nCuckooProbesetSize = 16; // CuckooMap probeset size (only for list-based probeset) + size_t c_nCuckooProbesetThreshold = 0; // CUckooMap probeset threshold (o - use default) + + size_t c_nMultiLevelMap_HeadBits = 10; + size_t c_nMultiLevelMap_ArrayBits = 4; + size_t c_nLoadFactor; // current load factor + + private: typedef CppUnitMini::TestCase Base; typedef std::string key_type; struct value_type { @@ -30,8 +38,6 @@ namespace map2 { typedef std::vector ValueVector; ValueVector m_Arr; - size_t m_nRealMapSize; - bool m_bSeqInit; template static bool check_result( Iterator const& it, Map const& map ) @@ -44,10 +50,10 @@ namespace map2 { return b; } - template + template class TestThread: public CppUnitMini::TestThread { - MAP& m_Map; + Map& m_Map; virtual TestThread * clone() { @@ -68,7 +74,7 @@ namespace map2 { Stat m_KeyNotExists; public: - TestThread( CppUnitMini::ThreadPool& pool, MAP& rMap ) + TestThread( CppUnitMini::ThreadPool& pool, Map& rMap ) : CppUnitMini::TestThread( pool ) , m_Map( rMap ) {} @@ -88,14 +94,14 @@ namespace map2 { virtual void test() { ValueVector& arr = getTest().m_Arr; - //size_t nSize = arr.size(); + size_t const nPassCount = getTest().c_nPassCount; - MAP& rMap = m_Map; - for ( size_t nPass = 0; nPass < c_nPassCount; ++nPass ) { + Map& rMap = m_Map; + for ( size_t nPass = 0; nPass < nPassCount; ++nPass ) { if ( m_nThreadNo & 1 ) { ValueVector::const_iterator itEnd = arr.end(); for ( ValueVector::const_iterator it = arr.begin(); it != itEnd; ++it ) { - auto bFound = rMap.find( *(it->pKey) ); + auto bFound = rMap.contains( *(it->pKey) ); if ( it->bExists ) { if ( check_result(bFound, rMap)) ++m_KeyExists.nSuccess; @@ -113,7 +119,7 @@ namespace map2 { else { ValueVector::const_reverse_iterator itEnd = arr.rend(); for ( ValueVector::const_reverse_iterator it = arr.rbegin(); it != itEnd; ++it ) { - auto bFound = rMap.find( *(it->pKey) ); + auto bFound = rMap.contains( *(it->pKey) ); if ( it->bExists ) { if ( check_result(bFound, rMap)) ++m_KeyExists.nSuccess; @@ -134,17 +140,17 @@ namespace map2 { public: Map_find_string() - : m_bSeqInit( false ) + : c_nLoadFactor( 2 ) {} protected: void generateSequence(); - template - void find_string_test( MAP& testMap ) + template + void find_string_test( Map& testMap ) { - typedef TestThread Thread; + typedef TestThread Thread; cds::OS::Timer timer; // Fill the map @@ -166,9 +172,9 @@ namespace map2 { // Postcondition: the number of success searching == the number of map item for ( CppUnitMini::ThreadPool::iterator it = pool.begin(); it != pool.end(); ++it ) { Thread * pThread = static_cast( *it ); - CPPUNIT_CHECK( pThread->m_KeyExists.nSuccess == m_nRealMapSize * c_nPassCount ); + CPPUNIT_CHECK( pThread->m_KeyExists.nSuccess == c_nMapSize * c_nPassCount ); CPPUNIT_CHECK( pThread->m_KeyExists.nFailed == 0 ); - CPPUNIT_CHECK( pThread->m_KeyNotExists.nSuccess == (m_Arr.size() - m_nRealMapSize) * c_nPassCount ); + CPPUNIT_CHECK( pThread->m_KeyNotExists.nSuccess == (m_Arr.size() - c_nMapSize) * c_nPassCount ); CPPUNIT_CHECK( pThread->m_KeyNotExists.nFailed == 0 ); } @@ -180,28 +186,32 @@ namespace map2 { additional_cleanup( testMap ); } - void initTestSequence(); - - template - void test() + template + void run_test() { - initTestSequence(); - - for ( size_t nLoadFactor = 1; nLoadFactor <= c_nMaxLoadFactor; nLoadFactor *= 2 ) { - CPPUNIT_MSG( "Load factor=" << nLoadFactor ); - MAP testMap( m_Arr.size(), nLoadFactor ); + if ( Map::c_bLoadFactorDepended ) { + for ( size_t nLoadFactor = 1; nLoadFactor <= c_nMaxLoadFactor; nLoadFactor *= 2 ) { + CPPUNIT_MSG( "Load factor=" << nLoadFactor ); + Map testMap( *this ); + find_string_test( testMap ); + if ( c_bPrintGCState ) + print_gc_state(); + } + } + else { + Map testMap( *this ); find_string_test( testMap ); if ( c_bPrintGCState ) print_gc_state(); } } - template + template void test_nolf() { initTestSequence(); - MAP testMap; + Map testMap; find_string_test( testMap ); if ( c_bPrintGCState ) print_gc_state(); @@ -209,19 +219,6 @@ namespace map2 { void setUpParams( const CppUnitMini::TestCfg& cfg ); - void run_MichaelMap(const char *in_name, bool invert = false); - void run_SplitList(const char *in_name, bool invert = false); - void run_StripedMap(const char *in_name, bool invert = false); - void run_RefinableMap(const char *in_name, bool invert = false); - void run_CuckooMap(const char *in_name, bool invert = false); - void run_SkipListMap(const char *in_name, bool invert = false); - void run_EllenBinTreeMap(const char *in_name, bool invert = false); - void run_BronsonAVLTreeMap(const char *in_name, bool invert = false); - void run_StdMap(const char *in_name, bool invert = false); - - virtual void myRun(const char *in_name, bool invert = false); - - # include "map2/map_defs.h" CDSUNIT_DECLARE_MichaelMap CDSUNIT_DECLARE_MichaelMap_nogc @@ -231,9 +228,28 @@ namespace map2 { CDSUNIT_DECLARE_SkipListMap_nogc CDSUNIT_DECLARE_EllenBinTreeMap CDSUNIT_DECLARE_BronsonAVLTreeMap + CDSUNIT_DECLARE_MultiLevelHashMap CDSUNIT_DECLARE_StripedMap CDSUNIT_DECLARE_RefinableMap CDSUNIT_DECLARE_CuckooMap CDSUNIT_DECLARE_StdMap + CDSUNIT_DECLARE_StdMap_NoLock + + CPPUNIT_TEST_SUITE(Map_find_string) + CDSUNIT_TEST_MichaelMap + CDSUNIT_TEST_MichaelMap_nogc + CDSUNIT_TEST_SplitList + CDSUNIT_TEST_SplitList_nogc + CDSUNIT_TEST_SkipListMap + CDSUNIT_TEST_SkipListMap_nogc + CDSUNIT_TEST_EllenBinTreeMap + CDSUNIT_TEST_BronsonAVLTreeMap + CDSUNIT_TEST_MultiLevelHashMap + CDSUNIT_TEST_CuckooMap + CDSUNIT_TEST_StripedMap + CDSUNIT_TEST_RefinableMap + CDSUNIT_TEST_StdMap + CDSUNIT_TEST_StdMap_NoLock + CPPUNIT_TEST_SUITE_END(); }; } // namespace map2 diff --git a/tests/unit/map2/map_find_string_bronsonavltree.cpp b/tests/unit/map2/map_find_string_bronsonavltree.cpp index 5f4fb3c5..dac0690f 100644 --- a/tests/unit/map2/map_find_string_bronsonavltree.cpp +++ b/tests/unit/map2/map_find_string_bronsonavltree.cpp @@ -3,10 +3,10 @@ #include "map2/map_find_string.h" #include "map2/map_type_bronson_avltree.h" -namespace map2 { - CDSUNIT_DEFINE_BronsonAVLTreeMap( cc::bronson_avltree::implementation_tag, Map_find_string) +#undef TEST_CASE +#define TEST_CASE(TAG, X) void Map_find_string::X() { run_test::X>(); } +#include "map2/map_defs.h" - CPPUNIT_TEST_SUITE_PART( Map_find_string, run_BronsonAVLTreeMap ) - CDSUNIT_TEST_BronsonAVLTreeMap - CPPUNIT_TEST_SUITE_END_PART() +namespace map2 { + CDSUNIT_DECLARE_BronsonAVLTreeMap } // namespace map2 diff --git a/tests/unit/map2/map_find_string_cuckoo.cpp b/tests/unit/map2/map_find_string_cuckoo.cpp index 6bb73158..4f419f5a 100644 --- a/tests/unit/map2/map_find_string_cuckoo.cpp +++ b/tests/unit/map2/map_find_string_cuckoo.cpp @@ -3,10 +3,10 @@ #include "map2/map_find_string.h" #include "map2/map_type_cuckoo.h" -namespace map2 { - CDSUNIT_DEFINE_CuckooMap(cds::intrusive::cuckoo::implementation_tag, Map_find_string) +#undef TEST_CASE +#define TEST_CASE(TAG, X) void Map_find_string::X() { run_test::X>(); } +#include "map2/map_defs.h" - CPPUNIT_TEST_SUITE_PART( Map_find_string, run_CuckooMap ) - CDSUNIT_TEST_CuckooMap - CPPUNIT_TEST_SUITE_END_PART() +namespace map2 { + CDSUNIT_DECLARE_CuckooMap } // namespace map2 diff --git a/tests/unit/map2/map_find_string_ellentree.cpp b/tests/unit/map2/map_find_string_ellentree.cpp index 6dfe5172..5888ccd7 100644 --- a/tests/unit/map2/map_find_string_ellentree.cpp +++ b/tests/unit/map2/map_find_string_ellentree.cpp @@ -3,10 +3,10 @@ #include "map2/map_find_string.h" #include "map2/map_type_ellen_bintree.h" -namespace map2 { - CDSUNIT_DEFINE_EllenBinTreeMap( cc::ellen_bintree::implementation_tag, Map_find_string) +#undef TEST_CASE +#define TEST_CASE(TAG, X) void Map_find_string::X() { run_test::X>(); } +#include "map2/map_defs.h" - CPPUNIT_TEST_SUITE_PART( Map_find_string, run_EllenBinTreeMap ) - CDSUNIT_TEST_EllenBinTreeMap - CPPUNIT_TEST_SUITE_END_PART() +namespace map2 { + CDSUNIT_DECLARE_EllenBinTreeMap } // namespace map2 diff --git a/tests/unit/map2/map_find_string_michael.cpp b/tests/unit/map2/map_find_string_michael.cpp index 9cb59f50..399b73f7 100644 --- a/tests/unit/map2/map_find_string_michael.cpp +++ b/tests/unit/map2/map_find_string_michael.cpp @@ -3,12 +3,11 @@ #include "map2/map_find_string.h" #include "map2/map_type_michael.h" -namespace map2 { - CDSUNIT_DEFINE_MichaelMap( cc::michael_map::implementation_tag, Map_find_string ) - CDSUNIT_DEFINE_MichaelMap_nogc( cc::michael_map::implementation_tag, Map_find_string ) +#undef TEST_CASE +#define TEST_CASE(TAG, X) void Map_find_string::X() { run_test::X>(); } +#include "map2/map_defs.h" - CPPUNIT_TEST_SUITE_PART( Map_find_string, run_MichaelMap ) - CDSUNIT_TEST_MichaelMap - CDSUNIT_TEST_MichaelMap_nogc - CPPUNIT_TEST_SUITE_END_PART() +namespace map2 { + CDSUNIT_DECLARE_MichaelMap + CDSUNIT_DECLARE_MichaelMap_nogc } // namespace map2 diff --git a/tests/unit/map2/map_find_string_multilevelhashmap.cpp b/tests/unit/map2/map_find_string_multilevelhashmap.cpp new file mode 100644 index 00000000..e7eb41a5 --- /dev/null +++ b/tests/unit/map2/map_find_string_multilevelhashmap.cpp @@ -0,0 +1,12 @@ +//$$CDS-header$$ + +#include "map2/map_find_string.h" +#include "map2/map_type_multilevel_hashmap.h" + +#undef TEST_CASE +#define TEST_CASE(TAG, X) void Map_find_string::X() { run_test::X>(); } +#include "map2/map_defs.h" + +namespace map2 { + CDSUNIT_DECLARE_MultiLevelHashMap +} // namespace map2 diff --git a/tests/unit/map2/map_find_string_refinable.cpp b/tests/unit/map2/map_find_string_refinable.cpp deleted file mode 100644 index 3f708edb..00000000 --- a/tests/unit/map2/map_find_string_refinable.cpp +++ /dev/null @@ -1,12 +0,0 @@ -//$$CDS-header$$ - -#include "map2/map_find_string.h" -#include "map2/map_type_striped.h" - -namespace map2 { - CDSUNIT_DEFINE_RefinableMap(cc::striped_set::implementation_tag, Map_find_string) - - CPPUNIT_TEST_SUITE_PART( Map_find_string, run_RefinableMap ) - CDSUNIT_TEST_RefinableMap - CPPUNIT_TEST_SUITE_END_PART() -} // namespace map2 diff --git a/tests/unit/map2/map_find_string_skip.cpp b/tests/unit/map2/map_find_string_skip.cpp index ae9f27fa..92443b39 100644 --- a/tests/unit/map2/map_find_string_skip.cpp +++ b/tests/unit/map2/map_find_string_skip.cpp @@ -3,12 +3,11 @@ #include "map2/map_find_string.h" #include "map2/map_type_skip_list.h" -namespace map2 { - CDSUNIT_DEFINE_SkipListMap( cc::skip_list::implementation_tag, Map_find_string) - CDSUNIT_DEFINE_SkipListMap_nogc( cc::skip_list::implementation_tag, Map_find_string) +#undef TEST_CASE +#define TEST_CASE(TAG, X) void Map_find_string::X() { run_test::X>(); } +#include "map2/map_defs.h" - CPPUNIT_TEST_SUITE_PART( Map_find_string, run_SkipListMap ) - CDSUNIT_TEST_SkipListMap - CDSUNIT_TEST_SkipListMap_nogc - CPPUNIT_TEST_SUITE_END_PART() +namespace map2 { + CDSUNIT_DECLARE_SkipListMap + CDSUNIT_DECLARE_SkipListMap_nogc } // namespace map2 diff --git a/tests/unit/map2/map_find_string_split.cpp b/tests/unit/map2/map_find_string_split.cpp index ee236aa5..0ce0f882 100644 --- a/tests/unit/map2/map_find_string_split.cpp +++ b/tests/unit/map2/map_find_string_split.cpp @@ -3,12 +3,11 @@ #include "map2/map_find_string.h" #include "map2/map_type_split_list.h" -namespace map2 { - CDSUNIT_DEFINE_SplitList( cc::split_list::implementation_tag, Map_find_string ) - CDSUNIT_DEFINE_SplitList_nogc( cc::split_list::implementation_tag, Map_find_string ) +#undef TEST_CASE +#define TEST_CASE(TAG, X) void Map_find_string::X() { run_test::X>(); } +#include "map2/map_defs.h" - CPPUNIT_TEST_SUITE_PART( Map_find_string, run_SplitList ) - CDSUNIT_TEST_SplitList - CDSUNIT_TEST_SplitList_nogc - CPPUNIT_TEST_SUITE_END_PART() +namespace map2 { + CDSUNIT_DECLARE_SplitList + CDSUNIT_DECLARE_SplitList_nogc } // namespace map2 diff --git a/tests/unit/map2/map_find_string_std.cpp b/tests/unit/map2/map_find_string_std.cpp index 6f2a645c..b148617f 100644 --- a/tests/unit/map2/map_find_string_std.cpp +++ b/tests/unit/map2/map_find_string_std.cpp @@ -3,10 +3,11 @@ #include "map2/map_find_string.h" #include "map2/map_type_std.h" -namespace map2 { - CDSUNIT_DEFINE_StdMap( map2::std_implementation_tag, Map_find_string) +#undef TEST_CASE +#define TEST_CASE(TAG, X) void Map_find_string::X() { run_test::X>(); } +#include "map2/map_defs.h" - CPPUNIT_TEST_SUITE_PART( Map_find_string, run_StdMap ) - CDSUNIT_TEST_StdMap - CPPUNIT_TEST_SUITE_END_PART() +namespace map2 { + CDSUNIT_DECLARE_StdMap + CDSUNIT_DECLARE_StdMap_NoLock } // namespace map2 diff --git a/tests/unit/map2/map_find_string_striped.cpp b/tests/unit/map2/map_find_string_striped.cpp index afba7b67..c0188ba6 100644 --- a/tests/unit/map2/map_find_string_striped.cpp +++ b/tests/unit/map2/map_find_string_striped.cpp @@ -3,10 +3,11 @@ #include "map2/map_find_string.h" #include "map2/map_type_striped.h" -namespace map2 { - CDSUNIT_DEFINE_StripedMap(cc::striped_set::implementation_tag, Map_find_string) +#undef TEST_CASE +#define TEST_CASE(TAG, X) void Map_find_string::X() { run_test::X>(); } +#include "map2/map_defs.h" - CPPUNIT_TEST_SUITE_PART( Map_find_string, run_StripedMap ) - CDSUNIT_TEST_StripedMap - CPPUNIT_TEST_SUITE_END_PART() +namespace map2 { + CDSUNIT_DECLARE_StripedMap + CDSUNIT_DECLARE_RefinableMap } // namespace map2 -- 2.34.1