diff options
author | Mikolaj Boc <mikolaj.boc@qt.io> | 2023-03-07 18:31:02 +0100 |
---|---|---|
committer | Mikolaj Boc <mikolaj.boc@qt.io> | 2023-03-13 16:12:28 +0100 |
commit | 5947c077174f5aece3fd0e278edc4710fdaa6ed1 (patch) | |
tree | 7c962235d1620da0d2dfa2c155cece652a3a6c9b /cmake/QtTestHelpers.cmake | |
parent | d87ba73d48abaa25112e2248f6056d4cf9de8282 (diff) | |
download | qtbase-5947c077174f5aece3fd0e278edc4710fdaa6ed1.tar.gz |
Do not batch standalone tests; add an option to batch them
Tests generated with qt-cmake-standalone-test will now not be
batched by default. Defining the QT_BATCH_STANDALONE_TESTS
environment variable will make the build system batch them.
Fixes: QTBUG-111226
Change-Id: I9f01c662e22f8ffdd33e1c4d82619db0689fecc7
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake/QtTestHelpers.cmake')
-rw-r--r-- | cmake/QtTestHelpers.cmake | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/cmake/QtTestHelpers.cmake b/cmake/QtTestHelpers.cmake index fb349078f8..e42865465c 100644 --- a/cmake/QtTestHelpers.cmake +++ b/cmake/QtTestHelpers.cmake @@ -427,7 +427,14 @@ function(qt_internal_add_test name) ) _qt_internal_validate_all_args_are_parsed(arg) - if(QT_BUILD_TESTS_BATCHED AND NOT arg_NO_BATCH AND NOT arg_QMLTEST) + set(batch_current_test FALSE) + if(QT_BUILD_TESTS_BATCHED AND NOT arg_NO_BATCH AND NOT arg_QMLTEST AND NOT arg_MANUAL + AND ("${QT_STANDALONE_TEST_PATH}" STREQUAL "" + OR DEFINED ENV{QT_BATCH_STANDALONE_TESTS})) + set(batch_current_test TRUE) + endif() + + if(batch_current_test) if (QT_SUPERBUILD OR DEFINED ENV{TESTED_MODULE_COIN}) set(is_qtbase_test FALSE) if(QT_SUPERBUILD) @@ -464,9 +471,8 @@ function(qt_internal_add_test name) "removed in a future Qt version. Use the LIBRARIES option instead.") endif() - if(NOT arg_NO_BATCH AND QT_BUILD_TESTS_BATCHED AND NOT arg_QMLTEST AND NOT arg_MANUAL) + if(batch_current_test) qt_internal_add_test_to_batch(name ${name} ${ARGN}) - set(setting_up_batched_test TRUE) elseif(arg_SOURCES) if(QT_BUILD_TESTS_BATCHED AND arg_QMLTEST) message(WARNING "QML tests won't be batched - unsupported (yet)") @@ -542,7 +548,6 @@ function(qt_internal_add_test name) qt_internal_extend_target("${name}" CONDITION ANDROID LIBRARIES ${QT_CMAKE_EXPORT_NAMESPACE}::Gui ) - set(setting_up_batched_test FALSE) set_target_properties(${name} PROPERTIES _qt_is_test_executable TRUE) set_target_properties(${name} PROPERTIES _qt_is_manual_test ${arg_MANUAL}) endif() @@ -578,7 +583,7 @@ function(qt_internal_add_test name) elseif(WASM) # The test script expects an html file. In case of batched tests, the # version specialized for running batches has to be supplied. - if(setting_up_batched_test) + if(batch_current_test) get_target_property(batch_output_dir ${name} RUNTIME_OUTPUT_DIRECTORY) set(test_executable "${batch_output_dir}/${name}.html") else() @@ -618,9 +623,11 @@ function(qt_internal_add_test name) endif() if(NOT arg_MANUAL) - if(setting_up_batched_test) + if(batch_current_test) qt_internal_get_batched_test_arguments(batched_test_args ${testname}) list(PREPEND extra_test_args ${batched_test_args}) + elseif(WASM AND CMAKE_BUILD_TYPE STREQUAL "Debug") + list(PREPEND extra_test_args "qvisualoutput") endif() qt_internal_collect_command_environment(test_env_path test_env_plugin_path) @@ -697,7 +704,7 @@ function(qt_internal_add_test name) ) endforeach() - if(setting_up_batched_test) + if(batch_current_test) set(blacklist_path "BLACKLIST") if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${blacklist_path}") get_target_property(blacklist_files ${name} _qt_blacklist_files) @@ -811,7 +818,8 @@ for this function. Will be ignored") endif() set(executable_name ${arg_NAME}) - if(QT_BUILD_TESTS_BATCHED) + qt_internal_is_in_test_batch(is_in_batch ${executable_name}) + if(is_in_batch) _qt_internal_test_batch_target_name(executable_name) endif() add_test(NAME "${arg_NAME}" COMMAND "${CMAKE_COMMAND}" "-P" "${arg_OUTPUT_FILE}" |