Trims down unnecessary test cases for Stacks
[libcds.git] / test / stress / stack / intrusive_stack_type.h
index 89f6a8eb27915a61a84fc4a0b9a117ca01178451..e33506e1725fb306b1d56fad7184c0b85e301860 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:
 
@@ -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.
 */
 
 #ifndef CDSSTRESS_INTRUSIVE_STACK_TYPES_H
@@ -45,6 +45,7 @@
 #include <boost/intrusive/list.hpp>
 
 #include <cds_test/stress_test.h>
+#include <cds_test/stat_flat_combining_out.h>
 
 
 namespace istack {
@@ -73,7 +74,7 @@ namespace istack {
             T * pop()
             {
                 unique_lock l( m_Lock );
-                if ( !m_Impl.empty() ) {
+                if ( !m_Impl.empty()) {
                      T * v = m_Impl.top();
                     m_Impl.pop();
                     return v;
@@ -150,10 +151,7 @@ namespace istack {
             cds::intrusive::treiber_stack::make_traits <
                 cds::intrusive::opt::hook< base_hook<GC> >
                 ,cds::opt::back_off<
-                    cds::backoff::exponential<
-                        cds::backoff::pause,
-                        cds::backoff::yield
-                    >
+                    cds::backoff::make_exponential_t< cds::backoff::pause,cds::backoff::yield >
                 >
             > ::type
         {};
@@ -248,7 +246,7 @@ namespace istack {
             cds::intrusive::treiber_stack::make_traits <
                 cds::intrusive::opt::hook< base_hook<GC> >
                 , cds::opt::enable_elimination<true>
-                , cds::opt::buffer< cds::opt::v::dynamic_buffer<int> >
+                , cds::opt::buffer< cds::opt::v::initialized_dynamic_buffer<int> >
             > ::type
         {};
         typedef cds::intrusive::TreiberStack< cds::gc::HP,  T, traits_Elimination_dyn<cds::gc::HP>  > Elimination_HP_dyn;
@@ -268,7 +266,7 @@ namespace istack {
             cds::intrusive::treiber_stack::make_traits <
                 cds::intrusive::opt::hook< base_hook<GC> >
                 , cds::opt::enable_elimination<true>
-                , cds::opt::buffer< cds::opt::v::dynamic_buffer<int> >
+                , cds::opt::buffer< cds::opt::v::initialized_dynamic_buffer<int> >
                 , cds::opt::stat<cds::intrusive::treiber_stack::stat<> >
             > ::type
         {};
@@ -301,10 +299,7 @@ namespace istack {
                 cds::intrusive::opt::hook< base_hook<GC> >
                 , cds::opt::enable_elimination<true>
                 ,cds::opt::back_off<
-                    cds::backoff::exponential<
-                        cds::backoff::pause,
-                        cds::backoff::yield
-                    >
+                    cds::backoff::make_exponential_t< cds::backoff::pause, cds::backoff::yield >
                 >
             > ::type
         {};
@@ -411,80 +406,50 @@ namespace cds_test {
             << CDSSTRESS_STAT_OUT( s, m_nPop )
             << CDSSTRESS_STAT_OUT( s, m_nFailedPop )
             << CDSSTRESS_STAT_OUT( s, m_nCollided )
-            << CDSSTRESS_STAT_OUT_( "combining_factor", s.combining_factor() )
-            << CDSSTRESS_STAT_OUT( s, m_nOperationCount )
-            << CDSSTRESS_STAT_OUT( s, m_nCombiningCount )
-            << CDSSTRESS_STAT_OUT( s, m_nCompactPublicationList )
-            << CDSSTRESS_STAT_OUT( s, m_nDeactivatePubRecord )
-            << CDSSTRESS_STAT_OUT( s, m_nActivatePubRecord )
-            << CDSSTRESS_STAT_OUT( s, m_nPubRecordCreated )
-            << CDSSTRESS_STAT_OUT( s, m_nPubRecordDeteted )
-            << CDSSTRESS_STAT_OUT( s, m_nAcquirePubRecCount )
-            << CDSSTRESS_STAT_OUT( s, m_nReleasePubRecCount );
+            << static_cast< cds::algo::flat_combining::stat<> const&>( s );
     }
 
 } // namespace cds_test
 
 #define CDSSTRESS_TreiberStack_HP( test_fixture ) \
     CDSSTRESS_Stack_F( test_fixture, Treiber_HP        ) \
-    CDSSTRESS_Stack_F( test_fixture, Treiber_HP_seqcst ) \
     CDSSTRESS_Stack_F( test_fixture, Treiber_HP_pause  ) \
-    CDSSTRESS_Stack_F( test_fixture, Treiber_HP_exp    ) \
-    CDSSTRESS_Stack_F( test_fixture, Treiber_HP_stat   ) \
+    CDSSTRESS_Stack_F( test_fixture, Treiber_HP_exp    )
 
 #define CDSSTRESS_TreiberStack_DHP( test_fixture ) \
     CDSSTRESS_Stack_F( test_fixture, Treiber_DHP       ) \
     CDSSTRESS_Stack_F( test_fixture, Treiber_DHP_pause ) \
-    CDSSTRESS_Stack_F( test_fixture, Treiber_DHP_exp   ) \
-    CDSSTRESS_Stack_F( test_fixture, Treiber_DHP_stat  )
+    CDSSTRESS_Stack_F( test_fixture, Treiber_DHP_exp   )
 
 
 #define CDSSTRESS_EliminationStack_HP( test_fixture ) \
     CDSSTRESS_Stack_F( test_fixture, Elimination_HP ) \
     CDSSTRESS_Stack_F( test_fixture, Elimination_HP_2ms ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_HP_2ms_stat ) \
     CDSSTRESS_Stack_F( test_fixture, Elimination_HP_5ms ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_HP_5ms_stat ) \
     CDSSTRESS_Stack_F( test_fixture, Elimination_HP_10ms ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_HP_10ms_stat ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_HP_seqcst ) \
     CDSSTRESS_Stack_F( test_fixture, Elimination_HP_pause ) \
     CDSSTRESS_Stack_F( test_fixture, Elimination_HP_exp ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_HP_stat ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_HP_dyn ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_HP_dyn_stat ) \
+    CDSSTRESS_Stack_F( test_fixture, Elimination_HP_dyn )
 
 
 #define CDSSTRESS_EliminationStack_DHP( test_fixture ) \
     CDSSTRESS_Stack_F( test_fixture, Elimination_DHP ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_seqcst ) \
     CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_2ms ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_2ms_stat ) \
     CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_5ms ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_5ms_stat ) \
     CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_10ms ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_10ms_stat ) \
     CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_pause ) \
     CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_exp ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_stat ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_dyn ) \
-    CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_dyn_stat )
+    CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_dyn )
 
-#define CDSSTRESS_FCStack( test_fixture ) \
+#define CDSSTRESS_FCStack_slist( test_fixture ) \
     CDSSTRESS_Stack_F( test_fixture, FCStack_slist ) \
-    CDSSTRESS_Stack_F( test_fixture, FCStack_slist_stat ) \
     CDSSTRESS_Stack_F( test_fixture, FCStack_slist_elimination ) \
-    CDSSTRESS_Stack_F( test_fixture, FCStack_slist_elimination_stat ) \
-    CDSSTRESS_Stack_F( test_fixture, FCStack_slist_mutex_stat ) \
-    CDSSTRESS_Stack_F( test_fixture, FCStack_slist_mutex_elimination ) \
-    CDSSTRESS_Stack_F( test_fixture, FCStack_slist_mutex_elimination_stat ) \
+    CDSSTRESS_Stack_F( test_fixture, FCStack_slist_mutex_elimination )
+
+#define CDSSTRESS_FCStack_list( test_fixture ) \
     CDSSTRESS_Stack_F( test_fixture, FCStack_list ) \
-    CDSSTRESS_Stack_F( test_fixture, FCStack_list_stat ) \
     CDSSTRESS_Stack_F( test_fixture, FCStack_list_elimination ) \
-    CDSSTRESS_Stack_F( test_fixture, FCStack_list_elimination_stat ) \
-    CDSSTRESS_Stack_F( test_fixture, FCStack_list_mutex_stat ) \
-    CDSSTRESS_Stack_F( test_fixture, FCStack_list_mutex_elimination ) \
-    CDSSTRESS_Stack_F( test_fixture, FCStack_list_mutex_elimination_stat )
+    CDSSTRESS_Stack_F( test_fixture, FCStack_list_mutex_elimination )
 
 #define CDSSTRESS_StdStack( test_fixture ) \
     CDSSTRESS_Stack_F( test_fixture, StdStack_Deque_Mutex  ) \