From: khizmax Date: Mon, 21 Mar 2016 21:24:07 +0000 (+0300) Subject: Improved intrusive::StripedSet unit tests X-Git-Tag: v2.2.0~325 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=6ce65f3f3abb895283d75615e54af9c7a1136f75;p=libcds.git Improved intrusive::StripedSet unit tests --- diff --git a/test/unit/striped-set/CMakeLists.txt b/test/unit/striped-set/CMakeLists.txt index 519aa3ed..3f2a1cab 100644 --- a/test/unit/striped-set/CMakeLists.txt +++ b/test/unit/striped-set/CMakeLists.txt @@ -9,9 +9,9 @@ set(CDSGTEST_SET_SOURCES intrusive_boost_set.cpp intrusive_boost_sg_set.cpp intrusive_boost_slist.cpp - intrusive_cuckoo_set.cpp intrusive_boost_splay_set.cpp intrusive_boost_treap_set.cpp + intrusive_cuckoo_set.cpp ) include_directories( diff --git a/test/unit/striped-set/intrusive_boost_avl_set.cpp b/test/unit/striped-set/intrusive_boost_avl_set.cpp index faf832cd..47e71b6c 100644 --- a/test/unit/striped-set/intrusive_boost_avl_set.cpp +++ b/test/unit/striped-set/intrusive_boost_avl_set.cpp @@ -30,11 +30,6 @@ #ifdef CDSUNIT_ENABLE_BOOST_CONTAINER -#include -#if BOOST_VERSION >= 105900 && BOOST_VERSION < 106100 -# define CDSTEST_REQUIRES_IMPLICIT_CONVERSION_WORKAROUND -#endif - #include "test_intrusive_striped_set.h" #include diff --git a/test/unit/striped-set/intrusive_boost_set.cpp b/test/unit/striped-set/intrusive_boost_set.cpp index 9baf1456..c0757e18 100644 --- a/test/unit/striped-set/intrusive_boost_set.cpp +++ b/test/unit/striped-set/intrusive_boost_set.cpp @@ -30,10 +30,10 @@ #ifdef CDSUNIT_ENABLE_BOOST_CONTAINER -#include -#if BOOST_VERSION >= 105900 && BOOST_VERSION < 106100 -# define CDSTEST_REQUIRES_IMPLICIT_CONVERSION_WORKAROUND -#endif +//#include +//#if BOOST_VERSION >= 105900 && BOOST_VERSION < 106100 +//# define CDSTEST_REQUIRES_IMPLICIT_CONVERSION_WORKAROUND +//#endif #include "test_intrusive_striped_set.h" #include diff --git a/test/unit/striped-set/intrusive_boost_sg_set.cpp b/test/unit/striped-set/intrusive_boost_sg_set.cpp index f1650517..91247460 100644 --- a/test/unit/striped-set/intrusive_boost_sg_set.cpp +++ b/test/unit/striped-set/intrusive_boost_sg_set.cpp @@ -30,17 +30,6 @@ #ifdef CDSUNIT_ENABLE_BOOST_CONTAINER -#include - -#if BOOST_VERSION >= 105900 && BOOST_VERSION < 106100 -# define CDSTEST_REQUIRES_IMPLICIT_CONVERSION_WORKAROUND -#endif - -#include -#if ( CDS_COMPILER == CDS_COMPILER_GCC || CDS_COMPILER == CDS_COMPILER_CLANG ) && BOOST_VERSION >= 105900 && BOOST_VERSION < 106100 -# pragma message("boost 1.59 - 1.60 has a bug in boost::intrusive::sg_set, test skipped") -#else - #include "test_intrusive_striped_set.h" #include @@ -67,5 +56,4 @@ namespace { } // namespace -#endif #endif // CDSUNIT_ENABLE_BOOST_CONTAINER diff --git a/test/unit/striped-set/intrusive_boost_splay_set.cpp b/test/unit/striped-set/intrusive_boost_splay_set.cpp index bb1555fb..1b40df0b 100644 --- a/test/unit/striped-set/intrusive_boost_splay_set.cpp +++ b/test/unit/striped-set/intrusive_boost_splay_set.cpp @@ -31,14 +31,6 @@ #ifdef CDSUNIT_ENABLE_BOOST_CONTAINER #include -#if BOOST_VERSION >= 105900 && BOOST_VERSION < 106100 -# define CDSTEST_REQUIRES_IMPLICIT_CONVERSION_WORKAROUND -#endif - -#include -#if ( CDS_COMPILER == CDS_COMPILER_GCC || CDS_COMPILER == CDS_COMPILER_CLANG ) && BOOST_VERSION >= 105900 && BOOST_VERSION < 106100 -# pragma message("boost 1.59 - 1.60 has a bug in boost::intrusive::splay_set, test skipped") -#else #include "test_intrusive_striped_set.h" #include @@ -49,7 +41,7 @@ namespace { struct test_traits { -# if BOOST_VERSION < 105600 +#if BOOST_VERSION < 105600 typedef bi::splay_set_member_hook<> splay_set_member_hook; typedef bi::splay_set_base_hook<> splay_set_base_hook; #else @@ -73,5 +65,4 @@ namespace { } // namespace -#endif #endif // CDSUNIT_ENABLE_BOOST_CONTAINER diff --git a/test/unit/striped-set/intrusive_boost_treap_set.cpp b/test/unit/striped-set/intrusive_boost_treap_set.cpp index 115ac139..a681e07a 100644 --- a/test/unit/striped-set/intrusive_boost_treap_set.cpp +++ b/test/unit/striped-set/intrusive_boost_treap_set.cpp @@ -30,17 +30,6 @@ #ifdef CDSUNIT_ENABLE_BOOST_CONTAINER -#include - -#if BOOST_VERSION >= 105900 && BOOST_VERSION < 106100 -# define CDSTEST_REQUIRES_IMPLICIT_CONVERSION_WORKAROUND -#endif - -#include -#if ( CDS_COMPILER == CDS_COMPILER_GCC || CDS_COMPILER == CDS_COMPILER_CLANG ) && BOOST_VERSION >= 105900 && BOOST_VERSION < 106100 -# pragma message("boost 1.59 - 1.60 has a bug in boost::intrusive::treap_set, test skipped") -#else - #include "test_intrusive_striped_set.h" #include @@ -81,5 +70,4 @@ namespace { } // namespace -#endif #endif // CDSUNIT_ENABLE_BOOST_CONTAINER diff --git a/test/unit/striped-set/intrusive_cuckoo_set.cpp b/test/unit/striped-set/intrusive_cuckoo_set.cpp index b1b9f969..05692fb8 100644 --- a/test/unit/striped-set/intrusive_cuckoo_set.cpp +++ b/test/unit/striped-set/intrusive_cuckoo_set.cpp @@ -44,21 +44,16 @@ namespace { template - void test( Set& s ) + void test( Set& s, std::vector< typename Set::value_type >& data ) { // Precondition: set is empty // Postcondition: set is empty - base_class::test_< Set::c_isSorted>( s ); + base_class::test_< Set::c_isSorted>( s, data ); typedef typename Set::value_type value_type; size_t const nSetSize = base_class::kSize; - std::vector< value_type > data; - data.reserve( nSetSize ); - for ( size_t key = 0; key < nSetSize; ++key ) - data.push_back( value_type( static_cast(key) ) ); - // clear for ( auto& i : data ) { i.clear_stat(); @@ -99,8 +94,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_basehook_unordered ) @@ -115,8 +113,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s( 32, 4 ); - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32, 4 ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_list_basehook_ordered_cmp ) @@ -134,8 +135,11 @@ namespace { >::type > set_type; - set_type s( 32, 6, 4 ); - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32, 6, 4 ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_basehook_ordered_cmp ) @@ -153,9 +157,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( ht ); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( ht ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_list_basehook_ordered_less ) @@ -173,9 +180,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( 32, 6, 4, ht ); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( 32, 6, 4, ht ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_basehook_ordered_less ) @@ -193,9 +203,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_list_basehook_ordered_cmpmix ) @@ -214,9 +227,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( 32, 6, 0, std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( 32, 6, 0, std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_basehook_ordered_cmpmix ) @@ -235,9 +251,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_list_basehook_ordered_stat ) @@ -257,8 +276,11 @@ namespace { >::type > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_basehook_ordered_stat ) @@ -278,8 +300,11 @@ namespace { >::type > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_list_basehook_unordered_storehash ) @@ -298,8 +323,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_basehook_unordered_storehash ) @@ -318,8 +346,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s( 32, 4 ); - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32, 4 ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_list_basehook_ordered_storehash ) @@ -339,9 +370,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( 32, 6, 0, std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( 32, 6, 0, std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_basehook_ordered_storehash ) @@ -361,9 +395,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( std::move( ht )); + test( s, data ); + } } //************************************************************ @@ -381,8 +418,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_memberhook_unordered ) @@ -398,8 +438,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s( 32, 4 ); - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32, 4 ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_list_memberhook_ordered_cmp ) @@ -417,8 +460,11 @@ namespace { >::type > set_type; - set_type s( 32, 6, 4 ); - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32, 6, 4 ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_memberhook_ordered_cmp ) @@ -436,9 +482,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( ht ); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( ht ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_list_memberhook_ordered_less ) @@ -456,9 +505,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( 32, 6, 4, ht ); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( 32, 6, 4, ht ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_memberhook_ordered_less ) @@ -476,9 +528,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_list_memberhook_ordered_cmpmix ) @@ -497,9 +552,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( 32, 6, 0, std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( 32, 6, 0, std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_memberhook_ordered_cmpmix ) @@ -518,9 +576,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_list_memberhook_ordered_stat ) @@ -540,8 +601,11 @@ namespace { >::type > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_memberhook_ordered_stat ) @@ -561,8 +625,11 @@ namespace { >::type > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_list_memberhook_unordered_storehash ) @@ -581,8 +648,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_memberhook_unordered_storehash ) @@ -601,8 +671,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s( 32, 4 ); - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32, 4 ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_list_memberhook_ordered_storehash ) @@ -622,9 +695,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( 32, 6, 0, std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( 32, 6, 0, std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, striped_vector_memberhook_ordered_storehash ) @@ -644,9 +720,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( std::move( ht )); + test( s, data ); + } } //************************************************************ @@ -664,8 +743,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_basehook_unordered ) @@ -681,8 +763,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s( 32, 4 ); - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32, 4 ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_list_basehook_ordered_cmp ) @@ -701,8 +786,11 @@ namespace { >::type > set_type; - set_type s( 32, 6, 4 ); - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32, 6, 4 ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_basehook_ordered_cmp ) @@ -721,9 +809,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( ht ); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( ht ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_list_basehook_ordered_less ) @@ -742,9 +833,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( 32, 6, 4, ht ); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( 32, 6, 4, ht ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_basehook_ordered_less ) @@ -763,9 +857,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_list_basehook_ordered_cmpmix ) @@ -785,9 +882,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( 32, 6, 0, std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( 32, 6, 0, std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_basehook_ordered_cmpmix ) @@ -807,9 +907,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_list_basehook_ordered_stat ) @@ -830,8 +933,11 @@ namespace { >::type > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_basehook_ordered_stat ) @@ -852,8 +958,11 @@ namespace { >::type > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_list_basehook_unordered_storehash ) @@ -873,8 +982,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_basehook_unordered_storehash ) @@ -894,8 +1006,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s( 32, 4 ); - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32, 4 ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_list_basehook_ordered_storehash ) @@ -916,9 +1031,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( 32, 6, 0, std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( 32, 6, 0, std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_basehook_ordered_storehash ) @@ -939,9 +1057,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( std::move( ht )); + test( s, data ); + } } //************************************************************ @@ -960,8 +1081,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_memberhook_unordered ) @@ -978,8 +1102,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s( 32, 4 ); - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32, 4 ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_list_memberhook_ordered_cmp ) @@ -998,8 +1125,11 @@ namespace { >::type > set_type; - set_type s( 32, 6, 4 ); - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32, 6, 4 ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_memberhook_ordered_cmp ) @@ -1018,9 +1148,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( ht ); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( ht ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_list_memberhook_ordered_less ) @@ -1039,9 +1172,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( 32, 6, 4, ht ); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( 32, 6, 4, ht ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_memberhook_ordered_less ) @@ -1060,9 +1196,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_list_memberhook_ordered_cmpmix ) @@ -1082,9 +1221,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( 32, 6, 0, std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( 32, 6, 0, std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_memberhook_ordered_cmpmix ) @@ -1104,9 +1246,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_list_memberhook_ordered_stat ) @@ -1127,8 +1272,11 @@ namespace { >::type > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_memberhook_ordered_stat ) @@ -1149,8 +1297,11 @@ namespace { >::type > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_list_memberhook_unordered_storehash ) @@ -1170,8 +1321,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s; - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_memberhook_unordered_storehash ) @@ -1191,8 +1345,11 @@ namespace { }; typedef ci::CuckooSet< item_type, set_traits > set_type; - set_type s( 32, 4 ); - test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32, 4 ); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_list_memberhook_ordered_storehash ) @@ -1213,9 +1370,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( 32, 6, 0, std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( 32, 6, 0, std::move( ht )); + test( s, data ); + } } TEST_F( IntrusiveCuckooSet, refinable_vector_memberhook_ordered_storehash ) @@ -1236,9 +1396,12 @@ namespace { >::type > set_type; - typename set_type::hash_tuple_type ht; - set_type s( std::move( ht )); - test( s ); + std::vector< typename set_type::value_type > data; + { + typename set_type::hash_tuple_type ht; + set_type s( std::move( ht )); + test( s, data ); + } } } // namespace diff --git a/test/unit/striped-set/test_intrusive_set.h b/test/unit/striped-set/test_intrusive_set.h index fe4f8ef1..14f672e1 100644 --- a/test/unit/striped-set/test_intrusive_set.h +++ b/test/unit/striped-set/test_intrusive_set.h @@ -36,12 +36,6 @@ #include -#ifdef CDSTEST_REQUIRES_IMPLICIT_CONVERSION_WORKAROUND -# define CDSTEST_EXPLICIT -#else -# define CDSTEST_EXPLICIT explicit -#endif - // forward declaration namespace cds { namespace intrusive {}} @@ -86,7 +80,7 @@ namespace cds_test { base_int_item() {} - CDSTEST_EXPLICIT base_int_item( int key ) + explicit base_int_item( int key ) : nKey( key ) , nVal( key ) {} @@ -124,7 +118,7 @@ namespace cds_test { member_int_item() {} - CDSTEST_EXPLICIT member_int_item( int key ) + explicit member_int_item( int key ) : nKey( key ) , nVal( key ) {} @@ -331,13 +325,13 @@ namespace cds_test { protected: template - void test( Set& s ) + void test( Set& s, std::vector< typename Set::value_type >& data ) { - test_< true >( s ); + test_< true >( s, data ); } template - void test_( Set& s ) + void test_( Set& s, std::vector< typename Set::value_type >& data ) { // Precondition: set is empty // Postcondition: set is empty @@ -349,7 +343,6 @@ namespace cds_test { typedef typename std::conditional< Sorted, other_less, other_equal_to >::type other_predicate; size_t const nSetSize = kSize; - std::vector< value_type > data; std::vector< size_t> indices; data.reserve( kSize ); indices.reserve( kSize ); diff --git a/test/unit/striped-set/test_intrusive_striped_set.h b/test/unit/striped-set/test_intrusive_striped_set.h index b0493fd6..a85ad77d 100644 --- a/test/unit/striped-set/test_intrusive_striped_set.h +++ b/test/unit/striped-set/test_intrusive_striped_set.h @@ -70,8 +70,11 @@ namespace { ci::opt::compare< typename TestFixture::template cmp< typename TestFixture::base_item >> > set_type; - set_type s; - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, striped_basehook_less ) @@ -82,8 +85,11 @@ namespace { ci::opt::less< typename TestFixture::template less< typename TestFixture::base_item >> > set_type; - set_type s( 32 ); - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, striped_basehook_cmpmix ) @@ -96,8 +102,11 @@ namespace { ci::opt::resizing_policy< ci::striped_set::load_factor_resizing< 8 >> > set_type; - set_type s( 64 ); - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 64 ); + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, striped_basehook_resizing_threshold ) @@ -110,8 +119,11 @@ namespace { ci::opt::resizing_policy< ci::striped_set::single_bucket_size_threshold<8>> > set_type; - set_type s; - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, striped_basehook_resizing_threshold_rt ) @@ -124,8 +136,11 @@ namespace { ci::opt::resizing_policy< ci::striped_set::single_bucket_size_threshold<0>> > set_type; - set_type s( 64, ci::striped_set::single_bucket_size_threshold<0>( 4 )); - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 64, ci::striped_set::single_bucket_size_threshold<0>( 4 ) ); + this->test( s, data ); + } } // **************************************************************** @@ -139,8 +154,11 @@ namespace { ci::opt::compare< typename TestFixture::template cmp< typename TestFixture::member_item >> > set_type; - set_type s; - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, striped_memberhook_less ) @@ -151,8 +169,11 @@ namespace { ci::opt::less< typename TestFixture::template less< typename TestFixture::member_item >> > set_type; - set_type s( 32 ); - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32 ); + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, striped_memberhook_cmpmix ) @@ -165,8 +186,11 @@ namespace { ci::opt::resizing_policy< ci::striped_set::load_factor_resizing< 8 >> > set_type; - set_type s( 64 ); - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 64 ); + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, striped_memberhook_resizing_threshold ) @@ -179,8 +203,11 @@ namespace { ci::opt::resizing_policy< ci::striped_set::single_bucket_size_threshold<8>> > set_type; - set_type s; - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, striped_memberhook_resizing_threshold_rt ) @@ -193,8 +220,11 @@ namespace { ci::opt::resizing_policy< ci::striped_set::single_bucket_size_threshold<0>> > set_type; - set_type s( 64, ci::striped_set::single_bucket_size_threshold<0>( 4 ) ); - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 64, ci::striped_set::single_bucket_size_threshold<0>( 4 ) ); + this->test( s, data ); + } } @@ -209,8 +239,11 @@ namespace { ci::opt::compare< typename TestFixture::template cmp< typename TestFixture::base_item >> > set_type; - set_type s; - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, refinable_basehook_less ) @@ -221,8 +254,11 @@ namespace { ci::opt::less< typename TestFixture::template less< typename TestFixture::base_item >> > set_type; - set_type s( 32 ); - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32 ); + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, refinable_basehook_cmpmix ) @@ -235,8 +271,11 @@ namespace { ci::opt::resizing_policy< ci::striped_set::load_factor_resizing< 8 >> > set_type; - set_type s( 64 ); - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 64 ); + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, refinable_basehook_resizing_threshold ) @@ -249,8 +288,11 @@ namespace { ci::opt::resizing_policy< ci::striped_set::single_bucket_size_threshold<8>> > set_type; - set_type s; - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, refinable_basehook_resizing_threshold_rt ) @@ -263,8 +305,11 @@ namespace { ci::opt::resizing_policy< ci::striped_set::single_bucket_size_threshold<0>> > set_type; - set_type s( 64, ci::striped_set::single_bucket_size_threshold<0>( 4 )); - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 64, ci::striped_set::single_bucket_size_threshold<0>( 4 )); + this->test( s, data ); + } } // **************************************************************** @@ -278,8 +323,11 @@ namespace { ci::opt::compare< typename TestFixture::template cmp< typename TestFixture::member_item >> > set_type; - set_type s; - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, refinable_memberhook_less ) @@ -290,8 +338,11 @@ namespace { ci::opt::less< typename TestFixture::template less< typename TestFixture::member_item >> > set_type; - set_type s( 32 ); - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 32 ); + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, refinable_memberhook_cmpmix ) @@ -304,8 +355,11 @@ namespace { ci::opt::resizing_policy< ci::striped_set::load_factor_resizing< 8 >> > set_type; - set_type s( 64 ); - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 64 ); + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, refinable_memberhook_resizing_threshold ) @@ -318,8 +372,11 @@ namespace { ci::opt::resizing_policy< ci::striped_set::single_bucket_size_threshold<8>> > set_type; - set_type s; - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s; + this->test( s, data ); + } } TYPED_TEST_P( IntrusiveStripedSet, refinable_memberhook_resizing_threshold_rt ) @@ -332,8 +389,11 @@ namespace { ci::opt::resizing_policy< ci::striped_set::single_bucket_size_threshold<0>> > set_type; - set_type s( 64, ci::striped_set::single_bucket_size_threshold<0>( 4 ) ); - this->test( s ); + std::vector< typename set_type::value_type > data; + { + set_type s( 64, ci::striped_set::single_bucket_size_threshold<0>( 4 ) ); + this->test( s, data ); + } } REGISTER_TYPED_TEST_CASE_P( IntrusiveStripedSet,