Uploaded image for project: 'Qt Quality Assurance Infrastructure'
  1. Qt Quality Assurance Infrastructure
  2. QTQAINFRA-6210

Report crashes that are discoverable because of the information in ctest_results table

    XMLWordPrintable

Details

    • Task
    • Resolution: Unresolved
    • P2: Important
    • None
    • None
    • Metrics / Test Results
    • 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

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              jimis Dimitrios Apostolou
              jimis Dimitrios Apostolou
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes