From fbca5f379b663808dc70de79b49a3e11407096f5 Mon Sep 17 00:00:00 2001 From: khizmax Date: Tue, 7 Feb 2017 21:26:39 +0300 Subject: [PATCH] Fixed map-minmax stress test for HP --- test/stress/map/minmax/map_minmax.cpp | 16 ++++++++-------- test/stress/map/minmax/map_minmax.h | 20 ++++++++++++++++++-- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/test/stress/map/minmax/map_minmax.cpp b/test/stress/map/minmax/map_minmax.cpp index 1d2a7fcc..fd7f6729 100644 --- a/test/stress/map/minmax/map_minmax.cpp +++ b/test/stress/map/minmax/map_minmax.cpp @@ -37,8 +37,8 @@ namespace map { size_t Map_MinMax::s_nExtractThreadCount = 4; size_t Map_MinMax::s_nPassCount = 1000; - //size_t Map_MinMax::s_nFeldmanMap_HeadBits = 8; - //size_t Map_MinMax::s_nFeldmanMap_ArrayBits = 8; + size_t Map_MinMax::s_nFeldmanMap_HeadBits = 8; + size_t Map_MinMax::s_nFeldmanMap_ArrayBits = 8; void Map_MinMax::SetUpTestCase() { @@ -60,13 +60,13 @@ namespace map { if ( s_nPassCount == 0 ) s_nPassCount = 100; - //s_nFeldmanMap_HeadBits = cfg.get_size_t( "FeldmanMapHeadBits", s_nFeldmanMap_HeadBits ); - //if ( s_nFeldmanMap_HeadBits == 0 ) - // s_nFeldmanMap_HeadBits = 4; + s_nFeldmanMap_HeadBits = cfg.get_size_t( "FeldmanMapHeadBits", s_nFeldmanMap_HeadBits ); + if ( s_nFeldmanMap_HeadBits == 0 ) + s_nFeldmanMap_HeadBits = 4; - //s_nFeldmanMap_ArrayBits = cfg.get_size_t( "FeldmanMapArrayBits", s_nFeldmanMap_ArrayBits ); - //if ( s_nFeldmanMap_ArrayBits == 0 ) - // s_nFeldmanMap_ArrayBits = 4; + s_nFeldmanMap_ArrayBits = cfg.get_size_t( "FeldmanMapArrayBits", s_nFeldmanMap_ArrayBits ); + if ( s_nFeldmanMap_ArrayBits == 0 ) + s_nFeldmanMap_ArrayBits = 4; } } // namespace map diff --git a/test/stress/map/minmax/map_minmax.h b/test/stress/map/minmax/map_minmax.h index 2703a056..61bb8a1d 100644 --- a/test/stress/map/minmax/map_minmax.h +++ b/test/stress/map/minmax/map_minmax.h @@ -41,8 +41,8 @@ namespace map { static size_t s_nMapSize; // max map size static size_t s_nPassCount; - //static size_t s_nFeldmanMap_HeadBits; - //static size_t s_nFeldmanMap_ArrayBits; + static size_t s_nFeldmanMap_HeadBits; + static size_t s_nFeldmanMap_ArrayBits; static size_t s_nLoadFactor; // current load factor @@ -194,6 +194,22 @@ namespace map { ++m_nDeleteMaxFailed; } while ( fixture.m_nInsThreadCount.load( atomics::memory_order_acquire ) != 0 ); + + gp = rMap.extract_min(); + if ( gp ) { + if ( gp->first == keyMin ) + ++m_nDeleteMin; + } + else + ++m_nDeleteMinFailed; + + gp = rMap.extract_max(); + if ( gp ) { + if ( gp->first == keyMax ) + ++m_nDeleteMax; + } + else + ++m_nDeleteMaxFailed; } }; -- 2.34.1