Splitted up map_insfind_int test to reduce compiling time and memory requirements
authorkhizmax <libcds.dev@gmail.com>
Mon, 23 Mar 2015 19:24:27 +0000 (22:24 +0300)
committerkhizmax <libcds.dev@gmail.com>
Mon, 23 Mar 2015 19:24:27 +0000 (22:24 +0300)
13 files changed:
projects/Win/vc12/unit-map-find.vcxproj
projects/source.unit.map.mk
tests/unit/map2/map_insfind_int.cpp
tests/unit/map2/map_insfind_int.h [new file with mode: 0644]
tests/unit/map2/map_insfind_int_bronsonavltree.cpp [new file with mode: 0644]
tests/unit/map2/map_insfind_int_cuckoo.cpp [new file with mode: 0644]
tests/unit/map2/map_insfind_int_ellentree.cpp [new file with mode: 0644]
tests/unit/map2/map_insfind_int_michael.cpp [new file with mode: 0644]
tests/unit/map2/map_insfind_int_refinable.cpp [new file with mode: 0644]
tests/unit/map2/map_insfind_int_skip.cpp [new file with mode: 0644]
tests/unit/map2/map_insfind_int_split.cpp [new file with mode: 0644]
tests/unit/map2/map_insfind_int_std.cpp [new file with mode: 0644]
tests/unit/map2/map_insfind_int_striped.cpp [new file with mode: 0644]

index be592dd66dce7c26ec775ebc3848f960bd801a75..587e2dfbf6a213f182254380cf8d9cca8ffc6282 100644 (file)
     <ClCompile Include="..\..\..\tests\unit\map2\map_find_int.cpp" />\r
     <ClCompile Include="..\..\..\tests\unit\map2\map_find_string.cpp" />\r
     <ClCompile Include="..\..\..\tests\unit\map2\map_insfind_int.cpp" />\r
+    <ClCompile Include="..\..\..\tests\unit\map2\map_insfind_int_bronsonavltree.cpp" />\r
+    <ClCompile Include="..\..\..\tests\unit\map2\map_insfind_int_cuckoo.cpp" />\r
+    <ClCompile Include="..\..\..\tests\unit\map2\map_insfind_int_ellentree.cpp" />\r
+    <ClCompile Include="..\..\..\tests\unit\map2\map_insfind_int_michael.cpp" />\r
+    <ClCompile Include="..\..\..\tests\unit\map2\map_insfind_int_refinable.cpp" />\r
+    <ClCompile Include="..\..\..\tests\unit\map2\map_insfind_int_skip.cpp" />\r
+    <ClCompile Include="..\..\..\tests\unit\map2\map_insfind_int_split.cpp" />\r
+    <ClCompile Include="..\..\..\tests\unit\map2\map_insfind_int_std.cpp" />\r
+    <ClCompile Include="..\..\..\tests\unit\map2\map_insfind_int_striped.cpp" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="..\..\..\tests\unit\map2\map_insfind_int.h" />\r
   </ItemGroup>\r
   <PropertyGroup Label="Globals">\r
     <ProjectGuid>{BA2A9239-0299-4069-BB0E-16DACE87ADE0}</ProjectGuid>\r
index 078ec837df5b9c0fcdb371b28bdb07df912aecfe..73c9e518191fe24b2261727a44e44786b3b8e13a 100644 (file)
@@ -1,7 +1,18 @@
 
 CDSUNIT_MAP_SOURCES := \
     tests/unit/map2/map_find_int.cpp \
-    tests/unit/map2/map_find_string.cpp \
+    tests/unit/map2/map_find_string.cpp \    
+    tests/unit/map2/map_insfind_int.cpp \
+    tests/unit/map2/map_insfind_int_bronsonavltree.cpp \
+    tests/unit/map2/map_insfind_int_cuckoo.cpp \
+    tests/unit/map2/map_insfind_int_ellentree.cpp \
+    tests/unit/map2/map_insfind_int_michael.cpp \
+    tests/unit/map2/map_insfind_int_skip.cpp \
+    tests/unit/map2/map_insfind_int_split.cpp \
+    tests/unit/map2/map_insfind_int_striped.cpp \
+    tests/unit/map2/map_insfind_int_refinable.cpp \
+    tests/unit/map2/map_insfind_int_std.cpp \
+    tests/unit/map2/map_insfind_string.cpp \
     tests/unit/map2/map_insdel_func.cpp \
     tests/unit/map2/map_insdel_func_michael.cpp \
     tests/unit/map2/map_insdel_func_split.cpp \
