Add a "Contract" test for VTK. The test downloads and builds VTK.

The idea is that we can make sure that CMake is staying backwards
compatible by testing projects against CMake as the changes are made
in CMake.  Because these tests will take a long time to run, they
will not be enabled by default.  Instead, they will be enabled by
putting a cache variable into CMake.
This commit is contained in:
Bill Hoffman 2010-09-21 10:23:09 -04:00
parent 775697d5f5
commit fd343a1a36
2 changed files with 40 additions and 1 deletions

View File

@ -11,7 +11,7 @@ MACRO(ADD_TEST_MACRO NAME COMMAND)
--build-generator ${CMAKE_TEST_GENERATOR}
--build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
--build-project ${proj}
--test-command ${COMMAND})
--test-command ${COMMAND} ${ARGN})
LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${dir}")
ENDMACRO(ADD_TEST_MACRO)
@ -1757,6 +1757,15 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
-D source_dir:STRING=${CMAKE_CURRENT_SOURCE_DIR}/Tutorial/Step3
-D CMAKE_CTEST_COMMAND:STRING=${CMAKE_CTEST_COMMAND}
-P ${CMAKE_CURRENT_SOURCE_DIR}/CMakeWizardTest.cmake)
# If the cache variable CMAKE_CONTRACT_PROJECTS is set
# then the dashboard will run a contract with CMake test of that
# name. For example CMAKE_CONTRACT_PROJECTS = vtk542 would run
# the vtk542 contract test.
FOREACH(project ${CMAKE_CONTRACT_PROJECTS})
ADD_TEST_MACRO(Contracts.${project}
VTK-build/bin/CommonCxxTests otherArrays)
SET_TESTS_PROPERTIES(Contracts.${project} PROPERTIES TIMEOUT 5400)
ENDFOREACH()
ENDIF(BUILD_TESTING)
SUBDIRS(CMakeTests)

View File

@ -0,0 +1,30 @@
# The VTK external project for CMake
# ---------------------------------------------------------------------------
cmake_minimum_required(VERSION 2.8)
project(vtk542)
include(ExternalProject)
set(vtk_source "${CMAKE_CURRENT_BINARY_DIR}/VTK-source")
set(vtk_binary "${CMAKE_CURRENT_BINARY_DIR}/VTK-build")
ExternalProject_Add(VTK
DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}
URL "http://www.vtk.org/files/release/5.4/vtk-5.4.2.tar.gz"
URL_MD5 c2c797091d4b2128d9a1bd32c4b78227
SOURCE_DIR ${vtk_source}
BINARY_DIR ${vtk_binary}
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
CMAKE_ARGS
-DBUILD_EXAMPLES:BOOL=ON
-DBUILD_TESTING:BOOL=ON
INSTALL_COMMAND ""
)
# make it so that each build will run make in the VTK build tree
ExternalProject_Add_Step(VTK forcebuild
COMMAND ${CMAKE_COMMAND}
-E remove ${CMAKE_CURRENT_BUILD_DIR}/VTK-prefix/src/VTK-stamp/VTK-build
DEPENDEES configure
DEPENDERS build
ALWAYS 1
)