Disables running some stat analysis for benchmarks & Adds some sequential data structures
[libcds.git] / test / stress / queue / pop.cpp
index 1de0ee2a7bd5235a0b18a94a72ff7119c6e2a698..4e50200c086be7a386a46fba8fc94b880fdd9ce4 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:
 
@@ -29,6 +29,7 @@
 */
 
 #include "queue_type.h"
+#include "../misc/common.h"
 
 // Multi-threaded queue test for pop operation
 namespace {
@@ -91,7 +92,7 @@ namespace {
                 typedef typename Queue::value_type value_type;
                 value_type value;
                 size_t nPopCount = 0;
-                while ( m_Queue.pop( value ) ) {
+                while ( m_Queue.pop( value )) {
                     ++m_arr[ value.nNo ];
                     ++nPopCount;
                 }
@@ -105,10 +106,10 @@ namespace {
         };
 
     public:
-        static void SetUpTestCase()\r
-        {\r
-            cds_test::config const& cfg = get_config( "queue_pop" );\r
-\r
+        static void SetUpTestCase()
+        {
+            cds_test::config const& cfg = get_config( "queue_pop" );
+
             s_nThreadCount = cfg.get_size_t( "ThreadCount", s_nThreadCount );
             s_nQueueSize = cfg.get_size_t( "QueueSize", s_nQueueSize );
 
@@ -116,9 +117,9 @@ namespace {
                 s_nThreadCount = 1;
             if ( s_nQueueSize == 0 )
                 s_nQueueSize = 1000;
-        }\r
-\r
-        //static void TearDownTestCase();\r
+        }
+
+        //static void TearDownTestCase();
 
     protected:
         template <class Queue>
@@ -131,8 +132,8 @@ namespace {
             size_t nTotalPops = 0;
             for ( size_t i = 0; i < pool.size(); ++i ) {
                 Consumer<Queue>& thread = static_cast<Consumer<Queue>&>(pool.get( i ));
-                for ( size_t i = 0; i < s_nQueueSize; ++i )
-                    arr[i] += thread.m_arr[i];
+                for ( size_t j = 0; j < s_nQueueSize; ++j )
+                    arr[j] += thread.m_arr[j];
                 nTotalPops += thread.m_nPopCount;
             }
             EXPECT_EQ( nTotalPops, s_nQueueSize );
@@ -160,7 +161,7 @@ namespace {
 
             propout() << std::make_pair( "duration", duration );
 
-            analyze( q );
+            DEBUG(analyze( q ));
 
             propout() << q.statistics();
         }
@@ -170,22 +171,17 @@ namespace {
     CDSSTRESS_MoirQueue( queue_pop )
     CDSSTRESS_BasketQueue( queue_pop )
     CDSSTRESS_OptimsticQueue( queue_pop )
-    CDSSTRESS_FCQueue( queue_pop )
-    CDSSTRESS_FCDeque( queue_pop )
     CDSSTRESS_RWQueue( queue_pop )
-    CDSSTRESS_StdQueue( queue_pop )
 
 #undef CDSSTRESS_Queue_F
-#define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
+#define CDSSTRESS_Queue_F( test_fixture, type_name ) \
     TEST_F( test_fixture, type_name ) \
     { \
-        if ( !check_detail_level( level )) return; \
         typedef queue::Types< value_type >::type_name queue_type; \
         queue_type queue( s_nQueueSize ); \
         test( queue ); \
     }
 
-    CDSSTRESS_TsigasQueue( queue_pop )
     CDSSTRESS_VyukovQueue( queue_pop )
 
 #undef CDSSTRESS_Queue_F
@@ -234,18 +230,28 @@ namespace {
         }
     };
 
-#define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
+#define CDSSTRESS_Queue_F( test_fixture, type_name ) \
     TEST_P( test_fixture, type_name ) \
     { \
-        if ( !check_detail_level( level )) return; \
         typedef typename queue::Types<value_type>::type_name queue_type; \
         test< queue_type >(); \
     }
 
     CDSSTRESS_SegmentedQueue( segmented_queue_pop )
 
+#ifdef CDSTEST_GTEST_INSTANTIATE_TEST_CASE_P_HAS_4TH_ARG
+    static std::string get_test_parameter_name( testing::TestParamInfo<size_t> const& p )
+    {
+        return std::to_string( p.param );
+    }
+    INSTANTIATE_TEST_CASE_P( SQ,
+        segmented_queue_pop,
+        ::testing::ValuesIn( segmented_queue_pop::get_test_parameters()), get_test_parameter_name );
+#else
     INSTANTIATE_TEST_CASE_P( SQ,
         segmented_queue_pop,
         ::testing::ValuesIn( segmented_queue_pop::get_test_parameters()));
+#endif
+
 
 } // namespace