From 19aa21b595c7e523b6cc941580e55d8c6fc50a6d Mon Sep 17 00:00:00 2001 From: Dimitrios Apostolou Date: Mon, 6 Nov 2023 18:38:57 +0100 Subject: [PATCH] CTest should write a JUnit XML test summary This feature is to be used when testing Qt in Coin (our continuous integration platform). The command line option --output-junit is supported in CMake 3.21 or greater. However we have one particular configuration that tests with CMake 3.16, so we exclude that one. We have already configured the individual tests to print detailed results in their own XML files, using QTest's functionality. But then, when a qt test process crashes, it leaves behind a half-baked XML file, or no file at all. CTest on the contrary knows nothing about the internals of a Qt test, and only cares about the process exit code. Even if a test crashes, it catches that and reports it as a failure. We enable this functionality here to use in addition to what QTest's XML files provide, in order to collect more complete information on test results. Pick-to: 6.6 6.5 Task-number: QTQAINFRA-5146 Change-Id: I226203f93413689f5767a4d01ea1852b453ebf31 Reviewed-by: Alexandru Croitor Reviewed-by: Toni Saario --- .../cmake_run_ctest_enforce_exit_code.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml b/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml index db8c8242be..68bbed6173 100644 --- a/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml +++ b/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml @@ -73,6 +73,16 @@ instructions: condition: property property: features contains_value: AbortTestingOnFirstFailure + + # Enable CTest's JUnit XML summary only for recent versions + - type: AppendToEnvironmentVariable + variableName: CTEST_ARGS + variableValue: " --output-junit {{.Env.COIN_CTEST_RESULTSDIR}}{{.Env.CI_PATH_SEP}}test_summary.ctest_junit_xml" + enable_if: + condition: runtime + env_var: CMAKE_MIN_SUPPORTED_BIN_PATH + equals_value: null + - !include "{{qt/qtbase}}/coin_module_test_android_start_emulator.yaml" - type: EnvironmentVariable