From d15a32251c6c5c5cb7a7f324122dc3194bf2317a 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.5 Task-number: QTQAINFRA-5146 Change-Id: I226203f93413689f5767a4d01ea1852b453ebf31 Reviewed-by: Alexandru Croitor Reviewed-by: Toni Saario (cherry picked from commit 19aa21b595c7e523b6cc941580e55d8c6fc50a6d) --- coin/instructions/cmake_run_ctest_enforce_exit_code.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml b/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml index 05cc5262fbe..097b6d6364e 100644 --- a/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml +++ b/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml @@ -74,6 +74,15 @@ instructions: 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 + - type: EnvironmentVariable variableName: COIN_COMMAND_OUTPUT_TIMEOUT variableValue: "900"