ENH: Added Install test. It is enabled when the CMAKE_INSTALL_PREFIX is CMake_BINARY_DIR/InstallTest.

This commit is contained in:
Brad King 2003-08-06 10:39:05 -04:00
parent ea6a84cc64
commit 26fce5a402
2 changed files with 249 additions and 174 deletions

View File

@ -359,6 +359,18 @@ IF(BUILD_TESTING)
${CMake_BINARY_DIR}/Tests/Objc++ ${CMake_BINARY_DIR}/Tests/Objc++
objc++) objc++)
ENDIF (APPLE) ENDIF (APPLE)
IF(UNIX)
IF("x${CMAKE_INSTALL_PREFIX}" MATCHES "^x${CMake_BINARY_DIR}/InstallTest$")
CONFIGURE_FILE(
${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in
${CMake_BINARY_DIR}/Tests/TestInstall/TestInstall.sh
@ONLY IMMEDIATE
)
ADD_TEST(Install /bin/sh ${CMake_BINARY_DIR}/Tests/TestInstall/TestInstall.sh)
ENDIF("x${CMAKE_INSTALL_PREFIX}" MATCHES "^x${CMake_BINARY_DIR}/InstallTest$")
ENDIF(UNIX)
ENDIF(BUILD_TESTING) ENDIF(BUILD_TESTING)
INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL) INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)

63
Tests/TestInstall.sh.in Executable file
View File

@ -0,0 +1,63 @@
#!/bin/sh
CMAKE_COMMAND="@CMAKE_INSTALL_PREFIX@/bin/cmake"
CMake_SOURCE_DIR="@CMake_SOURCE_DIR@"
CMake_BINARY_DIR="@CMake_BINARY_DIR@"
CMAKE_INSTALL_PREFIX="@CMAKE_INSTALL_PREFIX@"
CMAKE_BUILD_TOOL="@CMAKE_BUILD_TOOL@"
SOURCE_DIR="${CMake_SOURCE_DIR}/Tests/Simple"
BINARY_DIR="${CMake_BINARY_DIR}/Tests/TestInstall"
install()
{
echo "Erasing ${CMAKE_INSTALL_PREFIX}" &&
([ ! -d "${CMAKE_INSTALL_PREFIX}" ] || rm -rf "${CMAKE_INSTALL_PREFIX}") &&
mkdir -p "${CMAKE_INSTALL_PREFIX}" &&
echo "Running make install" &&
(
cd "${CMake_BINARY_DIR}" &&
"${CMAKE_BUILD_TOOL}" install
)
}
setup()
{
echo "Entering ${BINARY_DIR}" &&
cd "${BINARY_DIR}"
}
write_cache()
{
install || return 1
setup || return 1
echo "Writing CMakeCache.txt"
(
cat > CMakeCache.txt <<EOF
EOF
)
}
run_cmake()
{
write_cache || return 1
echo "Running CMake"
"${CMAKE_COMMAND}" "${SOURCE_DIR}"
}
run_make()
{
run_cmake || return 1
echo "Running ${CMAKE_BUILD_TOOL}"
"${CMAKE_BUILD_TOOL}"
}
run_test()
{
echo "Running ${BINARY_DIR}/simple"
(
"${BINARY_DIR}/simple"
)
}
run_make && run_test