From: Matthias Maier <tamiko@43-1.org>
Date: Tue, 4 Jul 2023 14:25:49 +0000 (-0500)
Subject: Quick tests: make quick test output more responsive
X-Git-Tag: relicensing~747^2~3
X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a6b285aeee2e5f8c44d298bcdb610de1218c365e;p=dealii.git

Quick tests: make quick test output more responsive
---

diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index f3fe17a96c..ce5d7a0e44 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -174,6 +174,7 @@ add_custom_target(test
   COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=${_my_build} -P ${CMAKE_CURRENT_SOURCE_DIR}/run_quick_tests.cmake
   WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
   COMMENT "Running quicktests..."
+  USES_TERMINAL
   )
 add_dependencies(test setup_tests_quick_tests)
 
diff --git a/tests/run_quick_tests.cmake b/tests/run_quick_tests.cmake
index 4f79df5969..978d87c9ec 100644
--- a/tests/run_quick_tests.cmake
+++ b/tests/run_quick_tests.cmake
@@ -36,6 +36,20 @@ if("${CMAKE_BUILD_TYPE}" STREQUAL "")
 endif()
 message(STATUS "Running quick_tests in ${CMAKE_BUILD_TYPE} mode with -j${_n_processors}:")
 
+#
+# Redirect quick tests to an output.log for CMake versions 3.18 onwards
+# (when we can actually instruct CMake to also print to the standard
+# terminal).
+#
+
+set(_redirect_output "")
+if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.18)
+  set(_redirect_output
+    OUTPUT_VARIABLE _output ECHO_OUTPUT_VARIABLE
+    ERROR_VARIABLE _output ECHO_ERROR_VARIABLE
+    )
+endif()
+
 #
 # Always restrict quick tests with specified build type, but run the step
 # and affinity quick tests in all available configuration:
@@ -45,10 +59,11 @@ string(TOLOWER "${CMAKE_BUILD_TYPE}" _build_type)
 execute_process(COMMAND ${CMAKE_CTEST_COMMAND}
   -j${_n_processors} -C ${CMAKE_BUILD_TYPE} --force-new-ctest-process
   -R "quick_tests/(step.debug|step.release|affinity|.*.${_build_type})"
-  OUTPUT_VARIABLE _output ERROR_VARIABLE _output RESULT_VARIABLE _return_value
+  --output-on-failure
+  ${_redirect_output}
+  RESULT_VARIABLE _return_value
   )
 file(WRITE quick_tests.log ${_output})
-message(${_output})
 
 if(NOT "${_return_value}" STREQUAL "0")
   message("