X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2Funit%2Fmap%2Fmichael_michael_dhp.cpp;h=b852e46a2e1668f425af0434593252810f87554a;hb=305da3404a293d5e5c4e76eb6660eeda5a7d4413;hp=94162358c3ca528b869f85353f3af53655d33aa5;hpb=7d2a2ffc1eeca2819e78568a43c90f9be6656ef4;p=libcds.git diff --git a/test/unit/map/michael_michael_dhp.cpp b/test/unit/map/michael_michael_dhp.cpp index 94162358..b852e46a 100644 --- a/test/unit/map/michael_michael_dhp.cpp +++ b/test/unit/map/michael_michael_dhp.cpp @@ -5,7 +5,7 @@ Source code repo: http://github.com/khizmax/libcds/ Download: http://sourceforge.net/projects/libcds/files/ - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -25,7 +25,7 @@ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "test_map_hp.h" @@ -67,7 +67,7 @@ namespace { >::type > list_type; - typedef cc::MichaelHashMap< gc_type, list_type, + typedef cc::MichaelHashMap< gc_type, list_type, typename cc::michael_map::make_traits< cds::opt::hash< hash1 > >::type @@ -85,7 +85,7 @@ namespace { >::type > list_type; - typedef cc::MichaelHashMap< gc_type, list_type, + typedef cc::MichaelHashMap< gc_type, list_type, typename cc::michael_map::make_traits< cds::opt::hash< hash1 > >::type @@ -104,7 +104,7 @@ namespace { >::type > list_type; - typedef cc::MichaelHashMap< gc_type, list_type, + typedef cc::MichaelHashMap< gc_type, list_type, typename cc::michael_map::make_traits< cds::opt::hash< hash1 > >::type @@ -154,5 +154,46 @@ namespace { test( s ); } + TEST_F( MichaelMap_DHP, stat ) + { + struct list_traits: public cc::michael_list::traits + { + typedef cmp compare; + typedef cds::backoff::yield back_off; + typedef cc::michael_list::stat<> stat; + }; + typedef cc::MichaelKVList< gc_type, key_type, value_type, list_traits > list_type; + + struct map_traits: public cc::michael_map::traits + { + typedef hash1 hash; + }; + typedef cc::MichaelHashMap< gc_type, list_type, map_traits > map_type; + + map_type m( kSize, 8 ); + test( m ); + EXPECT_GE( m.statistics().m_nInsertSuccess, 0u ); + } + + TEST_F( MichaelMap_DHP, wrapped_stat ) + { + struct list_traits: public cc::michael_list::traits + { + typedef cmp compare; + typedef cc::michael_list::wrapped_stat<> stat; + }; + typedef cc::MichaelKVList< gc_type, key_type, value_type, list_traits > list_type; + + struct map_traits: public cc::michael_map::traits + { + typedef hash1 hash; + }; + typedef cc::MichaelHashMap< gc_type, list_type, map_traits > map_type; + + map_type m( kSize, 8 ); + test( m ); + EXPECT_GE( m.statistics().m_nInsertSuccess, 0u ); + } + } // namespace