Use a centralized directory for files created by ctest

Defines a QGIS_TEST_TMP_DIR variable in top-level CMakeLists.txt
and then defines QGIS_CUSTOM_CONFIG_PATH and TMPDIR to be under
that directory for individual tests.

Closes GH-50587
Closes GH-48884
This commit is contained in:
Sandro Santilli 2024-05-28 23:20:58 +02:00
parent 92f182568f
commit 2e85f6fa29
3 changed files with 14 additions and 2 deletions

View File

@ -19,6 +19,11 @@ endif()
# don't relink it only the shared object changes
set(CMAKE_LINK_DEPENDS_NO_SHARED ON)
# This needs to be set before any add_directory in order to be visible
# by the subdirectories
set(QGIS_TEST_TMP_DIR "${CMAKE_BINARY_DIR}/tmp")
message (STATUS "Ctest Temp Directory set to: ${QGIS_TEST_TMP_DIR}")
#############################################################
# Project and version
set(CPACK_PACKAGE_VERSION_MAJOR "3")

View File

@ -77,6 +77,9 @@ macro(ADD_PYTHON_TEST TESTNAME FILENAME)
set_tests_properties(${TESTNAME} PROPERTIES TIMEOUT ${TEST_TIMEOUT})
endif()
set_tests_properties(${TESTNAME} PROPERTIES FIXTURES_REQUIRED SOURCETREE)
set_tests_properties(${TESTNAME} PROPERTIES
FIXTURES_REQUIRED SOURCETREE
ENVIRONMENT "TMPDIR=${QGIS_TEST_TMP_DIR};QGIS_CUSTOM_CONFIG_PATH=${QGIS_TEST_TMP_DIR}/config"
)
endmacro(ADD_PYTHON_TEST)

View File

@ -26,7 +26,11 @@ if (ENABLE_TESTS)
set_tests_properties(${TESTNAME} PROPERTIES LABELS ${ARG_QGIS_TEST_LABELS})
endif()
set_tests_properties(${TESTNAME} PROPERTIES FIXTURES_REQUIRED SOURCETREE)
set_tests_properties(${TESTNAME} PROPERTIES
FIXTURES_REQUIRED SOURCETREE
ENVIRONMENT "TMPDIR=${QGIS_TEST_TMP_DIR};QGIS_CUSTOM_CONFIG_PATH=${QGIS_TEST_TMP_DIR}/config"
)
target_compile_definitions(${TESTNAME} PRIVATE "CMAKE_SOURCE_DIR=\"${CMAKE_SOURCE_DIR}\"")
endmacro()