/*
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/
*/
#include "queue_type.h"
+#include "../misc/common.h"
// Multi-threaded queue test for pop operation
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 );
propout() << std::make_pair( "duration", duration );
- analyze( q );
+ DEBUG(analyze( q ));
propout() << q.statistics();
}
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 ); \
}
};
-#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