13d2e13290
Added tests for repeated skips and failures (from within void lambdas, to simulate skips and failures from within event handlers). These exhibit yet more ways to count more than one outcome for a test. The new QTest::failOnWarning() can also provoke more than one failure from a single test, and several existing selftests exhibited various ways for the Totals line's counts to add up to more than the number of actual tests run. Fixed counting so that only the first decisive incident is counted. Tests can still report later failure or skipping, but only the first is counted. Added a currentTestState in qtestlog.cpp, by which it keeps track of whether the test has resolved to a result, and clearCurrentTestState() by which other code can reset that at the end of each test. This brought to light various places where test-end clean-up was not being handled - due to failure or skipping in a *_data() method or init, or a skip in cleanup. Fixes: QTBUG-95661 Change-Id: I5d24a37a53d3db225fa602649d8aad8f5ed6c1ad Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
80 lines
9.4 KiB
Plaintext
80 lines
9.4 KiB
Plaintext
##teamcity[testSuiteStarted name='tst_Subtest' flowId='tst_Subtest']
|
|
##teamcity[testStarted name='initTestCase()' flowId='tst_Subtest']
|
|
##teamcity[testStdOut name='initTestCase()' out='QDEBUG: initTestCase initTestCase (null)' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='initTestCase()' flowId='tst_Subtest']
|
|
##teamcity[testStarted name='test1()' flowId='tst_Subtest']
|
|
##teamcity[testStdOut name='test1()' out='QDEBUG: init test1 (null)|nQDEBUG: test1 test1 (null)|nQDEBUG: cleanup test1 (null)' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='test1()' flowId='tst_Subtest']
|
|
##teamcity[testStarted name='test2(data0)' flowId='tst_Subtest']
|
|
##teamcity[testStdOut name='test2(data0)' out='QDEBUG: test2_data test2 (null)|nQDEBUG: test2_data end|nQDEBUG: init test2 data0|nQDEBUG: test2 test2 data0|nQDEBUG: test2 end|nQDEBUG: cleanup test2 data0' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='test2(data0)' flowId='tst_Subtest']
|
|
##teamcity[testStarted name='test2(data1)' flowId='tst_Subtest']
|
|
##teamcity[testStdOut name='test2(data1)' out='QDEBUG: init test2 data1|nQDEBUG: test2 test2 data1|nQDEBUG: test2 end|nQDEBUG: cleanup test2 data1' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='test2(data1)' flowId='tst_Subtest']
|
|
##teamcity[testStarted name='test2(data2)' flowId='tst_Subtest']
|
|
##teamcity[testStdOut name='test2(data2)' out='QDEBUG: init test2 data2|nQDEBUG: test2 test2 data2|nQDEBUG: test2 end|nQDEBUG: cleanup test2 data2' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='test2(data2)' flowId='tst_Subtest']
|
|
##teamcity[testStarted name='test3(data0)' flowId='tst_Subtest']
|
|
##teamcity[testStdOut name='test3(data0)' out='QDEBUG: test3_data test3 (null)|nQDEBUG: test3_data end|nQDEBUG: init test3 data0|nQDEBUG: test3 test3 data0|nQDEBUG: test3 end|nQDEBUG: cleanup test3 data0' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='test3(data0)' flowId='tst_Subtest']
|
|
##teamcity[testStarted name='test3(data1)' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='test3(data1)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='Compared values are not the same|n Actual (str) : "hello1"|n Expected (QString("hello0")): "hello0"' flowId='tst_Subtest']
|
|
##teamcity[testStdOut name='test3(data1)' out='QDEBUG: init test3 data1|nQDEBUG: test3 test3 data1' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='test3(data1)' flowId='tst_Subtest']
|
|
##teamcity[testStarted name='test3(data2)' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='test3(data2)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='Compared values are not the same|n Actual (str) : "hello2"|n Expected (QString("hello0")): "hello0"' flowId='tst_Subtest']
|
|
##teamcity[testStdOut name='test3(data2)' out='QDEBUG: cleanup test3 data1|nQDEBUG: init test3 data2|nQDEBUG: test3 test3 data2' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='test3(data2)' flowId='tst_Subtest']
|
|
##teamcity[testStarted name='multiFail()' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='multiFail()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='This failure message should be repeated ten times' flowId='tst_Subtest']
|
|
##teamcity[testStdOut name='multiFail()' out='QDEBUG: cleanup test3 data2|nQDEBUG: init multiFail (null)' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiFail()' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='multiFail()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='This failure message should be repeated ten times' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiFail()' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='multiFail()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='This failure message should be repeated ten times' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiFail()' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='multiFail()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='This failure message should be repeated ten times' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiFail()' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='multiFail()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='This failure message should be repeated ten times' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiFail()' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='multiFail()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='This failure message should be repeated ten times' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiFail()' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='multiFail()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='This failure message should be repeated ten times' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiFail()' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='multiFail()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='This failure message should be repeated ten times' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiFail()' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='multiFail()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='This failure message should be repeated ten times' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiFail()' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='multiFail()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='This failure message should be repeated ten times' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiFail()' flowId='tst_Subtest']
|
|
##teamcity[testFailed name='multiFail()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' details='But this test should only contribute one to the failure count' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiFail()' flowId='tst_Subtest']
|
|
##teamcity[testStarted name='multiSkip()' flowId='tst_Subtest']
|
|
##teamcity[testIgnored name='multiSkip()' message='This skip should be repeated ten times |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' flowId='tst_Subtest']
|
|
##teamcity[testStdOut name='multiSkip()' out='QDEBUG: cleanup multiFail (null)|nQDEBUG: init multiSkip (null)' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiSkip()' flowId='tst_Subtest']
|
|
##teamcity[testIgnored name='multiSkip()' message='This skip should be repeated ten times |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiSkip()' flowId='tst_Subtest']
|
|
##teamcity[testIgnored name='multiSkip()' message='This skip should be repeated ten times |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiSkip()' flowId='tst_Subtest']
|
|
##teamcity[testIgnored name='multiSkip()' message='This skip should be repeated ten times |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiSkip()' flowId='tst_Subtest']
|
|
##teamcity[testIgnored name='multiSkip()' message='This skip should be repeated ten times |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiSkip()' flowId='tst_Subtest']
|
|
##teamcity[testIgnored name='multiSkip()' message='This skip should be repeated ten times |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiSkip()' flowId='tst_Subtest']
|
|
##teamcity[testIgnored name='multiSkip()' message='This skip should be repeated ten times |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiSkip()' flowId='tst_Subtest']
|
|
##teamcity[testIgnored name='multiSkip()' message='This skip should be repeated ten times |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiSkip()' flowId='tst_Subtest']
|
|
##teamcity[testIgnored name='multiSkip()' message='This skip should be repeated ten times |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiSkip()' flowId='tst_Subtest']
|
|
##teamcity[testIgnored name='multiSkip()' message='This skip should be repeated ten times |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiSkip()' flowId='tst_Subtest']
|
|
##teamcity[testIgnored name='multiSkip()' message='But this test should only contribute one to the skip count |[Loc: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp(0)|]' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='multiSkip()' flowId='tst_Subtest']
|
|
##teamcity[testStarted name='cleanupTestCase()' flowId='tst_Subtest']
|
|
##teamcity[testStdOut name='cleanupTestCase()' out='QDEBUG: cleanup multiSkip (null)|nQDEBUG: cleanupTestCase cleanupTestCase (null)' flowId='tst_Subtest']
|
|
##teamcity[testFinished name='cleanupTestCase()' flowId='tst_Subtest']
|
|
##teamcity[testSuiteFinished name='tst_Subtest' flowId='tst_Subtest']
|