Merge pull request #40235 from tchaikov/wip-cmake-test-fixture

cmake: use fixture for preparing venv

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
This commit is contained in:
Kefu Chai 2021-03-24 23:20:26 +08:00 committed by GitHub
commit c5e4141591
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -70,14 +70,17 @@ function(add_tox_test name)
endif()
string(REPLACE ";" "," tox_envs "${tox_envs}")
find_package(Python3 QUIET REQUIRED)
add_custom_command(
OUTPUT ${venv_path}/bin/activate
COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python="${Python3_EXECUTABLE}" ${venv_path}
WORKING_DIRECTORY ${tox_path}
COMMENT "preparing venv for ${name}")
add_custom_target(${name}-venv
DEPENDS ${venv_path}/bin/activate)
add_dependencies(tests ${name}-venv)
add_test(
NAME setup-venv-for-${name}
COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python3_EXECUTABLE} ${venv_path}
WORKING_DIRECTORY ${tox_path})
set_tests_properties(setup-venv-for-${name} PROPERTIES
FIXTURES_SETUP venv-for-${name})
add_test(
NAME teardown-venv-for-${name}
COMMAND ${CMAKE_COMMAND} -E remove_directory ${venv_path})
set_tests_properties(teardown-venv-for-${name} PROPERTIES
FIXTURES_CLEANUP venv-for-${name})
add_test(
NAME ${test_name}
COMMAND ${CMAKE_SOURCE_DIR}/src/script/run_tox.sh
@ -86,6 +89,8 @@ function(add_tox_test name)
--tox-path ${tox_path}
--tox-envs ${tox_envs}
--venv-path ${venv_path})
set_tests_properties(${test_name} PROPERTIES
FIXTURES_REQUIRED venv-for-${name})
set_property(
TEST ${test_name}
PROPERTY ENVIRONMENT