Added MichaelMap based on unordered LazyList<nogc> to map unit tests
authorkhizmax <libcds.dev@gmail.com>
Mon, 30 Mar 2015 19:01:45 +0000 (22:01 +0300)
committerkhizmax <libcds.dev@gmail.com>
Mon, 30 Mar 2015 19:01:45 +0000 (22:01 +0300)
tests/unit/map2/map_defs.h
tests/unit/map2/map_types.h

index 64135c497be00b2954f463eaa504908754756beb..f5bb2e6bcec1b6e7ad54b910cc90316c06712c32 100644 (file)
     TEST_MAP(MichaelMap_NOGC_cmp_stdAlloc) \
     TEST_MAP(MichaelMap_NOGC_less_michaelAlloc) \
     TEST_MAP(MichaelMap_Lazy_NOGC_cmp_stdAlloc) \
+    TEST_MAP(MichaelMap_Lazy_NOGC_unord_stdAlloc) \
     TEST_MAP(MichaelMap_Lazy_NOGC_less_michaelAlloc)
 
 #define CDSUNIT_TEST_MichaelMap_nogc  \
     CPPUNIT_TEST(MichaelMap_NOGC_cmp_stdAlloc) \
     CPPUNIT_TEST(MichaelMap_NOGC_less_michaelAlloc) \
     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_cmp_stdAlloc) \
+    CPPUNIT_TEST(MichaelMap_Lazy_NOGC_unord_stdAlloc) \
     CPPUNIT_TEST(MichaelMap_Lazy_NOGC_less_michaelAlloc) \
 
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
index e898f82cb0c5230a7172552e3cb4a9f06ec3b5c7..085bcadd4f2f59b1cf4c83d3b2d3f9ae469db803 100644 (file)
@@ -492,6 +492,14 @@ namespace map2 {
         typedef cc::LazyKVList< rcu_sht, Key, Value, traits_LazyList_cmp_stdAlloc > LazyList_RCU_SHT_cmp_stdAlloc;
 #endif
 
+        struct traits_LazyList_unord_stdAlloc :
+            public cc::lazy_list::make_traits<
+                co::equal_to< equal_to >
+                ,co::sort< false >
+            >::type
+        {};
+        typedef cc::LazyKVList< cds::gc::nogc, Key, Value, traits_LazyList_unord_stdAlloc > LazyList_NOGC_unord_stdAlloc;
+
         struct traits_LazyList_cmp_stdAlloc_seqcst :
             public cc::lazy_list::make_traits<
                 co::compare< compare >
@@ -588,6 +596,8 @@ namespace map2 {
         typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc;
 #endif
 
+        typedef cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_unord_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_NOGC_unord_stdAlloc;
+
         typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_HP_less_stdAlloc;
         typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_DHP_less_stdAlloc;
         typedef cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_NOGC_less_stdAlloc;