@@ -15,7 +26,6 @@ CDSUNIT_MAP_SOURCES := \
     tests/unit/map2/map_insdel_item_int.cpp \
     tests/unit/map2/map_insdel_string.cpp \
     tests/unit/map2/map_insdel_item_string.cpp \
-    tests/unit/map2/map_insfind_int.cpp \
     tests/unit/map2/map_insdelfind.cpp \
     tests/unit/map2/map_delodd.cpp \
     tests/unit/map2/map_delodd_michael.cpp \
index c2b21bfc77b820ce3b682ed4e60ea0d639eb501a..a1f477826cf648f1b48f59906c228f178f91ed0e 100644 (file)
 //$$CDS-header$$
 
-#include "map2/map_types.h"
-#include "cppunit/thread.h"
-
-#include <cds/os/topology.h>
-#include <vector>
-#include <algorithm> // random_shuffle
+#include "map2/map_insfind_int.h"
 
 namespace map2 {
+    CPPUNIT_TEST_SUITE_REGISTRATION( Map_InsFind_int );
 
-#    define TEST_MAP(X)         void X() { test<MapTypes<key_type, value_type>::X >()    ; }
-#    define TEST_MAP_NOLF(X)    void X() { test_nolf<MapTypes<key_type, value_type>::X >()    ; }
-#   define TEST_MAP_EXTRACT(X)  TEST_MAP(X)
-#   define TEST_MAP_NOLF_EXTRACT(X) TEST_MAP_NOLF(X)
+    size_t Map_InsFind_int::c_nMapSize = 1000000    ;  // map size
+    size_t Map_InsFind_int::c_nThreadCount = 4      ;  // count of insertion thread
+    size_t Map_InsFind_int::c_nMaxLoadFactor = 8    ;  // maximum load factor
+    bool   Map_InsFind_int::c_bPrintGCState = true;
 
-    namespace {
-        static size_t  c_nMapSize = 1000000    ;  // map size
-        static size_t  c_nThreadCount = 4      ;  // count of insertion thread
-        static size_t  c_nMaxLoadFactor = 8    ;  // maximum load factor
-        static bool    c_bPrintGCState = true;
+    void Map_InsFind_int::setUpParams( const CppUnitMini::TestCfg& cfg )
+    {
+        c_nThreadCount = cfg.getULong("ThreadCount", 0 );
+        c_nMapSize = cfg.getULong("MapSize", c_nMapSize );
+        c_nMaxLoadFactor = cfg.getULong("MaxLoadFactor", c_nMaxLoadFactor );
+        c_bPrintGCState = cfg.getBool("PrintGCStateFlag", true );
+        if ( c_nThreadCount == 0 )
+            c_nThreadCount = cds::OS::topology::processor_count();
     }
 
-    class Map_InsFind_int: public CppUnitMini::TestCase
+    void Map_InsFind_int::myRun(const char *in_name, bool invert /*= false*/)
     {
-        typedef size_t  key_type;
-        typedef size_t  value_type;
-
-        template <typename Iterator, typename Map>
-        static bool check_result( Iterator const& it, Map const& map )
-        {
-            return it != map.end();
-        }
-        template <typename Map>
-        static bool check_result( bool b, Map const& )
-        {
-            return b;
-        }
-
-        template <class Map>
-        class Inserter: public CppUnitMini::TestThread
-        {
-            Map&     m_Map;
-            std::vector<size_t> m_arrVal;
-
-            virtual Inserter *    clone()
-            {
-                return new Inserter( *this );
-            }
-
-            void make_array()
-            {
-                size_t const nSize = c_nMapSize / c_nThreadCount + 1;
-                m_arrVal.resize( nSize );
-                size_t nItem = m_nThreadNo;
-                for ( size_t i = 0; i < nSize; nItem += c_nThreadCount, ++i )
-                    m_arrVal[i] = nItem;
-                std::random_shuffle( m_arrVal.begin(), m_arrVal.end() );
-            }
-        public:
-            size_t  m_nInsertSuccess;
-            size_t  m_nInsertFailed;
-            size_t  m_nFindSuccess;
-            size_t  m_nFindFail;
-
-        public:
-            Inserter( CppUnitMini::ThreadPool& pool, Map& rMap )
-                : CppUnitMini::TestThread( pool )
-                , m_Map( rMap )
-            {}
-            Inserter( Inserter& src )
-                : CppUnitMini::TestThread( src )
-                , m_Map( src.m_Map )
-            {}
-
-            Map_InsFind_int&  getTest()
-            {
-                return reinterpret_cast<Map_InsFind_int&>( m_Pool.m_Test );
-            }
-
-            virtual void init()
-            {
-                cds::threading::Manager::attachThread();
-                make_array();
-            }
-            virtual void fini() { cds::threading::Manager::detachThread()   ; }
-
-            virtual void test()
-            {
-                Map& rMap = m_Map;
-
-                m_nInsertSuccess =
-                    m_nInsertFailed =
-                    m_nFindSuccess =
-                    m_nFindFail = 0;
-
-                size_t const nArrSize = m_arrVal.size();
-                for ( size_t i = 0; i < nArrSize; ++i ) {
-                    size_t const nItem = m_arrVal[i];
-                    if ( check_result( rMap.insert( nItem, nItem * 8 ), rMap ))
-                        ++m_nInsertSuccess;
-                    else
-                        ++m_nInsertFailed;
-
-                    for ( size_t k = 0; k <= i; ++k ) {
-                        if ( check_result( rMap.find( m_arrVal[k] ), rMap ))
-                            ++m_nFindSuccess;
-                        else
-                            ++m_nFindFail;
-                    }
-                }
-            }
-        };
-
-    protected:
-
-        template <class Map>
-        void do_test( Map& testMap )
-        {
-            typedef Inserter<Map>       InserterThread;
-            cds::OS::Timer    timer;
-
-            CppUnitMini::ThreadPool pool( *this );
-            pool.add( new InserterThread( pool, testMap ), c_nThreadCount );
-            pool.run();
-            CPPUNIT_MSG( "   Duration=" << pool.avgDuration() );
-
-            size_t nInsertSuccess = 0;
-            size_t nInsertFailed = 0;
-            size_t nFindSuccess = 0;
-            size_t nFindFailed = 0;
-            for ( CppUnitMini::ThreadPool::iterator it = pool.begin(); it != pool.end(); ++it ) {
-                InserterThread * pThread = static_cast<InserterThread *>( *it );
-
-                nInsertSuccess += pThread->m_nInsertSuccess;
-                nInsertFailed += pThread->m_nInsertFailed;
-                nFindSuccess += pThread->m_nFindSuccess;
-                nFindFailed += pThread->m_nFindFail;
-            }
-
-            CPPUNIT_MSG( "    Totals: Ins succ=" << nInsertSuccess << " fail=" << nInsertFailed << "\n"
-                      << "           Find succ=" << nFindSuccess << " fail=" << nFindFailed
-            );
-
-            CPPUNIT_CHECK( nInsertFailed == 0 );
-            CPPUNIT_CHECK( nFindFailed == 0 );
-
-            check_before_cleanup( testMap );
-
-            testMap.clear();
-            additional_check( testMap );
-            print_stat( testMap );
-            additional_cleanup( testMap );
-        }
-
-        template <class Map>
-        void test()
-        {
-            static_assert( (!std::is_same< typename Map::item_counter, cds::atomicity::empty_item_counter >::value),
-                "Empty item counter is not suitable for this test");
-
-            CPPUNIT_MSG( "Thread count: " << c_nThreadCount
-                << " map size=" << c_nMapSize
-                );
-
-            for ( size_t nLoadFactor = 1; nLoadFactor <= c_nMaxLoadFactor; nLoadFactor *= 2 ) {
-                CPPUNIT_MSG( "Load factor=" << nLoadFactor );
-                Map  testMap( c_nMapSize, nLoadFactor );
-                do_test( testMap );
-                if ( c_bPrintGCState )
-                    print_gc_state();
-            }
-        }
-
-        template <class Map>
-        void test_nolf()
-        {
-            static_assert( (!std::is_same< typename Map::item_counter, cds::atomicity::empty_item_counter >::value),
-                "Empty item counter is not suitable for this test");
-
-            CPPUNIT_MSG( "Thread count: " << c_nThreadCount
-                << " map size=" << c_nMapSize
-                );
-
-            Map testMap;
-            do_test( testMap );
-            if ( c_bPrintGCState )
-                print_gc_state();
-        }
-
-        void setUpParams( const CppUnitMini::TestCfg& cfg ) {
-            c_nThreadCount = cfg.getULong("ThreadCount", 0 );
-            c_nMapSize = cfg.getULong("MapSize", 10000 );
-            c_nMaxLoadFactor = cfg.getULong("MaxLoadFactor", 8 );
-            c_bPrintGCState = cfg.getBool("PrintGCStateFlag", true );
-            if ( c_nThreadCount == 0 )
-                c_nThreadCount = cds::OS::topology::processor_count();
-        }
-
-#   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_InsFind_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()
-
-    };
+        setUpParams( m_Cfg.get( "Map_InsFind_int" ));
+
+        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();
+    }
 
-    CPPUNIT_TEST_SUITE_REGISTRATION( Map_InsFind_int );
+    /*
+    CPPUNIT_TEST_SUITE( Map_InsFind_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 map2
diff --git a/tests/unit/map2/map_insfind_int.h b/tests/unit/map2/map_insfind_int.h
new file mode 100644 (file)
index 0000000..f84bdcb
--- /dev/null
@@ -0,0 +1,235 @@
+//$$CDS-header$$
+
+#include "map2/map_types.h"
+#include "cppunit/thread.h"
+
+#include <cds/os/topology.h>
+#include <vector>
+#include <algorithm> // random_shuffle
+
+namespace map2 {
+
+#   define TEST_MAP(X)         void X() { test<MapTypes<key_type, value_type>::X >()    ; }
+#   define TEST_MAP_NOLF(X)    void X() { test_nolf<MapTypes<key_type, value_type>::X >()    ; }
+#   define TEST_MAP_EXTRACT(X)  TEST_MAP(X)
+#   define TEST_MAP_NOLF_EXTRACT(X) TEST_MAP_NOLF(X)
+
+    class Map_InsFind_int: public CppUnitMini::TestCase
+    {
+        static size_t  c_nMapSize;       // map size
+        static size_t  c_nThreadCount;   // count of insertion thread
+        static size_t  c_nMaxLoadFactor; // maximum load factor
+        static bool    c_bPrintGCState;
+
+        typedef CppUnitMini::TestCase Base;
+        typedef size_t  key_type;
+        typedef size_t  value_type;
+
+        template <typename Iterator, typename Map>
+        static bool check_result( Iterator const& it, Map const& map )
+        {
+            return it != map.end();
+        }
+        template <typename Map>
+        static bool check_result( bool b, Map const& )
+        {
+            return b;
+        }
+
+        template <class Map>
+        class Inserter: public CppUnitMini::TestThread
+        {
+            Map&     m_Map;
+            std::vector<size_t> m_arrVal;
+
+            virtual Inserter *    clone()
+            {
+                return new Inserter( *this );
+            }
+
+            void make_array()
+            {
+                size_t const nSize = c_nMapSize / c_nThreadCount + 1;
+                m_arrVal.resize( nSize );
+                size_t nItem = m_nThreadNo;
+                for ( size_t i = 0; i < nSize; nItem += c_nThreadCount, ++i )
+                    m_arrVal[i] = nItem;
+                std::random_shuffle( m_arrVal.begin(), m_arrVal.end() );
+            }
+        public:
+            size_t  m_nInsertSuccess;
+            size_t  m_nInsertFailed;
+            size_t  m_nFindSuccess;
+            size_t  m_nFindFail;
+
+        public:
+            Inserter( CppUnitMini::ThreadPool& pool, Map& rMap )
+                : CppUnitMini::TestThread( pool )
+                , m_Map( rMap )
+            {}
+            Inserter( Inserter& src )
+                : CppUnitMini::TestThread( src )
+                , m_Map( src.m_Map )
+            {}
+
+            Map_InsFind_int&  getTest()
+            {
+                return reinterpret_cast<Map_InsFind_int&>( m_Pool.m_Test );
+            }
+
+            virtual void init()
+            {
+                cds::threading::Manager::attachThread();
+                make_array();
+            }
+            virtual void fini() { cds::threading::Manager::detachThread()   ; }
+
+            virtual void test()
+            {
+                Map& rMap = m_Map;
+
+                m_nInsertSuccess =
+                    m_nInsertFailed =
+                    m_nFindSuccess =
+                    m_nFindFail = 0;
+
+                size_t const nArrSize = m_arrVal.size();
+                for ( size_t i = 0; i < nArrSize; ++i ) {
+                    size_t const nItem = m_arrVal[i];
+                    if ( check_result( rMap.insert( nItem, nItem * 8 ), rMap ))
+                        ++m_nInsertSuccess;
+                    else
+                        ++m_nInsertFailed;
+
+                    for ( size_t k = 0; k <= i; ++k ) {
+                        if ( check_result( rMap.find( m_arrVal[k] ), rMap ))
+                            ++m_nFindSuccess;
+                        else
+                            ++m_nFindFail;
+                    }
+                }
+            }
+        };
+
+    protected:
+
+        template <class Map>
+        void do_test( Map& testMap )
+        {
+            typedef Inserter<Map>       InserterThread;
+            cds::OS::Timer    timer;
+
+            CppUnitMini::ThreadPool pool( *this );
+            pool.add( new InserterThread( pool, testMap ), c_nThreadCount );
+            pool.run();
+            CPPUNIT_MSG( "   Duration=" << pool.avgDuration() );
+
+            size_t nInsertSuccess = 0;
+            size_t nInsertFailed = 0;
+            size_t nFindSuccess = 0;
+            size_t nFindFailed = 0;
+            for ( CppUnitMini::ThreadPool::iterator it = pool.begin(); it != pool.end(); ++it ) {
+                InserterThread * pThread = static_cast<InserterThread *>( *it );
+
+                nInsertSuccess += pThread->m_nInsertSuccess;
+                nInsertFailed += pThread->m_nInsertFailed;
+                nFindSuccess += pThread->m_nFindSuccess;
+                nFindFailed += pThread->m_nFindFail;
+            }
+
+            CPPUNIT_MSG( "    Totals: Ins succ=" << nInsertSuccess << " fail=" << nInsertFailed << "\n"
+                      << "           Find succ=" << nFindSuccess << " fail=" << nFindFailed
+            );
+
+            CPPUNIT_CHECK( nInsertFailed == 0 );
+            CPPUNIT_CHECK( nFindFailed == 0 );
+
+            check_before_cleanup( testMap );
+
+            testMap.clear();
+            additional_check( testMap );
+            print_stat( testMap );
+            additional_cleanup( testMap );
+        }
+
+        template <class Map>
+        void test()
+        {
+            static_assert( (!std::is_same< typename Map::item_counter, cds::atomicity::empty_item_counter >::value),
+                "Empty item counter is not suitable for this test");
+
+            CPPUNIT_MSG( "Thread count: " << c_nThreadCount
+                << " map size=" << c_nMapSize
+                );
+
+            for ( size_t nLoadFactor = 1; nLoadFactor <= c_nMaxLoadFactor; nLoadFactor *= 2 ) {
+                CPPUNIT_MSG( "Load factor=" << nLoadFactor );
+                Map  testMap( c_nMapSize, nLoadFactor );
+                do_test( testMap );
+                if ( c_bPrintGCState )
+                    print_gc_state();
+            }
+        }
+
+        template <class Map>
+        void test_nolf()
+        {
+            static_assert( (!std::is_same< typename Map::item_counter, cds::atomicity::empty_item_counter >::value),
+                "Empty item counter is not suitable for this test");
+
+            CPPUNIT_MSG( "Thread count: " << c_nThreadCount
+                << " map size=" << c_nMapSize
+                );
+
+            Map testMap;
+            do_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
+
+        /*
+        CPPUNIT_TEST_SUITE( Map_InsFind_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 map2
diff --git a/tests/unit/map2/map_insfind_int_bronsonavltree.cpp b/tests/unit/map2/map_insfind_int_bronsonavltree.cpp
new file mode 100644 (file)
index 0000000..520b785
--- /dev/null
@@ -0,0 +1,9 @@
+//$$CDS-header$$
+
+#include "map2/map_insfind_int.h"
+
+namespace map2 {
+    CPPUNIT_TEST_SUITE_PART( Map_InsFind_int, run_BronsonAVLTreeMap )
+        CDSUNIT_TEST_BronsonAVLTreeMap
+    CPPUNIT_TEST_SUITE_END_PART()
+} // namespace map2
diff --git a/tests/unit/map2/map_insfind_int_cuckoo.cpp b/tests/unit/map2/map_insfind_int_cuckoo.cpp
new file mode 100644 (file)
index 0000000..b1fa855
--- /dev/null
@@ -0,0 +1,9 @@
+//$$CDS-header$$
+
+#include "map2/map_insfind_int.h"
+
+namespace map2 {
+    CPPUNIT_TEST_SUITE_PART( Map_InsFind_int, run_CuckooMap )
+        CDSUNIT_TEST_CuckooMap
+    CPPUNIT_TEST_SUITE_END_PART()
+} // namespace map2
diff --git a/tests/unit/map2/map_insfind_int_ellentree.cpp b/tests/unit/map2/map_insfind_int_ellentree.cpp
new file mode 100644 (file)
index 0000000..17b5d0e
--- /dev/null
@@ -0,0 +1,9 @@
+//$$CDS-header$$
+
+#include "map2/map_insfind_int.h"
+
+namespace map2 {
+    CPPUNIT_TEST_SUITE_PART( Map_InsFind_int, run_EllenBinTreeMap )
+        CDSUNIT_TEST_EllenBinTreeMap
+    CPPUNIT_TEST_SUITE_END_PART()
+} // namespace map2
diff --git a/tests/unit/map2/map_insfind_int_michael.cpp b/tests/unit/map2/map_insfind_int_michael.cpp
new file mode 100644 (file)
index 0000000..8703e06
--- /dev/null
@@ -0,0 +1,10 @@
+//$$CDS-header$$
+
+#include "map2/map_insfind_int.h"
+
+namespace map2 {
+    CPPUNIT_TEST_SUITE_PART( Map_InsFind_int, run_MichaelMap )
+        CDSUNIT_TEST_MichaelMap
+        CDSUNIT_TEST_MichaelMap_nogc
+    CPPUNIT_TEST_SUITE_END_PART()
+} // namespace map2
diff --git a/tests/unit/map2/map_insfind_int_refinable.cpp b/tests/unit/map2/map_insfind_int_refinable.cpp
new file mode 100644 (file)
index 0000000..8926de2
--- /dev/null
@@ -0,0 +1,9 @@
+//$$CDS-header$$
+
+#include "map2/map_insfind_int.h"
+
+namespace map2 {
+    CPPUNIT_TEST_SUITE_PART( Map_InsFind_int, run_RefinableMap )
+        CDSUNIT_TEST_RefinableMap
+    CPPUNIT_TEST_SUITE_END_PART()
+} // namespace map2
diff --git a/tests/unit/map2/map_insfind_int_skip.cpp b/tests/unit/map2/map_insfind_int_skip.cpp
new file mode 100644 (file)
index 0000000..930ccf1
--- /dev/null
@@ -0,0 +1,10 @@
+//$$CDS-header$$
+
+#include "map2/map_insfind_int.h"
+
+namespace map2 {
+    CPPUNIT_TEST_SUITE_PART( Map_InsFind_int, run_SkipListMap )
+        CDSUNIT_TEST_SkipListMap
+        CDSUNIT_TEST_SkipListMap_nogc
+    CPPUNIT_TEST_SUITE_END_PART()
+} // namespace map2
diff --git a/tests/unit/map2/map_insfind_int_split.cpp b/tests/unit/map2/map_insfind_int_split.cpp
new file mode 100644 (file)
index 0000000..4af7722
--- /dev/null
@@ -0,0 +1,10 @@
+//$$CDS-header$$
+
+#include "map2/map_insfind_int.h"
+
+namespace map2 {
+    CPPUNIT_TEST_SUITE_PART( Map_InsFind_int, run_SplitList )
+        CDSUNIT_TEST_SplitList
+        CDSUNIT_TEST_SplitList_nogc
+    CPPUNIT_TEST_SUITE_END_PART()
+} // namespace map2
diff --git a/tests/unit/map2/map_insfind_int_std.cpp b/tests/unit/map2/map_insfind_int_std.cpp
new file mode 100644 (file)
index 0000000..473fb74
--- /dev/null
@@ -0,0 +1,9 @@
+//$$CDS-header$$
+
+#include "map2/map_insfind_int.h"
+
+namespace map2 {
+    CPPUNIT_TEST_SUITE_PART( Map_InsFind_int, run_StdMap )
+        CDSUNIT_TEST_StdMap
+    CPPUNIT_TEST_SUITE_END_PART()
+} // namespace map2
diff --git a/tests/unit/map2/map_insfind_int_striped.cpp b/tests/unit/map2/map_insfind_int_striped.cpp
new file mode 100644 (file)
index 0000000..392ca36
--- /dev/null
@@ -0,0 +1,9 @@
+//$$CDS-header$$
+
+#include "map2/map_insfind_int.h"
+
+namespace map2 {
+    CPPUNIT_TEST_SUITE_PART( Map_InsFind_int, run_StripedMap )
+        CDSUNIT_TEST_StripedMap
+    CPPUNIT_TEST_SUITE_END_PART()
+} // namespace map2