From: Marsel Galimullin Date: Sun, 18 Sep 2016 22:35:51 +0000 (+0300) Subject: change queue-stress X-Git-Tag: v2.3.0~210^2~5 X-Git-Url: http://plrg.eecs.uci.edu/git/?p=libcds.git;a=commitdiff_plain;h=f6a4db0477151d641ac2a89aa79cf537b620e154 change queue-stress --- diff --git a/test/include/cds_test/fc_hevy_value.h b/test/include/cds_test/fc_hevy_value.h index 71693f72..b53e98a7 100644 --- a/test/include/cds_test/fc_hevy_value.h +++ b/test/include/cds_test/fc_hevy_value.h @@ -12,47 +12,64 @@ #include namespace{ - template - struct HeavyValue { - static std::vector pop_buff; - int value; - size_t buffer_size; + template + struct HeavyValue { - size_t nNo; - size_t nWriterNo; + int value; + size_t buffer_size; - explicit HeavyValue(int new_value = 0, size_t new_bufer_size = DefaultSize) - : value(new_value), - buffer_size(new_bufer_size), - nNo(0), - nWriterNo(0) + size_t nNo; + size_t nWriterNo; + static std::vector pop_buff; - { - if( buffer_size != pop_buff.size() ){ - pop_buff.resize(buffer_size); - } - }; - HeavyValue(const HeavyValue &other) - : value(other.value), - buffer_size(other.buffer_size) - { - working(other); - } - void operator=(const int& new_value) - { - value = new_value; - } - bool operator==(const int new_value) const - { - return value == new_value; - } - void working(const HeavyValue &other) { - for (size_t i = 0; i < buffer_size; ++i) - pop_buff[i] = static_cast(std::sqrt(other.pop_buff[i])); - } - }; + explicit HeavyValue(int new_value = 0, size_t new_bufer_size = DefaultSize) + : value(new_value), + buffer_size(new_bufer_size), + nNo(0), + nWriterNo(0) + { + if( buffer_size != pop_buff.size() ){ + pop_buff.resize(buffer_size); + for(size_t i = 0; i < buffer_size; ++i) + pop_buff[i] = i; + } + }; + HeavyValue(const HeavyValue &other) + : value(other.value), + buffer_size(other.buffer_size), + nNo(other.nNo), + nWriterNo(other.nWriterNo) + { + for(size_t i = 0; i < buffer_size; ++i) + pop_buff[i] = static_cast(std::sqrt(other.pop_buff[i])); + } + void operator=(const int& new_value) + { + value = new_value; + } + bool operator==(const int new_value) const + { + return value == new_value; + } + bool operator<=(const int new_value) const + { + return value <= new_value; + } + bool operator<(const int new_value) const + { + return value < new_value; + } + bool operator>(const int new_value) const + { + return value > new_value; + } + bool operator>=(const int new_value) const + { + return value >= new_value; + } + }; - template - std::vector HeavyValue< DefaultSize >::pop_buff = {}; + template + std::vector HeavyValue< DefaultSize >::pop_buff = {}; } #endif /* SOURCE_DIRECTORY__TEST_INCLUDE_CDS_TEST_FC_HEVY_VALUE_H_ */ diff --git a/test/stress/queue/CMakeLists.txt b/test/stress/queue/CMakeLists.txt index cca5e7b2..790e96ae 100644 --- a/test/stress/queue/CMakeLists.txt +++ b/test/stress/queue/CMakeLists.txt @@ -2,12 +2,12 @@ set(PACKAGE_NAME stress-queue) set(CDSSTRESS_QUEUE_SOURCES ../main.cpp - bounded_queue_fulness.cpp - intrusive_push_pop.cpp - pop.cpp - push.cpp +# bounded_queue_fulness.cpp +# intrusive_push_pop.cpp +# pop.cpp +# push.cpp push_pop.cpp - random.cpp +# random.cpp ) include_directories( diff --git a/test/stress/queue/push_pop.cpp b/test/stress/queue/push_pop.cpp index 0f2b9793..20a3d39c 100644 --- a/test/stress/queue/push_pop.cpp +++ b/test/stress/queue/push_pop.cpp @@ -321,7 +321,7 @@ namespace { //static void TearDownTestCase(); }; - using value_for_fc_with_heavy_value = queue_push_pop< HeavyValue<10> >; + using value_for_fc_with_heavy_value = queue_push_pop< HeavyValue<36000> >; using old_queue_push_pop = queue_push_pop<>; // CDSSTRESS_MSQueue( old_queue_push_pop ) @@ -329,8 +329,8 @@ namespace { // CDSSTRESS_BasketQueue( old_queue_push_pop ) // CDSSTRESS_OptimsticQueue( old_queue_push_pop ) // CDSSTRESS_FCQueue( old_queue_push_pop ) - CDSSTRESS_FCDeque_HeavyValue( value_for_fc_with_heavy_value ) // 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 ) @@ -403,7 +403,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, diff --git a/test/stress/queue/queue_type.h b/test/stress/queue/queue_type.h index 0ccc1a7a..cb3276c4 100644 --- a/test/stress/queue/queue_type.h +++ b/test/stress/queue/queue_type.h @@ -695,87 +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, 0 ) \ - CDSSTRESS_Queue_F( test_fixture, FCDequeL_stat, 0 ) \ - 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_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 ) #define CDSSTRESS_FCDeque_HeavyValue( test_fixture ) \ - CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_default, 1 ) \ - CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_mutex, 1 ) \ - CDSSTRESS_FCQueue_F( test_fixture, FCDequeL_HeavyValue_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 ) + 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 ) #define CDSSTRESS_RWQueue( test_fixture ) \ CDSSTRESS_Queue_F( test_fixture, RWQueue_Spin, 0 ) \