da18ada6bf
Previously, expected failures were only cleared at the end of each test function, i.e. after all data rows were finished. This meant that if a data-driven test function called QEXPECT_FAIL and then didn't perform any further verification steps to trigger the expected failure, the expected failure would be carried over to the next data row, probably causing the first verification step in the test function to XPASS (with a seemingly irrelevant error message) for the next data row. This commit adds the new function QTestResult::finishedCurrentTestData() to cleanup after each data row is executed. This function treats calls to QEXPECT_FAIL without subsequent verification steps as a test failure. This commit also adds a regression test to demonstrate that expected failures can no longer be carried over from one data row to another. If run against the previous version of testlib, the new test would report a pass instead of an error. Change-Id: Ida5c7f080815b0dca9531131fed582b0918334cb Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
92 lines
4.2 KiB
Plaintext
92 lines
4.2 KiB
Plaintext
<Environment>
|
|
<QtVersion>@INSERT_QT_VERSION_HERE@</QtVersion>
|
|
<QTestVersion>@INSERT_QT_VERSION_HERE@</QTestVersion>
|
|
</Environment>
|
|
<TestFunction name="initTestCase">
|
|
<Incident type="pass" file="" line="0" />
|
|
</TestFunction>
|
|
<TestFunction name="xfailAndContinue">
|
|
<Message type="qdebug" file="" line="0">
|
|
<Description><![CDATA[begin]]></Description>
|
|
</Message>
|
|
<Incident type="xfail" file="/home/user/dev/qt5/qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp" line="74">
|
|
<Description><![CDATA[This should xfail]]></Description>
|
|
</Incident>
|
|
<Message type="qdebug" file="" line="0">
|
|
<Description><![CDATA[after]]></Description>
|
|
</Message>
|
|
<Incident type="pass" file="" line="0" />
|
|
</TestFunction>
|
|
<TestFunction name="xfailAndAbort">
|
|
<Message type="qdebug" file="" line="0">
|
|
<Description><![CDATA[begin]]></Description>
|
|
</Message>
|
|
<Incident type="xfail" file="/home/user/dev/qt5/qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp" line="82">
|
|
<Description><![CDATA[This should xfail]]></Description>
|
|
</Incident>
|
|
<Incident type="pass" file="" line="0" />
|
|
</TestFunction>
|
|
<TestFunction name="xfailTwice">
|
|
<Incident type="fail" file="/home/user/dev/qt5/qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp" line="92">
|
|
<Description><![CDATA[Already expecting a fail]]></Description>
|
|
</Incident>
|
|
</TestFunction>
|
|
<TestFunction name="xfailWithQString">
|
|
<Incident type="xfail" file="/home/user/dev/qt5/qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp" line="101">
|
|
<Description><![CDATA[A string]]></Description>
|
|
</Incident>
|
|
<Incident type="xfail" file="/home/user/dev/qt5/qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp" line="106">
|
|
<Description><![CDATA[Bug 5 (The message)]]></Description>
|
|
</Incident>
|
|
<Incident type="pass" file="" line="0" />
|
|
</TestFunction>
|
|
<TestFunction name="xfailDataDriven">
|
|
<Incident type="xfail" file="/home/user/dev/qt5/qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp" line="135">
|
|
<DataTag><![CDATA[Abort]]></DataTag>
|
|
<Description><![CDATA[This test should xfail]]></Description>
|
|
</Incident>
|
|
<Incident type="xfail" file="/home/user/dev/qt5/qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp" line="135">
|
|
<DataTag><![CDATA[Continue]]></DataTag>
|
|
<Description><![CDATA[This test should xfail]]></Description>
|
|
</Incident>
|
|
<Incident type="pass" file="" line="0" />
|
|
</TestFunction>
|
|
<TestFunction name="xfailOnWrongRow">
|
|
<Incident type="pass" file="" line="0" />
|
|
</TestFunction>
|
|
<TestFunction name="xfailOnAnyRow">
|
|
<Incident type="xfail" file="/home/user/dev/qt5/qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp" line="170">
|
|
<DataTag><![CDATA[first row]]></DataTag>
|
|
<Description><![CDATA[This test should xfail]]></Description>
|
|
</Incident>
|
|
<Incident type="xfail" file="/home/user/dev/qt5/qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp" line="170">
|
|
<DataTag><![CDATA[second row]]></DataTag>
|
|
<Description><![CDATA[This test should xfail]]></Description>
|
|
</Incident>
|
|
<Incident type="pass" file="" line="0" />
|
|
</TestFunction>
|
|
<TestFunction name="xfailWithoutVerify">
|
|
<Incident type="fail" file="" line="0">
|
|
<DataTag><![CDATA[first row]]></DataTag>
|
|
<Description><![CDATA[QEXPECT_FAIL was called without any subsequent verification statements]]></Description>
|
|
</Incident>
|
|
<Incident type="fail" file="" line="0">
|
|
<DataTag><![CDATA[second row]]></DataTag>
|
|
<Description><![CDATA[QEXPECT_FAIL was called without any subsequent verification statements]]></Description>
|
|
</Incident>
|
|
</TestFunction>
|
|
<TestFunction name="xpass">
|
|
<Incident type="xpass" file="/home/user/dev/qt5/qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp" line="190">
|
|
<Description><![CDATA['true' returned FALSE. ()]]></Description>
|
|
</Incident>
|
|
</TestFunction>
|
|
<TestFunction name="xpassDataDriven">
|
|
<Incident type="xpass" file="/home/user/dev/qt5/qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp" line="212">
|
|
<DataTag><![CDATA[XPass]]></DataTag>
|
|
<Description><![CDATA['true' returned FALSE. ()]]></Description>
|
|
</Incident>
|
|
</TestFunction>
|
|
<TestFunction name="cleanupTestCase">
|
|
<Incident type="pass" file="" line="0" />
|
|
</TestFunction>
|