From: khizmax Date: Fri, 29 Jul 2016 16:00:43 +0000 (+0300) Subject: improved test error msg X-Git-Tag: v2.2.0~168 X-Git-Url: http://plrg.eecs.uci.edu/git/?p=libcds.git;a=commitdiff_plain;h=fce8279608a4ab4c1c8aec6a97b4cc1f61be76f5;hp=de819d282f4fecd5dd12932108c9c52656a6f226 improved test error msg --- diff --git a/test/stress/pqueue/pop.cpp b/test/stress/pqueue/pop.cpp index a5253195..dca55a30 100644 --- a/test/stress/pqueue/pop.cpp +++ b/test/stress/pqueue/pop.cpp @@ -70,15 +70,22 @@ namespace { ++m_nPopSuccess; nPrevKey = val.key; + bool prevPopFailed = false; while ( m_Queue.pop( val )) { ++m_nPopSuccess; if ( val.key > nPrevKey ) { ++m_nPopError; - m_arrFailedPops.emplace_back( failed_pops{ nPrevKey, val.key } ); + m_arrFailedPops.emplace_back( failed_pops{ nPrevKey, val.key, static_cast(-1) } ); + prevPopFailed = true; } else if ( val.key == nPrevKey ) { ++m_nPopErrorEq; - m_arrFailedPops.emplace_back( failed_pops{ nPrevKey, val.key } ); + m_arrFailedPops.emplace_back( failed_pops{ nPrevKey, val.key, static_cast(-1) } ); + } + else { + if ( prevPopFailed ) + m_arrFailedPops.back().next_key = val.key; + prevPopFailed = false; } nPrevKey = val.key; } @@ -98,6 +105,7 @@ namespace { struct failed_pops { size_t prev_key; size_t popped_key; + size_t next_key; }; std::vector< failed_pops > m_arrFailedPops; }; @@ -152,7 +160,8 @@ namespace { if ( !cons.m_arrFailedPops.empty() ) { std::cerr << "Priority violations, thread " << i; for ( size_t k = 0; k < cons.m_arrFailedPops.size(); ++k ) { - std::cerr << "\n " << "prev_key=" << cons.m_arrFailedPops[k].prev_key << " popped_key=" << cons.m_arrFailedPops[k].popped_key; + std::cerr << "\n " << "prev_key=" << cons.m_arrFailedPops[k].prev_key << " popped_key=" << cons.m_arrFailedPops[k].popped_key + << " next_key=" << cons.m_arrFailedPops[k].next_key; } std::cerr << std::endl; }