From 647d7105b42af55f2f99972ee01589d91730850f Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 23 Nov 2009 14:24:53 -0500 Subject: Fake $HOME to isolate tests from user On platforms with $HOME in the environment, some of our features use it to store information in the user home directory. However, tests for these features should not touch the real user home directory. Instead we configure a fake $HOME that points inside the build tree for use during testing. See issue #9949. --- Tests/EnforceConfig.cmake.in | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'Tests/EnforceConfig.cmake.in') diff --git a/Tests/EnforceConfig.cmake.in b/Tests/EnforceConfig.cmake.in index c10d2a3193..9a5f042319 100644 --- a/Tests/EnforceConfig.cmake.in +++ b/Tests/EnforceConfig.cmake.in @@ -27,3 +27,10 @@ IF(NOT CTEST_CONFIGURATION_TYPE AND CONFIG_REQUIRED) ENDIF(NOT CTEST_CONFIGURATION_TYPE) MESSAGE("Guessing configuration ${CTEST_CONFIGURATION_TYPE}") ENDIF(NOT CTEST_CONFIGURATION_TYPE AND CONFIG_REQUIRED) + +# Fake a user home directory to avoid polluting the real one. +IF(DEFINED ENV{HOME}) + SET(HOME "@CMake_BINARY_DIR@/Tests/CMakeFiles/TestHome") + FILE(MAKE_DIRECTORY "${HOME}") + SET(ENV{HOME} "${HOME}") +ENDIF(DEFINED ENV{HOME}) -- cgit v1.2.1