1d6e7ed71f
The commit "Fake $HOME to isolate tests from user" started setting $HOME in the CTest script environment. On some platforms tests depend on some local configuration in the home directory, such as the "cvs login" for KWSys in CTestTest3. In this commit we now construct a fake home dir during CMake config step and populate it with a .cvspass file needed by the test. We also check CTEST_NO_TEST_HOME to optionally disable the test home. See issue #9949.
32 lines
1.4 KiB
CMake
32 lines
1.4 KiB
CMake
# Older versions of CMake do not support an empty configuration name in
|
|
# CTEST_CONFIGURATION_TYPE for the 'testing' test.
|
|
SET(CONFIG_REQUIRED)
|
|
IF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.6)
|
|
SET(CONFIG_REQUIRED 1)
|
|
ELSE("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.6)
|
|
IF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL 2.6)
|
|
IF("${CMAKE_PATCH_VERSION}" LESS 3)
|
|
SET(CONFIG_REQUIRED 1)
|
|
ENDIF("${CMAKE_PATCH_VERSION}" LESS 3)
|
|
ENDIF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL 2.6)
|
|
ENDIF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.6)
|
|
|
|
IF(NOT CTEST_CONFIGURATION_TYPE AND CONFIG_REQUIRED)
|
|
SET(CTEST_CMD "@CMAKE_CTEST_COMMAND@@CMAKE_EXECUTABLE_SUFFIX@")
|
|
GET_FILENAME_COMPONENT(CTEST_DIR "${CTEST_CMD}" PATH)
|
|
GET_FILENAME_COMPONENT(CTEST_EXE "${CTEST_CMD}" NAME)
|
|
FOREACH(cfg Release Debug MinSizeRel RelWithDebInfo)
|
|
IF(NOT CTEST_CONFIGURATION_TYPE)
|
|
IF(EXISTS "${CTEST_DIR}/${cfg}/${CTEST_EXE}")
|
|
SET(CTEST_CONFIGURATION_TYPE ${cfg})
|
|
ENDIF(EXISTS "${CTEST_DIR}/${cfg}/${CTEST_EXE}")
|
|
ENDIF(NOT CTEST_CONFIGURATION_TYPE)
|
|
ENDFOREACH(cfg)
|
|
IF(NOT CTEST_CONFIGURATION_TYPE)
|
|
SET(CTEST_CONFIGURATION_TYPE NoConfig)
|
|
ENDIF(NOT CTEST_CONFIGURATION_TYPE)
|
|
MESSAGE("Guessing configuration ${CTEST_CONFIGURATION_TYPE}")
|
|
ENDIF(NOT CTEST_CONFIGURATION_TYPE AND CONFIG_REQUIRED)
|
|
|
|
@TEST_HOME_ENV_CODE@
|