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

@ -154,211 +154,223 @@ ADD_EXECUTABLE(cmaketest cmaketest.cxx)
TARGET_LINK_LIBRARIES(cmaketest CMakeLib) TARGET_LINK_LIBRARIES(cmaketest CMakeLib)
IF(BUILD_TESTING) IF(BUILD_TESTING)
ADD_TEST(CommandLineTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(CommandLineTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/CommandLineTest ${CMake_SOURCE_DIR}/Tests/CommandLineTest
${CMake_BINARY_DIR}/Tests/CommandLineTest ${CMake_BINARY_DIR}/Tests/CommandLineTest
CommandLineTest) CommandLineTest)
ADD_TEST(CustomCommand ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(CustomCommand ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/CustomCommand ${CMake_SOURCE_DIR}/Tests/CustomCommand
${CMake_BINARY_DIR}/Tests/CustomCommand ${CMake_BINARY_DIR}/Tests/CustomCommand
CustomCommand CustomCommand
${CMake_BINARY_DIR}/Tests/CustomCommand/bin) ${CMake_BINARY_DIR}/Tests/CustomCommand/bin)
ADD_TEST(FindPackageTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(FindPackageTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/FindPackageTest ${CMake_SOURCE_DIR}/Tests/FindPackageTest
${CMake_BINARY_DIR}/Tests/FindPackageTest ${CMake_BINARY_DIR}/Tests/FindPackageTest
FindPackageTest) FindPackageTest)
ADD_TEST(SystemInformation ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(SystemInformation ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/SystemInformation ${CMake_SOURCE_DIR}/Tests/SystemInformation
${CMake_BINARY_DIR}/Tests/SystemInformation ${CMake_BINARY_DIR}/Tests/SystemInformation
DumpInformation) DumpInformation)
ADD_TEST(StringFileTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(StringFileTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/StringFileTest ${CMake_SOURCE_DIR}/Tests/StringFileTest
${CMake_BINARY_DIR}/Tests/StringFileTest ${CMake_BINARY_DIR}/Tests/StringFileTest
StringFileTest) StringFileTest)
ADD_TEST(TryCompile ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(TryCompile ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/TryCompile ${CMake_SOURCE_DIR}/Tests/TryCompile
${CMake_BINARY_DIR}/Tests/TryCompile ${CMake_BINARY_DIR}/Tests/TryCompile
TryCompile) TryCompile)
ADD_TEST(simple ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(simple ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Simple ${CMake_SOURCE_DIR}/Tests/Simple
${CMake_BINARY_DIR}/Tests/Simple ${CMake_BINARY_DIR}/Tests/Simple
simple) simple)
ADD_TEST(conly ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(conly ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/COnly ${CMake_SOURCE_DIR}/Tests/COnly
${CMake_BINARY_DIR}/Tests/COnly ${CMake_BINARY_DIR}/Tests/COnly
conly) conly)
ADD_TEST(X11 ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(X11 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/X11 ${CMake_SOURCE_DIR}/Tests/X11
${CMake_BINARY_DIR}/Tests/X11 ${CMake_BINARY_DIR}/Tests/X11
UseX11) UseX11)
ADD_TEST(LoadedCommand ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(LoadedCommand ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/LoadCommand ${CMake_SOURCE_DIR}/Tests/LoadCommand
${CMake_BINARY_DIR}/Tests/LoadCommand ${CMake_BINARY_DIR}/Tests/LoadCommand
LoadedCommand) LoadedCommand)
ADD_TEST(LoadedCommandOneConfig ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(LoadedCommandOneConfig ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/LoadCommand ${CMake_SOURCE_DIR}/Tests/LoadCommand
${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig ${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig
LoadedCommand ONLY_ONE_CONFIG) LoadedCommand ONLY_ONE_CONFIG)
# Como does not seem to support shared libraries. # Como does not seem to support shared libraries.
GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE) GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
IF(CMAKE_BASE_NAME MATCHES "^como$") IF(CMAKE_BASE_NAME MATCHES "^como$")
SET(COMPILER_IS_COMO 1) SET(COMPILER_IS_COMO 1)
ENDIF(CMAKE_BASE_NAME MATCHES "^como$") ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
IF(NOT COMPILER_IS_COMO) IF(NOT COMPILER_IS_COMO)
ADD_TEST(complex ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(complex ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Complex ${CMake_SOURCE_DIR}/Tests/Complex
${CMake_BINARY_DIR}/Tests/Complex ${CMake_BINARY_DIR}/Tests/Complex
complex complex
${CMake_BINARY_DIR}/Tests/Complex/bin) ${CMake_BINARY_DIR}/Tests/Complex/bin)
ADD_TEST(complexOneConfig ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(complexOneConfig ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Complex ${CMake_SOURCE_DIR}/Tests/Complex
${CMake_BINARY_DIR}/Tests/ComplexOneConfig ${CMake_BINARY_DIR}/Tests/ComplexOneConfig
complex complex
${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin ONLY_ONE_CONFIG) ${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin ONLY_ONE_CONFIG)
ENDIF(NOT COMPILER_IS_COMO) ENDIF(NOT COMPILER_IS_COMO)
ADD_TEST(Example ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(Example ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Example ${CMake_SOURCE_DIR}/Example
${CMake_BINARY_DIR}/Example ${CMake_BINARY_DIR}/Example
helloDemo helloDemo
${CMake_BINARY_DIR}/Example/Demo ${CMake_BINARY_DIR}/Example/Demo
HELLO) HELLO)
ADD_TEST(testing ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(testing ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Testing ${CMake_SOURCE_DIR}/Tests/Testing
${CMake_BINARY_DIR}/Tests/Testing ${CMake_BINARY_DIR}/Tests/Testing
testing testing
${CMake_BINARY_DIR}/Tests/Testing/bin) ${CMake_BINARY_DIR}/Tests/Testing/bin)
ADD_TEST(wrapping ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(wrapping ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Wrapping
${CMake_BINARY_DIR}/Tests/Wrapping
wrapping
${CMake_BINARY_DIR}/Tests/Wrapping/bin)
INCLUDE ( ${CMAKE_ROOT}/Modules/FindQt.cmake )
MARK_AS_ADVANCED(
QT_INCLUDE_PATH
QT_MOC_EXE
QT_QT_LIBRARY
QT_UIC_EXE)
IF (QT_FOUND)
ADD_TEST(qtwrapping ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Wrapping ${CMake_SOURCE_DIR}/Tests/Wrapping
${CMake_BINARY_DIR}/Tests/Wrapping ${CMake_BINARY_DIR}/Tests/Wrapping
wrapping qtwrapping
${CMake_BINARY_DIR}/Tests/Wrapping/bin)
INCLUDE ( ${CMAKE_ROOT}/Modules/FindQt.cmake )
MARK_AS_ADVANCED(
QT_INCLUDE_PATH
QT_MOC_EXE
QT_QT_LIBRARY
QT_UIC_EXE)
IF (QT_FOUND)
ADD_TEST(qtwrapping ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Wrapping
${CMake_BINARY_DIR}/Tests/Wrapping
qtwrapping
${CMake_BINARY_DIR}/Tests/Wrapping/bin
wrapping)
ENDIF (QT_FOUND)
ADD_TEST(testdriver1 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/TestDriver
${CMake_BINARY_DIR}/Tests/TestDriver
TestDriverTest
${CMake_BINARY_DIR}/Tests/Wrapping/bin ${CMake_BINARY_DIR}/Tests/Wrapping/bin
TestDriverTest test1) wrapping)
ENDIF (QT_FOUND)
ADD_TEST(testdriver2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(testdriver1 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/TestDriver ${CMake_SOURCE_DIR}/Tests/TestDriver
${CMake_BINARY_DIR}/Tests/TestDriver ${CMake_BINARY_DIR}/Tests/TestDriver
TestDriverTest TestDriverTest
${CMake_BINARY_DIR}/Tests/Wrapping/bin ${CMake_BINARY_DIR}/Tests/Wrapping/bin
TestDriverTest test2) TestDriverTest test1)
ADD_TEST(testdriver3 ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(testdriver2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/TestDriver ${CMake_SOURCE_DIR}/Tests/TestDriver
${CMake_BINARY_DIR}/Tests/TestDriver ${CMake_BINARY_DIR}/Tests/TestDriver
TestDriverTest TestDriverTest
${CMake_BINARY_DIR}/Tests/Wrapping/bin ${CMake_BINARY_DIR}/Tests/Wrapping/bin
TestDriverTest subdir/test3) TestDriverTest test2)
ADD_TEST(dependency_w_libout ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(testdriver3 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Dependency ${CMake_SOURCE_DIR}/Tests/TestDriver
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut ${CMake_BINARY_DIR}/Tests/TestDriver
exec TestDriverTest
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec ${CMake_BINARY_DIR}/Tests/Wrapping/bin
Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib) TestDriverTest subdir/test3)
ADD_TEST(dependency_wo_lib_out ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(dependency_w_libout ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Dependency ${CMake_SOURCE_DIR}/Tests/Dependency
${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
exec exec
${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec
Dependency) Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
ADD_TEST(dependency2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(dependency_wo_lib_out ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Dependency ${CMake_SOURCE_DIR}/Tests/Dependency
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut ${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut
exec2 exec
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2 ${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec
Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib) Dependency)
ADD_TEST(dependency3 ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(dependency2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Dependency ${CMake_SOURCE_DIR}/Tests/Dependency
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
exec3 exec2
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3 ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2
Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib) Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
ADD_TEST(dependency4 ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(dependency3 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Dependency ${CMake_SOURCE_DIR}/Tests/Dependency
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
exec4 exec3
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4 ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3
Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib) Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
ADD_TEST(linkline ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(dependency4 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/LinkLine ${CMake_SOURCE_DIR}/Tests/Dependency
${CMake_BINARY_DIR}/Tests/LinkLine ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
Exec exec4
${CMake_BINARY_DIR}/Tests/LinkLine ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4
LinkLine) Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
ADD_TEST(linkorder1 ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(linkline ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/LinkLineOrder ${CMake_SOURCE_DIR}/Tests/LinkLine
${CMake_BINARY_DIR}/Tests/LinkLineOrder ${CMake_BINARY_DIR}/Tests/LinkLine
Exec1 Exec
${CMake_BINARY_DIR}/Tests/LinkLineOrder ${CMake_BINARY_DIR}/Tests/LinkLine
LinkLineOrder) LinkLine)
ADD_TEST(linkorder2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(linkorder1 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/LinkLineOrder ${CMake_SOURCE_DIR}/Tests/LinkLineOrder
${CMake_BINARY_DIR}/Tests/LinkLineOrder ${CMake_BINARY_DIR}/Tests/LinkLineOrder
Exec2 Exec1
${CMake_BINARY_DIR}/Tests/LinkLineOrder ${CMake_BINARY_DIR}/Tests/LinkLineOrder
LinkLineOrder) LinkLineOrder)
ADD_TEST(curl ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(linkorder2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Source/CTest/Curl ${CMake_SOURCE_DIR}/Tests/LinkLineOrder
${CMake_BINARY_DIR}/Tests/Curl ${CMake_BINARY_DIR}/Tests/LinkLineOrder
LIBCURL) Exec2
${CMake_BINARY_DIR}/Tests/LinkLineOrder
LinkLineOrder)
ADD_TEST(kwsys ${EXECUTABLE_OUTPUT_PATH}/cmaketest ADD_TEST(curl ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Source/kwsys ${CMake_SOURCE_DIR}/Source/CTest/Curl
${CMake_BINARY_DIR}/Tests/kwsys ${CMake_BINARY_DIR}/Tests/Curl
test1 LIBCURL)
${CMake_BINARY_DIR}/Tests/kwsys
kwsys) ADD_TEST(kwsys ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Source/kwsys
${CMake_BINARY_DIR}/Tests/kwsys
test1
${CMake_BINARY_DIR}/Tests/kwsys
kwsys)
IF (APPLE)
ADD_TEST(objc++ ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Objc++
${CMake_BINARY_DIR}/Tests/Objc++
objc++)
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)
IF (APPLE)
ADD_TEST(objc++ ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Objc++
${CMake_BINARY_DIR}/Tests/Objc++
objc++)
ENDIF (APPLE)
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