Search code examples
c++unit-testingcppunit

cppunit export local variable


for (int i = 0; i < 50; ++i)
    {
        CPPUNIT_ASSERT(RtcTime_GetDayOfWeek(TimeC[i])==RtcTime_GetDayOfWeek(TimeC[i+1]));
    }

This test fall down. How i can export 'i' on which this test fall down?

now my output

1) test: testEq (F) line: 55 rtc_test.cxx
assertion failed
- Expression: RtcTime_GetDayOfWeek(TimeC[i])==RtcTime_GetDayOfWeek(TimeC[i+1])

i want something like that

1) test: testEq (F) line: 55 rtc_test.cxx
    assertion failed
    - Expression: RtcTime_GetDayOfWeek(TimeC[i])==RtcTime_GetDayOfWeek(TimeC[i+1])
i=49

Solution

  • You can do something like this, which will print a message when CppUnit asserts.

    for (int i = 0; i < 50; ++i)
    {
        std::stringstream oss;
        oss << "testing RtcTime_GetDayOfWeek(TimeC[i]) where i=" << i << std::endl;
        CPPUNIT_ASSERT_MESSAGE(oss.str(),
                  RtcTime_GetDayOfWeek(TimeC[i])==RtcTime_GetDayOfWeek(TimeC[i+1]));
    }