From a2c772dc58162329a46918950f85e55339939499 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Thu, 25 Jun 2020 15:45:50 +0200 Subject: [PATCH] CMake: Use build environment prefix.bat when running tests Tests like tst_qmake need the build environment to be able to build apps / libraries. This is mostly needed for MSVC. Set the TESTS_ENV_PREFIX env var to point to the proper prefix.bat (host or target) and use that when running ctest. Task-number: QTBUG-85240 Task-number: QTBUG-78449 Task-number: QTBUG-81365 Change-Id: I6fa68714202ac7fc703973fc772e03b84790a043 Reviewed-by: Cristian Adam --- .../cmake_regular_test_instructions.yaml | 2 +- .../cmake_setup_running_tests_env_vars.yaml | 30 +++++++++++++++++++ .../coin_module_test_template_v2.yaml | 4 +++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 coin/instructions/cmake_setup_running_tests_env_vars.yaml diff --git a/coin/instructions/cmake_regular_test_instructions.yaml b/coin/instructions/cmake_regular_test_instructions.yaml index 46123dcf961..f22196b2f92 100644 --- a/coin/instructions/cmake_regular_test_instructions.yaml +++ b/coin/instructions/cmake_regular_test_instructions.yaml @@ -12,7 +12,7 @@ instructions: - type: ChangeDirectory directory: "{{.SourceDir}}_standalone_tests" - type: ExecuteCommand - command: "ctest -V --rerun-failed" + command: "{{.Env.TESTS_ENV_PREFIX}} ctest -V --rerun-failed" ignoreExitCode: true maxTimeInSeconds: 7200 maxTimeBetweenOutput: 900 diff --git a/coin/instructions/cmake_setup_running_tests_env_vars.yaml b/coin/instructions/cmake_setup_running_tests_env_vars.yaml new file mode 100644 index 00000000000..f7eead7ce61 --- /dev/null +++ b/coin/instructions/cmake_setup_running_tests_env_vars.yaml @@ -0,0 +1,30 @@ +type: Group +instructions: + - type: Group + instructions: + - type: EnvironmentVariable + variableName: TESTS_ENV_PREFIX + variableValue: "{{.Env.ENV_PREFIX}}" + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_property: target.os + - condition: property + property: target.osVersion + not_equals_value: QEMU + - type: Group + instructions: + - type: EnvironmentVariable + variableName: TESTS_ENV_PREFIX + variableValue: "{{.Env.TARGET_ENV_PREFIX}}" + disable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_property: target.os + - condition: property + property: target.osVersion + not_equals_value: QEMU diff --git a/coin/instructions/coin_module_test_template_v2.yaml b/coin/instructions/coin_module_test_template_v2.yaml index f4f65d7d375..786a59e03b9 100644 --- a/coin/instructions/coin_module_test_template_v2.yaml +++ b/coin/instructions/coin_module_test_template_v2.yaml @@ -2,6 +2,10 @@ type: Group instructions: - type: Group instructions: + # The build env is needed on MSVC so that tst_qmake can properly build apps / libraries. + - !include "{{qt/qtbase}}/prepare_building_env.yaml" + # The test env vars are needed to pick the proper prefix.bat file. + - !include "{{qt/qtbase}}/cmake_setup_running_tests_env_vars.yaml" - !include "{{qt/qtbase}}/coin_module_test_qemu_env_vars.yaml" - type: Group instructions: