MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / test

Method test

extern/libcds/test/stress/pqueue/pop.cpp:39–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37 }
38
39 virtual void test()
40 {
41 typedef typename PQueue::value_type value_type;
42 size_t nPrevKey;
43 value_type val;
44 if ( m_Queue.pop( val )) {
45 ++m_nPopSuccess;
46 nPrevKey = val.key;
47
48 bool prevPopFailed = false;
49 while ( m_Queue.pop( val )) {
50 ++m_nPopSuccess;
51 if ( val.key > nPrevKey ) {
52 ++m_nPopError;
53 m_arrFailedPops.emplace_back( failed_pops{ nPrevKey, val.key, static_cast<size_t>(-1) } );
54 prevPopFailed = true;
55 }
56 else if ( val.key == nPrevKey ) {
57 ++m_nPopErrorEq;
58 m_arrFailedPops.emplace_back( failed_pops{ nPrevKey, val.key, static_cast<size_t>(-1) } );
59 }
60 else {
61 if ( prevPopFailed )
62 m_arrFailedPops.back().next_key = val.key;
63 prevPopFailed = false;
64 }
65 if ( nPrevKey > val.key )
66 nPrevKey = val.key;
67 }
68
69 }
70 else
71 ++m_nPopFailed;
72 }
73
74 public:
75 PQueue& m_Queue;

Callers

nothing calls this directly

Calls 3

emplace_backMethod · 0.80
popMethod · 0.45
backMethod · 0.45

Tested by

no test coverage detected