[SkipList] Added random-lvel generators for max height 32/24/16
[libcds.git] / test / stress / main.cpp
index 0c7acd83123ab6b6d44f5c0d37f25e15082efa82..ee8bcf9db370a143edae981e9d1641d7dd651c5e 100644 (file)
 #   include <cds/urcu/general_buffered.h>\r
 #   include <cds/urcu/general_threaded.h>\r
 #   include <cds/urcu/signal_buffered.h>\r
-#   include <cds/urcu/signal_threaded.h>\r
+#endif\r
+\r
+#ifdef CDS_ENABLE_HPSTAT\r
+#   include <cds_test/stat_hp_out.h>\r
+#   include <cds_test/stat_dhp_out.h>\r
+#   include <iostream>\r
 #endif\r
 \r
 int main( int argc, char **argv )\r
@@ -49,8 +54,7 @@ int main( int argc, char **argv )
         // Read test config file\r
         cds_test::init_config( argc, argv );\r
 \r
-        // Get detail level for stress test\r
-        cds_test::stress_fixture::init_detail_level( argc, argv );\r
+        std::cout << "Hardware concurrency: " << std::thread::hardware_concurrency() << "\n";\r
 \r
         // Init Google test\r
         ::testing::InitGoogleTest( &argc, argv );\r
@@ -85,9 +89,6 @@ int main( int argc, char **argv )
 #   ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED\r
         typedef cds::urcu::gc< cds::urcu::signal_buffered<> >    rcu_shb;\r
         rcu_shb   shbRCU( rcu_buffer_size, SIGUSR1 );\r
-\r
-        typedef cds::urcu::gc< cds::urcu::signal_threaded<> >    rcu_sht;\r
-        rcu_sht   shtRCU( rcu_buffer_size, SIGUSR2 );\r
 #   endif\r
 #endif // CDSUNIT_USE_URCU\r
 \r
@@ -97,6 +98,23 @@ int main( int argc, char **argv )
 \r
         cds::threading::Manager::detachThread();\r
     }\r
+\r
+#ifdef CDS_ENABLE_HPSTAT\r
+    {\r
+        cds::gc::HP::stat const& st = cds::gc::HP::postmortem_statistics();\r
+        EXPECT_EQ( st.guard_allocated, st.guard_freed );\r
+        EXPECT_EQ( st.retired_count, st.free_count );\r
+        std::cout << st;\r
+    }\r
+    {\r
+        cds::gc::DHP::stat const& st = cds::gc::DHP::postmortem_statistics();\r
+        EXPECT_EQ( st.guard_allocated, st.guard_freed );\r
+        EXPECT_EQ( st.retired_count, st.free_count );\r
+        std::cout << st;\r
+    }\r
+#endif\r
+\r
     cds::Terminate();\r
+\r
     return result;\r
 }\r