Details
-
Task
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
-
None
Description
In the ctest_results table we store the contents of the file test_summary.ctest_junit_xml. The important columns in the table are:
workitem_n | ctest_testcase_n | ctest_resulttype_n | ctest_message_n | duration_s
Various odd cases
Generally looking in the workitem (not the individual tests)
- ctest_results contains zero entries for a workitem AND the workitem result is fail/error AND type=Test AND branch is dev and project is qt (because legacy configs are not generating the ctest summary file)
- => (These are CI-flaky since the test run never completed, because ctest was interrupted and its XML file was never written. Unless it's a project that does not invoke ctest at all).
- with zero QTest XML results or => crash before the testrun => problem initializing the testrun
- with some QTest XML results => crash in the middle of the testrun
For the following odd cases, we need to associate a specific ctest_result with a specific QTest result (not straightforward since QTest records the class name, but ctest knows the executable)
- ctest_results has "fail" recorded as ctest_resulttype for a specific test, but
- no QTest XML result for the test (and workitem produces QTest XML files, e.g. ASAN run does not) => the test crashed during init or crashed the emulator
- pass-outcome QTest XML result for the specific test => The test crashed in the destructor or returned error for other reason
- ctest_message is Timeout => This is a ctest-specific timeout, defaults to 1500
- ctest_message is "BAD COMMAND" => ???
In general, from a different point of view
0. if a workitem has no QTest XML results at all, then it's OK (possibly ASAN build or a non-qt project)
1. test/emulator crash: failure in ctest_results, missing test XML file, not ASAN testrun or other type that does not generate XML (i.e. workitem must have produced other XMLs)
2. coin timeout/VM crash/etc: existing (some) QTest XML results for test but missing ctest_result
3. failed workitem without individually failed test in neither ctest or QTest -> CI flakiness
For the association between qtest and ctest results to happen,
we need to match the TestCase as reported by qtest, with the testcase as reported by ctest (is that the test executable?)
- TODO might need to INDEX ctest_results based on ctest_testcase_n
TODO
- a crashed_tests_2 TABLE or VIEW that contain crashed tests without XML files, known only because of ctest_results
Attachments
Issue Links
- covers
-
QTBUG-127970 cmake_test_javascript_files fails on Windows 10 in CI
- Reported
-
QTBUG-128645 Fix Windows ARM: QtDeclarative - TestLinkStaticQmlModule::canRun
- Closed
-
QTQAINFRA-921 ci-metrics doesn't account for tests failing post-completion
- Closed
-
QTQAINFRA-6556 CI Metrics: New test failing found which is not visible or found from CI Metrics
- Closed