Made stress-test for flat combining queue container.
authorMarsel Galimullin <mfgalimullin@yandex.ru>
Mon, 5 Dec 2016 19:45:00 +0000 (22:45 +0300)
committerMarsel Galimullin <mfgalimullin@yandex.ru>
Mon, 5 Dec 2016 20:07:58 +0000 (23:07 +0300)
Created HavyValue. It is class with hard copy constructor.

test/include/cds_test/fc_hevy_value.h
test/stress/data/test-debug.conf
test/stress/data/test.conf
test/stress/queue/push_pop.cpp
test/stress/queue/queue_type.h
test/unit/queue/fcqueue.cpp

index 5810779..cf42700 100644 (file)
 #include <math.h>
 #include <vector>
 
-namespace{
+namespace fc_test {
+
+    // SFINAE test
+    template <typename T>
+    class has_set_array_size {
+        typedef char small;
+        class big{char dummy[2];};
+
+        template <typename C, void (C::*) (size_t)> class SFINAE {};
+
+        template <typename C> static small test( SFINAE<C, &C::set_array> * ) ;
+        template <typename C> static big   test(...);
+
+    public:
+        static constexpr bool value = sizeof(test<T>(0)) == sizeof(char) ;
+    };
+
     template<int DefaultSize = 10>
     struct HeavyValue {
 
@@ -21,7 +37,7 @@ namespace{
         size_t nWriterNo;
 
         static std::vector<int> pop_buff;
-        static std::vector<int>::size_type buffer_size;
+        static size_t buffer_size;
 
         explicit HeavyValue(int new_value = 0)
         : value(new_value),
@@ -34,10 +50,14 @@ namespace{
               nNo(other.nNo),
               nWriterNo(other.nWriterNo)
         {
-            for(decltype(buffer_size) i = 0; i < buffer_size; ++i)
+            for(size_t i = 0; i < buffer_size; ++i)
                 pop_buff[i] =  static_cast<int>(std::sqrt(other.pop_buff[i]*rand()));
         }
-        static void setArraySize(decltype(buffer_size) new_size){
+        void set_array(size_t new_size) {
+            set_array_size(new_size);
+        }
+        static void set_array_size(size_t new_size){
+            if (buffer_size == new_size) return;
             buffer_size = new_size;
             pop_buff.resize(buffer_size, rand());
         }
index 961a650..92a8f22 100644 (file)
@@ -62,6 +62,8 @@ SegmentedQueue_SegmentSize=64
 ProducerCount=3\r
 ConsumerCount=3\r
 QueueSize=100000\r
+# HeavyValueSize - size of value for flat cobining containers, default 100\r
+# HeavyValueSize=100\r
 # SegmentedQueue parameters:\r
 # SegmentedQueue_Iterate: \r
 #    1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize\r
index 565e448..e71ab0f 100644 (file)
@@ -62,6 +62,8 @@ SegmentedQueue_SegmentSize=256
 ConsumerCount=4\r
 ProducerCount=4\r
 QueueSize=5000000\r
+# HeavyValueSize - size of value for flat cobining containers, default 100\r
+# HeavyValueSize=100\r
 # SegmentedQueue parameters:\r
 # SegmentedQueue_Iterate: \r
 #    1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize\r
index 20a3d39..2e5058b 100644 (file)
@@ -32,6 +32,7 @@
 
 #include <vector>
 #include <algorithm>
+#include <type_traits>
 
 // Multi-threaded queue push/pop test
 namespace {
@@ -39,22 +40,23 @@ namespace {
     static size_t s_nConsumerThreadCount = 4;
     static size_t s_nProducerThreadCount = 4;
     static size_t s_nQueueSize = 4000000;
+    static size_t s_nHeavyValueSize = 100;
 
     static std::atomic<size_t> s_nProducerDone( 0 );
 
     struct old_value
-       {
-       size_t nNo;
-               size_t nWriterNo;
-       };
+    {
+        size_t nNo;
+        size_t nWriterNo;
+    };
 
     template<class Value = old_value>
     class queue_push_pop: public cds_test::stress_fixture
     {
     protected:
-               using value_type = Value;
+       using value_type = Value;
 
-           enum {
+        enum {
             producer_thread,
             consumer_thread
         };
@@ -301,6 +303,20 @@ namespace {
             propout() << q.statistics();
         }
 
+    private:
+        static void set_array_size( size_t size ) {
+            const bool tmp = fc_test::has_set_array_size<value_type>::value;
+            set_array_size(size, std::integral_constant<bool, tmp>());
+        }
+
+        static void set_array_size(size_t size, std::true_type){
+            value_type::set_array_size(size);
+        }
+
+        static void set_array_size(size_t, std::false_type)
+        {
+        }
+
     public:
         static void SetUpTestCase()
         {
@@ -309,6 +325,7 @@ namespace {
             s_nConsumerThreadCount = cfg.get_size_t( "ConsumerCount", s_nConsumerThreadCount );
             s_nProducerThreadCount = cfg.get_size_t( "ProducerCount", s_nProducerThreadCount );
             s_nQueueSize = cfg.get_size_t( "QueueSize", s_nQueueSize );
+            s_nHeavyValueSize = cfg.get_size_t( "HeavyValueSize", s_nHeavyValueSize );
 
             if ( s_nConsumerThreadCount == 0u )
                 s_nConsumerThreadCount = 1;
@@ -316,23 +333,27 @@ namespace {
                 s_nProducerThreadCount = 1;
             if ( s_nQueueSize == 0u )
                 s_nQueueSize = 1000;
+            if ( s_nHeavyValueSize == 0 )
+                s_nHeavyValueSize = 1;
+
+            set_array_size( s_nHeavyValueSize );
         }
 
         //static void TearDownTestCase();
     };
 
-    using value_for_fc_with_heavy_value = queue_push_pop< HeavyValue<36000> >;
+    using value_for_fc_with_heavy_value = queue_push_pop< fc_test::HeavyValue<36000> >;
     using old_queue_push_pop = queue_push_pop<>;
 
-//    CDSSTRESS_MSQueue( old_queue_push_pop )
-//    CDSSTRESS_MoirQueue( old_queue_push_pop )
-//    CDSSTRESS_BasketQueue( old_queue_push_pop )
-//    CDSSTRESS_OptimsticQueue( old_queue_push_pop )
-//    CDSSTRESS_FCQueue( old_queue_push_pop )
-//    CDSSTRESS_FCDeque( old_queue_push_pop )
-       CDSSTRESS_FCDeque_HeavyValue( value_for_fc_with_heavy_value )
-//    CDSSTRESS_RWQueue( old_queue_push_pop )
-//    CDSSTRESS_StdQueue( old_queue_push_pop )
+    CDSSTRESS_MSQueue( old_queue_push_pop )
+    CDSSTRESS_MoirQueue( old_queue_push_pop )
+    CDSSTRESS_BasketQueue( old_queue_push_pop )
+    CDSSTRESS_OptimsticQueue( old_queue_push_pop )
+    CDSSTRESS_FCQueue( old_queue_push_pop )
+    CDSSTRESS_FCDeque( old_queue_push_pop )
+    CDSSTRESS_FCDeque_HeavyValue( value_for_fc_with_heavy_value )
+    CDSSTRESS_RWQueue( old_queue_push_pop )
+    CDSSTRESS_StdQueue( old_queue_push_pop )
 
 #undef CDSSTRESS_Queue_F
 #define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
@@ -383,8 +404,7 @@ namespace {
             if ( bIterative && quasi_factor > 4 ) {
                 for ( size_t qf = 4; qf <= quasi_factor; qf *= 2 )
                     args.push_back( qf );
-            }
-            else {
+            } else {
                 if ( quasi_factor > 2 )
                     args.push_back( quasi_factor );
                 else
@@ -403,7 +423,7 @@ namespace {
         test< queue_type >(); \
     }
 
-//    CDSSTRESS_SegmentedQueue( segmented_queue_push_pop )
+    CDSSTRESS_SegmentedQueue( segmented_queue_push_pop )
 
     INSTANTIATE_TEST_CASE_P( SQ,
         segmented_queue_push_pop,
index cb3276c..8691c35 100644 (file)
@@ -695,88 +695,88 @@ namespace cds_test {
     CDSSTRESS_Queue_F( test_fixture, FCQueue_deque,                 0 ) \
     CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_stat,            0 ) \
     CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_ss,         1 ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_ss_stat,    0 )
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_sm,         1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_sm_stat,    0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_mm,         1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_mm_stat,    0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_elimination,     1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_elimination_stat,0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_list,                  0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_stat,             0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_ss,          1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_ss_stat,     0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_sm,          1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_sm_stat,     0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_mm,          1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_mm_stat,     0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_elimination,      1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_elimination_stat, 0 )
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_ss_stat,    0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_sm,         1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_sm_stat,    0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_mm,         1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_mm_stat,    0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_elimination,     1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_elimination_stat,0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list,                  0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_stat,             0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_ss,          1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_ss_stat,     0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_sm,          1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_sm_stat,     0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_mm,          1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_mm_stat,     0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_elimination,      1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_elimination_stat, 0 )
 
 
 #define CDSSTRESS_FCDeque( test_fixture ) \
     CDSSTRESS_Queue_F( test_fixture, FCDequeL_default,              0 ) \
     CDSSTRESS_Queue_F( test_fixture, FCDequeL_mutex,                1 ) \
     CDSSTRESS_Queue_F( test_fixture, FCDequeL_stat,                 1 ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_ss,              1 )
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_ss_stat,         0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_sm,              1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_sm_stat,         0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_mm,              1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_mm_stat,         0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeL_elimination,          1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeL_elimination_stat,     0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost,                1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost_stat,           0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost_elimination,    1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost_elimination_stat, 1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_default,              0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_mutex,                0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_stat,                 0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_ss,              1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_ss_stat,         0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_sm,              1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_sm_stat,         0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_mm,              1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_mm_stat,         0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_elimination,          1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_elimination_stat,     0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost,                1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost_stat,           0 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost_elimination,    1 ) \
-//    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost_elimination_stat, 1 )
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_ss,              1 )\
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_ss_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_sm,              1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_sm_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_mm,              1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_mm_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_elimination,          1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_elimination_stat,     0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost,                1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost_stat,           0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost_elimination,    1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost_elimination_stat, 1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_default,              0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_mutex,                0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_stat,                 0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_ss,              1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_ss_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_sm,              1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_sm_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_mm,              1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_mm_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_elimination,          1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_elimination_stat,     0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost,                1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost_stat,           0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost_elimination,    1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost_elimination_stat, 1 )
 
 #define CDSSTRESS_FCDeque_HeavyValue( test_fixture ) \
     CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_default,              0 ) \
     CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_mutex,                0 ) \
     CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_stat,                 0 ) \
-    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_wait_ss,              1 )
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_wait_ss_stat,         1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_wait_sm,              1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_wait_sm_stat,         1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_wait_mm,              1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_wait_mm_stat,         1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_elimination,          1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_elimination_stat,     1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_boost,                1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_boost_stat,           1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_boost_elimination,    1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_boost_elimination_stat, 1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_default,              1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_mutex,                1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_stat,                 1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_wait_ss,              1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_wait_ss_stat,         1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_wait_sm,              1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_wait_sm_stat,         1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_wait_mm,              1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_wait_mm_stat,         1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_elimination,          1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_elimination_stat,     1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_boost,                1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_boost_stat,           1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_boost_elimination,    1 ) \
-//    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_boost_elimination_stat, 1 )
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_wait_ss,              1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_wait_ss_stat,         1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_wait_sm,              1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_wait_sm_stat,         1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_wait_mm,              1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_wait_mm_stat,         1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_elimination,          1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_elimination_stat,     1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_boost,                1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_boost_stat,           1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_boost_elimination,    1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_boost_elimination_stat, 1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_default,              1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_mutex,                1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_stat,                 1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_wait_ss,              1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_wait_ss_stat,         1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_wait_sm,              1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_wait_sm_stat,         1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_wait_mm,              1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_wait_mm_stat,         1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_elimination,          1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_elimination_stat,     1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_boost,                1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_boost_stat,           1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_boost_elimination,    1 ) \
+    CDSSTRESS_FCQueue_F( test_fixture, FCDequeR_HeavyValue_boost_elimination_stat, 1 )
 
 #define CDSSTRESS_RWQueue( test_fixture ) \
     CDSSTRESS_Queue_F( test_fixture, RWQueue_Spin,      0 ) \
index bf5ca37..142bd26 100644 (file)
@@ -169,7 +169,7 @@ namespace {
 
        TEST_F( FCQueue, std_deque_heavy_value )
        {
-               typedef HeavyValue<> ValueType;
+               typedef fc_test::HeavyValue<> ValueType;
                typedef cds::container::FCQueue<ValueType> queue_type;
 
                queue_type q;
@@ -178,7 +178,7 @@ namespace {
 
     TEST_F( FCQueue, std_empty_wait_strategy_heavy_value )
     {
-       typedef HeavyValue<> ValueType;
+       typedef fc_test::HeavyValue<> ValueType;
         typedef cds::container::FCQueue<ValueType, std::queue< ValueType, std::deque<ValueType>>,
             cds::container::fcqueue::make_traits<
                 cds::opt::wait_strategy< cds::algo::flat_combining::wait_strategy::empty >
@@ -191,7 +191,7 @@ namespace {
 
     TEST_F( FCQueue, std_single_mutex_single_condvar_heavy_value )
     {
-       typedef HeavyValue<> ValueType;
+       typedef fc_test::HeavyValue<> ValueType;
         typedef cds::container::FCQueue<ValueType, std::queue< ValueType, std::deque<ValueType>>,
             cds::container::fcqueue::make_traits<
                 cds::opt::wait_strategy< cds::algo::flat_combining::wait_strategy::single_mutex_single_condvar<> >
@@ -204,7 +204,7 @@ namespace {
 
     TEST_F( FCQueue, std_single_mutex_multi_condvar_heavy_value )
     {
-       typedef HeavyValue<> ValueType;
+       typedef fc_test::HeavyValue<> ValueType;
         typedef cds::container::FCQueue<ValueType, std::queue< ValueType, std::deque<ValueType>>,
             cds::container::fcqueue::make_traits<
                 cds::opt::wait_strategy< cds::algo::flat_combining::wait_strategy::single_mutex_multi_condvar<> >
@@ -217,7 +217,7 @@ namespace {
 
     TEST_F( FCQueue, std_multi_mutex_multi_condvar_heavy_value )
     {
-       typedef HeavyValue<> ValueType;
+       typedef fc_test::HeavyValue<> ValueType;
         typedef cds::container::FCQueue<ValueType, std::queue< ValueType, std::deque<ValueType>>,
             cds::container::fcqueue::make_traits<
                 cds::opt::wait_strategy< cds::algo::flat_combining::wait_strategy::multi_mutex_multi_condvar<> >