diff options
Diffstat (limited to 'Tests/CTestTestEmptyBinaryDirectory/test.cmake.in')
-rw-r--r-- | Tests/CTestTestEmptyBinaryDirectory/test.cmake.in | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Tests/CTestTestEmptyBinaryDirectory/test.cmake.in b/Tests/CTestTestEmptyBinaryDirectory/test.cmake.in new file mode 100644 index 0000000..8eb808f --- /dev/null +++ b/Tests/CTestTestEmptyBinaryDirectory/test.cmake.in @@ -0,0 +1,66 @@ +cmake_minimum_required(VERSION 2.8.12) + +set(CTEST_RUN_CURRENT_SCRIPT 0) + +set(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestTestEmptyBinaryDirectory") +set(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestTestEmptyBinaryDirectory") + +# make sure ctest does not remove directories without a CMakeCache.txt in it +set(EMPTY_BINARY_DIR "${CTEST_BINARY_DIRECTORY}/empty_binary_dir") +file(MAKE_DIRECTORY "${EMPTY_BINARY_DIR}") + +if(NOT EXISTS "${EMPTY_BINARY_DIR}" + OR EXISTS "${EMPTY_BINARY_DIR}/CMakeCache.txt") + message(FATAL_ERROR "empty_binary_dir precondition failed") +endif() + +ctest_empty_binary_directory("${EMPTY_BINARY_DIR}") + +if(NOT EXISTS "${EMPTY_BINARY_DIR}") + message(FATAL_ERROR "empty_binary_dir should not have been removed") +endif() + +# make sure ctest does remove directories with a CMakeCache.txt +set(VALID_BINARY_DIR "${CTEST_BINARY_DIRECTORY}/valid_binary_dir") +file(MAKE_DIRECTORY "${VALID_BINARY_DIR}") +file(WRITE "${VALID_BINARY_DIR}/CMakeCache.txt") + +if(NOT EXISTS "${VALID_BINARY_DIR}" + OR NOT EXISTS "${VALID_BINARY_DIR}/CMakeCache.txt") + message(FATAL_ERROR "valid_binary_dir precondition failed") +endif() + +ctest_empty_binary_directory("${VALID_BINARY_DIR}") + +if(EXISTS "${VALID_BINARY_DIR}") + message(FATAL_ERROR "valid_binary_dir should have been removed") +endif() + +# make sure ctest removes build directories recursively +set(DEEP_BINARY_DIR "${CTEST_BINARY_DIRECTORY}/deep_binary_dir") +file(MAKE_DIRECTORY "${DEEP_BINARY_DIR}") +file(WRITE "${DEEP_BINARY_DIR}/CMakeCache.txt") + +foreach(SUBDIR A Z A/A A/Z Z/A Z/Z) + set(FULL_SUBDIR "${DEEP_BINARY_DIR}/${SUBDIR}") + file(MAKE_DIRECTORY "${FULL_SUBDIR}") + + foreach(SUBFILE A.cpp Z.bat) + set(FULL_SUBFILE "${FULL_SUBDIR}/${SUBFILE}") + file(WRITE "${FULL_SUBFILE}" "I am '${FULL_SUBFILE}'") + endforeach() +endforeach() + +if(NOT EXISTS "${DEEP_BINARY_DIR}" + OR NOT EXISTS "${DEEP_BINARY_DIR}/CMakeCache.txt" + OR NOT EXISTS "${DEEP_BINARY_DIR}/Z/A/Z.bat") + message(FATAL_ERROR "deep_binary_dir precondition failed") +endif() + +ctest_empty_binary_directory("${DEEP_BINARY_DIR}") + +if(EXISTS "${DEEP_BINARY_DIR}") + message(FATAL_ERROR "deep_binary_dir should have been removed") +endif() + +message("TEST_SUCCESS") |