summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sal/qa/systools/test_retry_if_failed.cxx18
1 files changed, 10 insertions, 8 deletions
diff --git a/sal/qa/systools/test_retry_if_failed.cxx b/sal/qa/systools/test_retry_if_failed.cxx
index 7df83cb229a1..a218b3e9ff99 100644
--- a/sal/qa/systools/test_retry_if_failed.cxx
+++ b/sal/qa/systools/test_retry_if_failed.cxx
@@ -20,27 +20,31 @@ class test_retry_if_failed : public CppUnit::TestFixture
public:
void test_success()
{
+ unsigned counter = 0;
const DWORD nTicksBefore = GetTickCount();
- HRESULT hr = sal::systools::RetryIfFailed(10, 200, Tester(5));
+ HRESULT hr = sal::systools::RetryIfFailed(10, 200, Tester(5, counter));
const DWORD nTicksAfter = GetTickCount();
const DWORD nTicksElapsed = nTicksAfter > nTicksBefore ? nTicksAfter - nTicksBefore
: std::numeric_limits<DWORD>::max()
- nTicksBefore + nTicksAfter;
CPPUNIT_ASSERT(SUCCEEDED(hr));
// 5 attempts, 4 sleeps by ~200 ms
+ CPPUNIT_ASSERT_EQUAL(5U, counter);
CPPUNIT_ASSERT_GREATER(DWORD(800 - ClockRes), nTicksElapsed);
}
void test_failure()
{
+ unsigned counter = 0;
const DWORD nTicksBefore = GetTickCount();
- HRESULT hr = sal::systools::RetryIfFailed(10, 100, Tester(15));
+ HRESULT hr = sal::systools::RetryIfFailed(10, 100, Tester(15, counter));
const DWORD nTicksAfter = GetTickCount();
const DWORD nTicksElapsed = nTicksAfter > nTicksBefore ? nTicksAfter - nTicksBefore
: std::numeric_limits<DWORD>::max()
- nTicksBefore + nTicksAfter;
CPPUNIT_ASSERT(FAILED(hr));
// 1 + 10 attempts, 10 sleeps by ~100 ms
+ CPPUNIT_ASSERT_EQUAL(11U, counter);
CPPUNIT_ASSERT_GREATER(DWORD(1000 - ClockRes), nTicksElapsed);
}
@@ -52,18 +56,16 @@ public:
private:
struct Tester
{
- Tester(unsigned triesBeforeSuccess)
+ Tester(unsigned triesBeforeSuccess, unsigned& counter)
: m_nTriesBeforeSuccess(triesBeforeSuccess)
+ , m_rCounter(counter)
{
}
- HRESULT operator()()
- {
- return ++m_nTriesAttempted >= m_nTriesBeforeSuccess ? S_OK : E_FAIL;
- }
+ HRESULT operator()() { return ++m_rCounter >= m_nTriesBeforeSuccess ? S_OK : E_FAIL; }
unsigned m_nTriesBeforeSuccess;
- unsigned m_nTriesAttempted = 0;
+ unsigned& m_rCounter;
};
};