Updated copyright
[libcds.git] / test / unit / intrusive-set / intrusive_michael_iterable_hp.cpp
index 4ed2bb899b8a49751201dd68d5e89afb5cfb8924..9c6356d1974230dd695e8f2ef0e57ff0116c0401 100644 (file)
@@ -1,11 +1,11 @@
 /*
     This file is a part of libcds - Concurrent Data Structures library
 
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
+    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2017
 
     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:
 
@@ -144,7 +144,7 @@ namespace {
 
         set_type s( kSize, 2 );
         test( s );
-        EXPECT_GE( s.statistics().m_nInsertSuccess, 0 );
+        EXPECT_GE( s.statistics().m_nInsertSuccess, 0u );
     }
 
     TEST_F( IntrusiveMichaelIterableSet_HP, wrapped_stat )
@@ -167,7 +167,28 @@ namespace {
 
         set_type s( kSize, 2 );
         test( s );
-        EXPECT_GE( s.statistics().m_nInsertSuccess, 0 );
+        EXPECT_GE( s.statistics().m_nInsertSuccess, 0u );
+    }
+
+    TEST_F( IntrusiveMichaelIterableSet_HP, derived_list )
+    {
+        class bucket_type: public ci::IterableList< gc_type
+            , item_type
+            , ci::iterable_list::make_traits<
+                ci::opt::compare< cmp<item_type> >
+                ,ci::opt::disposer< mock_disposer >
+            >::type
+        >
+        {};
+
+        typedef ci::MichaelHashSet< gc_type, bucket_type,
+            ci::michael_set::make_traits<
+            ci::opt::hash< hash_int >
+            >::type
+        > set_type;
+
+        set_type s( kSize, 2 );
+        test( s );
     }
 
 } // namespace