From: khizmax Date: Tue, 24 Mar 2015 20:24:42 +0000 (+0300) Subject: Splitted up map_find_string test to reduce compiling time and memory requirements X-Git-Tag: v2.1.0~296^2~10 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=dd762f5cfca7c8d35faf3b3a415075d254750c15;p=libcds.git Splitted up map_find_string test to reduce compiling time and memory requirements --- diff --git a/projects/Win/vc12/unit-map-find.vcxproj b/projects/Win/vc12/unit-map-find.vcxproj index 5beceb54..4559070d 100644 --- a/projects/Win/vc12/unit-map-find.vcxproj +++ b/projects/Win/vc12/unit-map-find.vcxproj @@ -54,6 +54,15 @@ + + + + + + + + + @@ -67,6 +76,7 @@ + diff --git a/projects/source.unit.map.mk b/projects/source.unit.map.mk index f44c1a47..22bac08f 100644 --- a/projects/source.unit.map.mk +++ b/projects/source.unit.map.mk @@ -11,6 +11,15 @@ CDSUNIT_MAP_SOURCES := \ tests/unit/map2/map_find_int_refinable.cpp \ tests/unit/map2/map_find_int_std.cpp \ tests/unit/map2/map_find_string.cpp \ + tests/unit/map2/map_find_string_bronsonavltree.cpp \ + 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_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 \ tests/unit/map2/map_insfind_int_cuckoo.cpp \ diff --git a/tests/cppunit/cppunit_mini.h b/tests/cppunit/cppunit_mini.h index 89ae6d0d..714b0883 100644 --- a/tests/cppunit/cppunit_mini.h +++ b/tests/cppunit/cppunit_mini.h @@ -81,6 +81,10 @@ namespace CppUnitMini unsigned int getUInt( const char * pszParamName, unsigned int nDefVal = 0 ) const { return get( pszParamName, nDefVal ) ; } long getLong( const char * pszParamName, long nDefVal = 0 ) const { return get( pszParamName, nDefVal ) ; } unsigned long getULong( const char * pszParamName, unsigned long nDefVal = 0 ) const { return get( pszParamName, nDefVal ) ; } + size_t getSizeT( const char * pszParamName, size_t nDefVal = 0 ) const + { + return static_cast( getULong( pszParamName, static_cast(nDefVal))); + } bool getBool( const char * pszParamName, bool bDefVal = false ) const { @@ -96,8 +100,7 @@ namespace CppUnitMini std::cerr << "bad_lexical_cast encountered while getting parameter " << strParamName << "=" << it->second << ": " << ex.what() - << std::endl -; + << std::endl; } return bDefVal; } diff --git a/tests/unit/map2/map_find_int.cpp b/tests/unit/map2/map_find_int.cpp index c8bfe854..5b201ff8 100644 --- a/tests/unit/map2/map_find_int.cpp +++ b/tests/unit/map2/map_find_int.cpp @@ -50,11 +50,11 @@ namespace map2 { void Map_find_int::setUpParams( const CppUnitMini::TestCfg& cfg ) { - c_nThreadCount = cfg.getULong("ThreadCount", static_cast(c_nThreadCount)); // thread count - c_nMapSize = cfg.getULong("MapSize", static_cast(c_nMapSize)); // map size (count of searching item) - c_nPercentExists = cfg.getULong("PercentExists", static_cast(c_nPercentExists)); // percent of existing keys in searching sequence - c_nPassCount = cfg.getULong("PassCount", static_cast(c_nPassCount)); - c_nMaxLoadFactor = cfg.getULong("MaxLoadFactor", static_cast(c_nMaxLoadFactor)); + 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", c_bPrintGCState ); } diff --git a/tests/unit/map2/map_find_int.h b/tests/unit/map2/map_find_int.h index 0408d4c3..cc4c12ee 100644 --- a/tests/unit/map2/map_find_int.h +++ b/tests/unit/map2/map_find_int.h @@ -247,22 +247,5 @@ namespace map2 { CDSUNIT_DECLARE_RefinableMap CDSUNIT_DECLARE_CuckooMap CDSUNIT_DECLARE_StdMap - - /* - CPPUNIT_TEST_SUITE( Map_find_int ) - 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_StripedMap - CDSUNIT_TEST_RefinableMap - CDSUNIT_TEST_CuckooMap - CDSUNIT_TEST_StdMap - CPPUNIT_TEST_SUITE_END() - */ }; } // namespace map diff --git a/tests/unit/map2/map_find_string.cpp b/tests/unit/map2/map_find_string.cpp index e1398b9c..c0629f43 100644 --- a/tests/unit/map2/map_find_string.cpp +++ b/tests/unit/map2/map_find_string.cpp @@ -1,287 +1,79 @@ //$$CDS-header$$ -#include "map2/map_types.h" -#include "cppunit/thread.h" - -#include +#include "map2/map_find_string.h" namespace map2 { + CPPUNIT_TEST_SUITE_REGISTRATION( Map_find_string ); -# define TEST_MAP(X) void X() { test::X >() ; } -# define TEST_MAP_NOLF(X) void X() { test_nolf::X >() ; } -# define TEST_MAP_EXTRACT(X) TEST_MAP(X) -# define TEST_MAP_NOLF_EXTRACT(X) TEST_MAP_NOLF(X) - - namespace { - static size_t c_nThreadCount = 8 ; // thread count - static size_t c_nMapSize = 20000000 ; // map size (count of searching item) - static size_t c_nPercentExists = 50 ; // percent of existing keys in searching sequence - static size_t c_nPassCount = 2; - static size_t c_nMaxLoadFactor = 8 ; // maximum load factor - static bool c_bPrintGCState = true; - } + 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; - class Map_find_string: public CppUnitMini::TestCase + void Map_find_string::generateSequence() { - typedef std::string key_type; - struct value_type { - std::string const * pKey; - bool bExists ; // true - key in map, false - key not in map - }; - - 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 ) - { - return it != map.end(); - } - template - static bool check_result( bool b, Map const& ) - { - return b; - } - - template - class TestThread: public CppUnitMini::TestThread - { - MAP& m_Map; - - virtual TestThread * clone() - { - return new TestThread( *this ); - } - public: - struct Stat { - size_t nSuccess; - size_t nFailed; - - Stat() - : nSuccess(0) - , nFailed(0) - {} - }; - - Stat m_KeyExists; - Stat m_KeyNotExists; - - public: - TestThread( CppUnitMini::ThreadPool& pool, MAP& rMap ) - : CppUnitMini::TestThread( pool ) - , m_Map( rMap ) - {} - TestThread( TestThread& src ) - : CppUnitMini::TestThread( src ) - , m_Map( src.m_Map ) - {} - - Map_find_string& getTest() - { - return reinterpret_cast( m_Pool.m_Test ); - } - - virtual void init() { cds::threading::Manager::attachThread() ; } - virtual void fini() { cds::threading::Manager::detachThread() ; } - - virtual void test() - { - ValueVector& arr = getTest().m_Arr; - //size_t nSize = arr.size(); - - MAP& rMap = m_Map; - for ( size_t nPass = 0; nPass < c_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) ); - if ( it->bExists ) { - if ( check_result(bFound, rMap)) - ++m_KeyExists.nSuccess; - else - ++m_KeyExists.nFailed; - } - else { - if ( check_result(bFound, rMap)) - ++m_KeyNotExists.nFailed; - else - ++m_KeyNotExists.nSuccess; - } - } - } - 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) ); - if ( it->bExists ) { - if ( check_result(bFound, rMap)) - ++m_KeyExists.nSuccess; - else - ++m_KeyExists.nFailed; - } - else { - if ( check_result( bFound, rMap )) - ++m_KeyNotExists.nFailed; - else - ++m_KeyNotExists.nSuccess; - } - } - } - } - } - }; - - public: - Map_find_string() - : m_bSeqInit( false ) - {} - - protected: - - void generateSequence() - { - size_t nPercent = c_nPercentExists; - - if ( nPercent > 100 ) - nPercent = 100; - else if ( nPercent < 1 ) - nPercent = 1; - - m_nRealMapSize = 0; - - std::vector const & arrString = CppUnitMini::TestCase::getTestStrings(); - size_t nSize = arrString.size(); - if ( nSize > c_nMapSize ) - nSize = c_nMapSize; - m_Arr.resize( nSize ); - 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; - } + size_t nPercent = c_nPercentExists; + + if ( nPercent > 100 ) + nPercent = 100; + else if ( nPercent < 1 ) + nPercent = 1; + + m_nRealMapSize = 0; + + std::vector const & arrString = CppUnitMini::TestCase::getTestStrings(); + size_t nSize = arrString.size(); + if ( nSize > c_nMapSize ) + nSize = c_nMapSize; + m_Arr.resize( nSize ); + 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; - template - void find_string_test( MAP& testMap ) - { - typedef TestThread Thread; + CPPUNIT_MSG( "Generating test data..."); cds::OS::Timer timer; - - // Fill the map - CPPUNIT_MSG( " Fill map..."); - timer.reset(); - for ( size_t i = 0; i < m_Arr.size(); ++i ) { - // All keys in arrData are unique, insert() must be successful - if ( m_Arr[i].bExists ) - CPPUNIT_ASSERT( check_result( testMap.insert( *(m_Arr[i].pKey), m_Arr[i] ), testMap )); - } + generateSequence(); CPPUNIT_MSG( " Duration=" << timer.duration() ); - - CPPUNIT_MSG( " Searching..."); - CppUnitMini::ThreadPool pool( *this ); - pool.add( new Thread( pool, testMap ), c_nThreadCount ); - pool.run(); - CPPUNIT_MSG( " Duration=" << pool.avgDuration() ); - - // 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.nFailed == 0 ); - CPPUNIT_CHECK( pThread->m_KeyNotExists.nSuccess == (m_Arr.size() - m_nRealMapSize) * c_nPassCount ); - CPPUNIT_CHECK( pThread->m_KeyNotExists.nFailed == 0 ); - } - - check_before_cleanup( testMap ); - - testMap.clear(); - additional_check( testMap ); - print_stat( testMap ); - additional_cleanup( testMap ); - } - - void 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 ); - } - } - - template - void test() - { - initTestSequence(); - - for ( size_t nLoadFactor = 1; nLoadFactor <= c_nMaxLoadFactor; nLoadFactor *= 2 ) { - CPPUNIT_MSG( "Load factor=" << nLoadFactor ); - MAP testMap( m_Arr.size(), nLoadFactor ); - find_string_test( testMap ); - if ( c_bPrintGCState ) - print_gc_state(); - } - } - - template - void test_nolf() - { - initTestSequence(); - - MAP testMap; - find_string_test( testMap ); - if ( c_bPrintGCState ) - print_gc_state(); - } - - void setUpParams( const CppUnitMini::TestCfg& cfg ) { - c_nThreadCount = cfg.getULong("ThreadCount", 8 ) ; // thread count - c_nMapSize = cfg.getULong("MapSize", 20000000 ) ; // map size (count of searching item) - c_nPercentExists = cfg.getULong("PercentExists", 50 ) ; // percent of existing keys in searching sequence - c_nPassCount = cfg.getULong("PassCount", 2 ); - c_nMaxLoadFactor = cfg.getULong("MaxLoadFactor", 8 ); - c_bPrintGCState = cfg.getBool("PrintGCStateFlag", true ); + 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 ); } + } -# include "map2/map_defs.h" - CDSUNIT_DECLARE_MichaelMap - CDSUNIT_DECLARE_MichaelMap_nogc - CDSUNIT_DECLARE_SplitList - CDSUNIT_DECLARE_SplitList_nogc - CDSUNIT_DECLARE_SkipListMap - CDSUNIT_DECLARE_SkipListMap_nogc - CDSUNIT_DECLARE_EllenBinTreeMap - CDSUNIT_DECLARE_BronsonAVLTreeMap - CDSUNIT_DECLARE_StripedMap - CDSUNIT_DECLARE_RefinableMap - CDSUNIT_DECLARE_CuckooMap - CDSUNIT_DECLARE_StdMap - - 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_StripedMap - CDSUNIT_TEST_RefinableMap - CDSUNIT_TEST_CuckooMap - CDSUNIT_TEST_StdMap - CPPUNIT_TEST_SUITE_END() - - }; + 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 ); + } - CPPUNIT_TEST_SUITE_REGISTRATION( Map_find_string ); + void Map_find_string::myRun(const char *in_name, bool invert /*= false*/) + { + setUpParams( m_Cfg.get( "Map_find_string" )); + + 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); + + endTestCase(); + } } // namespace map2 diff --git a/tests/unit/map2/map_find_string.h b/tests/unit/map2/map_find_string.h new file mode 100644 index 00000000..8796698e --- /dev/null +++ b/tests/unit/map2/map_find_string.h @@ -0,0 +1,239 @@ +//$$CDS-header$$ + +#include "map2/map_types.h" +#include "cppunit/thread.h" + +#include + +namespace map2 { + +# define TEST_MAP(X) void X() { test::X >() ; } +# define TEST_MAP_NOLF(X) void X() { test_nolf::X >() ; } +# define TEST_MAP_EXTRACT(X) TEST_MAP(X) +# define TEST_MAP_NOLF_EXTRACT(X) TEST_MAP_NOLF(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; + + typedef CppUnitMini::TestCase Base; + typedef std::string key_type; + struct value_type { + std::string const * pKey; + bool bExists ; // true - key in map, false - key not in map + }; + + 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 ) + { + return it != map.end(); + } + template + static bool check_result( bool b, Map const& ) + { + return b; + } + + template + class TestThread: public CppUnitMini::TestThread + { + MAP& m_Map; + + virtual TestThread * clone() + { + return new TestThread( *this ); + } + public: + struct Stat { + size_t nSuccess; + size_t nFailed; + + Stat() + : nSuccess(0) + , nFailed(0) + {} + }; + + Stat m_KeyExists; + Stat m_KeyNotExists; + + public: + TestThread( CppUnitMini::ThreadPool& pool, MAP& rMap ) + : CppUnitMini::TestThread( pool ) + , m_Map( rMap ) + {} + TestThread( TestThread& src ) + : CppUnitMini::TestThread( src ) + , m_Map( src.m_Map ) + {} + + Map_find_string& getTest() + { + return reinterpret_cast( m_Pool.m_Test ); + } + + virtual void init() { cds::threading::Manager::attachThread() ; } + virtual void fini() { cds::threading::Manager::detachThread() ; } + + virtual void test() + { + ValueVector& arr = getTest().m_Arr; + //size_t nSize = arr.size(); + + MAP& rMap = m_Map; + for ( size_t nPass = 0; nPass < c_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) ); + if ( it->bExists ) { + if ( check_result(bFound, rMap)) + ++m_KeyExists.nSuccess; + else + ++m_KeyExists.nFailed; + } + else { + if ( check_result(bFound, rMap)) + ++m_KeyNotExists.nFailed; + else + ++m_KeyNotExists.nSuccess; + } + } + } + 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) ); + if ( it->bExists ) { + if ( check_result(bFound, rMap)) + ++m_KeyExists.nSuccess; + else + ++m_KeyExists.nFailed; + } + else { + if ( check_result( bFound, rMap )) + ++m_KeyNotExists.nFailed; + else + ++m_KeyNotExists.nSuccess; + } + } + } + } + } + }; + + public: + Map_find_string() + : m_bSeqInit( false ) + {} + + protected: + + void generateSequence(); + + template + void find_string_test( MAP& testMap ) + { + typedef TestThread Thread; + cds::OS::Timer timer; + + // Fill the map + CPPUNIT_MSG( " Fill map..."); + timer.reset(); + for ( size_t i = 0; i < m_Arr.size(); ++i ) { + // All keys in arrData are unique, insert() must be successful + if ( m_Arr[i].bExists ) + CPPUNIT_ASSERT( check_result( testMap.insert( *(m_Arr[i].pKey), m_Arr[i] ), testMap )); + } + CPPUNIT_MSG( " Duration=" << timer.duration() ); + + CPPUNIT_MSG( " Searching..."); + CppUnitMini::ThreadPool pool( *this ); + pool.add( new Thread( pool, testMap ), c_nThreadCount ); + pool.run(); + CPPUNIT_MSG( " Duration=" << pool.avgDuration() ); + + // 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.nFailed == 0 ); + CPPUNIT_CHECK( pThread->m_KeyNotExists.nSuccess == (m_Arr.size() - m_nRealMapSize) * c_nPassCount ); + CPPUNIT_CHECK( pThread->m_KeyNotExists.nFailed == 0 ); + } + + check_before_cleanup( testMap ); + + testMap.clear(); + additional_check( testMap ); + print_stat( testMap ); + additional_cleanup( testMap ); + } + + void initTestSequence(); + + template + void test() + { + initTestSequence(); + + for ( size_t nLoadFactor = 1; nLoadFactor <= c_nMaxLoadFactor; nLoadFactor *= 2 ) { + CPPUNIT_MSG( "Load factor=" << nLoadFactor ); + MAP testMap( m_Arr.size(), nLoadFactor ); + find_string_test( testMap ); + if ( c_bPrintGCState ) + print_gc_state(); + } + } + + template + void test_nolf() + { + initTestSequence(); + + MAP testMap; + find_string_test( testMap ); + if ( c_bPrintGCState ) + print_gc_state(); + } + + 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 + CDSUNIT_DECLARE_SplitList + CDSUNIT_DECLARE_SplitList_nogc + CDSUNIT_DECLARE_SkipListMap + CDSUNIT_DECLARE_SkipListMap_nogc + CDSUNIT_DECLARE_EllenBinTreeMap + CDSUNIT_DECLARE_BronsonAVLTreeMap + CDSUNIT_DECLARE_StripedMap + CDSUNIT_DECLARE_RefinableMap + CDSUNIT_DECLARE_CuckooMap + CDSUNIT_DECLARE_StdMap + }; +} // namespace map2 diff --git a/tests/unit/map2/map_find_string_bronsonavltree.cpp b/tests/unit/map2/map_find_string_bronsonavltree.cpp new file mode 100644 index 00000000..b74d0177 --- /dev/null +++ b/tests/unit/map2/map_find_string_bronsonavltree.cpp @@ -0,0 +1,9 @@ +//$$CDS-header$$ + +#include "map2/map_find_string.h" + +namespace map2 { + CPPUNIT_TEST_SUITE_PART( Map_find_string, run_BronsonAVLTreeMap ) + CDSUNIT_TEST_BronsonAVLTreeMap + CPPUNIT_TEST_SUITE_END_PART() +} // namespace map2 diff --git a/tests/unit/map2/map_find_string_cuckoo.cpp b/tests/unit/map2/map_find_string_cuckoo.cpp new file mode 100644 index 00000000..c5085126 --- /dev/null +++ b/tests/unit/map2/map_find_string_cuckoo.cpp @@ -0,0 +1,9 @@ +//$$CDS-header$$ + +#include "map2/map_find_string.h" + +namespace map2 { + CPPUNIT_TEST_SUITE_PART( Map_find_string, run_CuckooMap ) + CDSUNIT_TEST_CuckooMap + CPPUNIT_TEST_SUITE_END_PART() +} // namespace map2 diff --git a/tests/unit/map2/map_find_string_ellentree.cpp b/tests/unit/map2/map_find_string_ellentree.cpp new file mode 100644 index 00000000..9539c7d1 --- /dev/null +++ b/tests/unit/map2/map_find_string_ellentree.cpp @@ -0,0 +1,9 @@ +//$$CDS-header$$ + +#include "map2/map_find_string.h" + +namespace map2 { + CPPUNIT_TEST_SUITE_PART( Map_find_string, run_EllenBinTreeMap ) + CDSUNIT_TEST_EllenBinTreeMap + CPPUNIT_TEST_SUITE_END_PART() +} // namespace map2 diff --git a/tests/unit/map2/map_find_string_michael.cpp b/tests/unit/map2/map_find_string_michael.cpp new file mode 100644 index 00000000..5e9f61b2 --- /dev/null +++ b/tests/unit/map2/map_find_string_michael.cpp @@ -0,0 +1,10 @@ +//$$CDS-header$$ + +#include "map2/map_find_string.h" + +namespace map2 { + CPPUNIT_TEST_SUITE_PART( Map_find_string, run_MichaelMap ) + CDSUNIT_TEST_MichaelMap + CDSUNIT_TEST_MichaelMap_nogc + CPPUNIT_TEST_SUITE_END_PART() +} // namespace map2 diff --git a/tests/unit/map2/map_find_string_refinable.cpp b/tests/unit/map2/map_find_string_refinable.cpp new file mode 100644 index 00000000..dd9a91f1 --- /dev/null +++ b/tests/unit/map2/map_find_string_refinable.cpp @@ -0,0 +1,9 @@ +//$$CDS-header$$ + +#include "map2/map_find_string.h" + +namespace map2 { + 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 new file mode 100644 index 00000000..47671c11 --- /dev/null +++ b/tests/unit/map2/map_find_string_skip.cpp @@ -0,0 +1,10 @@ +//$$CDS-header$$ + +#include "map2/map_find_string.h" + +namespace map2 { + CPPUNIT_TEST_SUITE_PART( Map_find_string, run_SkipListMap ) + CDSUNIT_TEST_SkipListMap + CDSUNIT_TEST_SkipListMap_nogc + CPPUNIT_TEST_SUITE_END_PART() +} // namespace map2 diff --git a/tests/unit/map2/map_find_string_split.cpp b/tests/unit/map2/map_find_string_split.cpp new file mode 100644 index 00000000..d2095b1d --- /dev/null +++ b/tests/unit/map2/map_find_string_split.cpp @@ -0,0 +1,10 @@ +//$$CDS-header$$ + +#include "map2/map_find_string.h" + +namespace map2 { + CPPUNIT_TEST_SUITE_PART( Map_find_string, run_SplitList ) + CDSUNIT_TEST_SplitList + CDSUNIT_TEST_SplitList_nogc + CPPUNIT_TEST_SUITE_END_PART() +} // namespace map2 diff --git a/tests/unit/map2/map_find_string_std.cpp b/tests/unit/map2/map_find_string_std.cpp new file mode 100644 index 00000000..d268977a --- /dev/null +++ b/tests/unit/map2/map_find_string_std.cpp @@ -0,0 +1,9 @@ +//$$CDS-header$$ + +#include "map2/map_find_string.h" + +namespace map2 { + CPPUNIT_TEST_SUITE_PART( Map_find_string, run_StdMap ) + CDSUNIT_TEST_StdMap + CPPUNIT_TEST_SUITE_END_PART() +} // namespace map2 diff --git a/tests/unit/map2/map_find_string_striped.cpp b/tests/unit/map2/map_find_string_striped.cpp new file mode 100644 index 00000000..1d8280bc --- /dev/null +++ b/tests/unit/map2/map_find_string_striped.cpp @@ -0,0 +1,9 @@ +//$$CDS-header$$ + +#include "map2/map_find_string.h" + +namespace map2 { + CPPUNIT_TEST_SUITE_PART( Map_find_string, run_StripedMap ) + CDSUNIT_TEST_StripedMap + CPPUNIT_TEST_SUITE_END_PART() +} // namespace map2