diff options
author | Rolf Eike Beer <eike@sf-mail.de> | 2014-07-03 16:11:49 (GMT) |
---|---|---|
committer | Rolf Eike Beer <eike@sf-mail.de> | 2014-07-03 16:12:08 (GMT) |
commit | 92af3664c922b4b3127700c426a01ab5fec097b8 (patch) | |
tree | eef069a8d13317f3557462ee53c52834ce1c26c1 /Tests/ExternalProject | |
parent | 6d1ad670771271bbdd7e3ff3bfa19474049cc139 (diff) | |
download | CMake-92af3664c922b4b3127700c426a01ab5fec097b8.zip CMake-92af3664c922b4b3127700c426a01ab5fec097b8.tar.gz CMake-92af3664c922b4b3127700c426a01ab5fec097b8.tar.bz2 |
Tests: split the ExternalProject test
Move the subtests that test with local projects into their own test. The reason
is that on slower or crowded machines the test may reach the limit of 25
minutes and therefore fail while it would pass if it was given enough time.
The split is roughly 3:1 with regard to the execution time, with the new
ExternalProjectLocal test being the faster one.
Diffstat (limited to 'Tests/ExternalProject')
-rw-r--r-- | Tests/ExternalProject/CMakeLists.txt | 203 | ||||
-rw-r--r-- | Tests/ExternalProject/Step1.tar | bin | 5632 -> 0 bytes | |||
-rw-r--r-- | Tests/ExternalProject/Step1.tar.bz2 | bin | 904 -> 0 bytes | |||
-rw-r--r-- | Tests/ExternalProject/Step1.tgz | bin | 791 -> 0 bytes | |||
-rw-r--r-- | Tests/ExternalProject/Step1.zip | bin | 1074 -> 0 bytes | |||
-rw-r--r-- | Tests/ExternalProject/Step1NoDir.tar | bin | 5120 -> 0 bytes | |||
-rw-r--r-- | Tests/ExternalProject/Step1NoDir.tar.bz2 | bin | 852 -> 0 bytes | |||
-rw-r--r-- | Tests/ExternalProject/Step1NoDir.tgz | bin | 770 -> 0 bytes | |||
-rw-r--r-- | Tests/ExternalProject/Step1NoDir.zip | bin | 1038 -> 0 bytes | |||
-rw-r--r-- | Tests/ExternalProject/Step1Patch.cmake | 25 |
10 files changed, 2 insertions, 226 deletions
diff --git a/Tests/ExternalProject/CMakeLists.txt b/Tests/ExternalProject/CMakeLists.txt index 0ed5561..2f74121 100644 --- a/Tests/ExternalProject/CMakeLists.txt +++ b/Tests/ExternalProject/CMakeLists.txt @@ -3,6 +3,8 @@ project(ExternalProjectTest NONE) include(ExternalProject) +# Test ExternalProject, especially with checkouts from VCS + find_package(CVS) find_package(Subversion) find_package(Git) @@ -23,33 +25,6 @@ set(binary_base "${base}/Build") set_property(DIRECTORY PROPERTY EP_BASE ${base}) set_property(DIRECTORY PROPERTY EP_STEP_TARGETS configure build test) -if(NOT DEFINED can_build_tutorial_step5) - set(can_build_tutorial_step5 1) - - # Tutorial Step5 cannot build correctly using Visual Studio 6 - # on Windows 98 if the path of its build tree exceeds 72 - # characters in length... So don't attempt to build it - # in a long path on Win98: - # - if(CMAKE_SYSTEM STREQUAL "Windows-4.10") - string(LENGTH "${binary_base}/TutorialStep5-Local" n) - if(n GREATER 72) - set(can_build_tutorial_step5 0) - endif() - endif() - - # The ExternalProject builds of Tutorial Step5 cannot be built - # correctly 2nd and later times in an in-source build... - # (because the CMakeCache.txt from the real in-source build of - # the Tests/Tutorial/Step5 directory gets copied when we do - # the "source directory copy" step... but it still refers to - # its original path which yields a configure error.) So: - # - if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") - set(can_build_tutorial_step5 0) - endif() -endif() - add_custom_target(NonExternalProjectTarget COMMAND ${CMAKE_COMMAND} -E echo NonExternalProjectTarget) @@ -116,142 +91,6 @@ ExternalProject_Add(${proj} set_property(TARGET ${proj} PROPERTY FOLDER "") -# Local DIR: -# -if(can_build_tutorial_step5) - set(proj TutorialStep5-Local) - ExternalProject_Add(${proj} - URL "${CMAKE_CURRENT_SOURCE_DIR}/../Tutorial/Step5" - CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> - CMAKE_ARGS -G ${CMAKE_GENERATOR} <SOURCE_DIR> - TEST_BEFORE_INSTALL 1 - LOG_INSTALL 1 - ) - set_property(TARGET ${proj} PROPERTY FOLDER "Local") - ExternalProject_Get_Property(${proj} install_dir) - set(TutorialStep5_install_dir ${install_dir}) - - set(proj TutorialStep5-Local-TestAfterInstall) - ExternalProject_Add(${proj} - URL "${CMAKE_CURRENT_SOURCE_DIR}/../Tutorial/Step5" - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -G ${CMAKE_GENERATOR} <SOURCE_DIR> - TEST_AFTER_INSTALL 1 - LOG_TEST 1 - ) - set_property(TARGET ${proj} PROPERTY FOLDER "Local") -endif() - - -# Local TAR: -# -set(proj TutorialStep1-LocalTAR) -ExternalProject_Add(${proj} - URL "${CMAKE_CURRENT_SOURCE_DIR}/Step1.tar" - URL_MD5 a87c5b47c0201c09ddfe1d5738fdb1e3 - LIST_SEPARATOR :: - PATCH_COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/Step1Patch.cmake - CMAKE_GENERATOR "${CMAKE_GENERATOR}" - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> - -DTEST_LIST:STRING=A::B::C - INSTALL_COMMAND "" - LOG_CONFIGURE 1 -) -set_property(TARGET ${proj} PROPERTY FOLDER "Local/TAR") - -set(proj TutorialStep1-LocalNoDirTAR) -ExternalProject_Add(${proj} - URL "${CMAKE_CURRENT_SOURCE_DIR}/Step1NoDir.tar" - URL_MD5 d09e3d370c5c908fa035c30939ee438e - LIST_SEPARATOR @@ - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -G ${CMAKE_GENERATOR} <SOURCE_DIR> - -DTEST_LIST:STRING=1@@2@@3 - INSTALL_COMMAND "" -) -set_property(TARGET ${proj} PROPERTY FOLDER "Local/TAR") -ExternalProject_Add_Step(${proj} mypatch - COMMAND ${CMAKE_COMMAND} -E echo "This is a custom external project step." - COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/Step1Patch.cmake - WORKING_DIRECTORY <SOURCE_DIR> - DEPENDEES download - DEPENDERS configure - ) - - -# Local TGZ: -# -set(proj TutorialStep1-LocalTGZ) -ExternalProject_Add(${proj} - URL "${CMAKE_CURRENT_SOURCE_DIR}/Step1.tgz" - URL_MD5 38c648e817339c356f6be00eeed79bd0 - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -G ${CMAKE_GENERATOR} <SOURCE_DIR> - INSTALL_COMMAND "" - LOG_BUILD 1 -) -set_property(TARGET ${proj} PROPERTY FOLDER "Local/TGZ") - -set(proj TutorialStep1-LocalNoDirTGZ) -ExternalProject_Add(${proj} - URL "${CMAKE_CURRENT_SOURCE_DIR}/Step1NoDir.tgz" - URL_HASH SHA256=496229e2a5ed620a37c385ad9406004a18026beab8b55dd2c4565d4b7f1d5383 - CMAKE_GENERATOR "${CMAKE_GENERATOR}" - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> - INSTALL_COMMAND "" -) -set_property(TARGET ${proj} PROPERTY FOLDER "Local/TGZ") - - -# Local BZ2: -# -# (The bz2 tests are here just to verify that the bz2 decompression is executed -# during a test suite run... The configure and build commands are set to -# nothing to make the test quicker. To make this more complete, I should add -# a diff between this and the TGZ source tree since that one does build...) -# -set(proj TutorialStep1-LocalBZ2) -ExternalProject_Add(${proj} - URL "${CMAKE_CURRENT_SOURCE_DIR}/Step1.tar.bz2" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" -) -set_property(TARGET ${proj} PROPERTY FOLDER "Local/BZ2") - -set(proj TutorialStep1-LocalNoDirBZ2) -ExternalProject_Add(${proj} - URL "${CMAKE_CURRENT_SOURCE_DIR}/Step1NoDir.tar.bz2" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" -) -set_property(TARGET ${proj} PROPERTY FOLDER "Local/BZ2") - - -# Local ZIP: -# -# (The zip tests are here just to verify that the zip decompression is executed -# during a test suite run... The configure and build commands are set to -# nothing to make the test quicker. To make this more complete, I should add -# a diff between this and the TGZ source tree since that one does build...) -# -set(proj TutorialStep1-LocalZIP) -ExternalProject_Add(${proj} - URL "${CMAKE_CURRENT_SOURCE_DIR}/Step1.zip" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" -) -set_property(TARGET ${proj} PROPERTY FOLDER "Local/ZIP") - -set(proj TutorialStep1-LocalNoDirZIP) -ExternalProject_Add(${proj} - URL "${CMAKE_CURRENT_SOURCE_DIR}/Step1NoDir.zip" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" -) -set_property(TARGET ${proj} PROPERTY FOLDER "Local/ZIP") - - # CVS-based tests: # set(do_cvs_tests 0) @@ -337,10 +176,6 @@ if(do_cvs_tests) INSTALL_COMMAND "" DEPENDS "SetupLocalCVSRepository" DEPENDS "EmptyNoOpProject" - DEPENDS "TutorialStep1-LocalTAR" - DEPENDS "TutorialStep1-LocalNoDirTAR" - DEPENDS "TutorialStep1-LocalTGZ" - DEPENDS "TutorialStep1-LocalNoDirTGZ" DEPENDS "TutorialStep1-CVS-20090626" DEPENDS "TutorialStep1-CVS-testtag1" ) @@ -612,29 +447,6 @@ enable_testing() # # BuildTree tests: # -if(can_build_tutorial_step5) - add_test(TutorialStep5-Local-BuildTreeTest - "${binary_base}/TutorialStep5-Local/Tutorial" 42) - set_property(TEST TutorialStep5-Local-BuildTreeTest - APPEND PROPERTY LABELS Step5 BuildTree) -endif() - -add_test(TutorialStep1-LocalTAR-BuildTreeTest - "${binary_base}/TutorialStep1-LocalTAR/EP-Tutorial" 36) -set_property(TEST TutorialStep1-LocalTAR-BuildTreeTest - APPEND PROPERTY LABELS TAR) - -add_test(TutorialStep1-LocalNoDirTAR-BuildTreeTest - "${binary_base}/TutorialStep1-LocalNoDirTAR/EP-Tutorial" 25) - -add_test(TutorialStep1-LocalTGZ-BuildTreeTest - "${binary_base}/TutorialStep1-LocalTGZ/Tutorial" 16) -set_property(TEST TutorialStep1-LocalTGZ-BuildTreeTest - APPEND PROPERTY LABELS TGZ) - -add_test(TutorialStep1-LocalNoDirTGZ-BuildTreeTest - "${binary_base}/TutorialStep1-LocalNoDirTGZ/Tutorial" 9) - if(do_cvs_tests) add_test(TutorialStep1-CVS-20090626-BuildTreeTest "${binary_base}/TutorialStep1-CVS-20090626/Tutorial" 4) @@ -669,17 +481,6 @@ if(do_git_tests) endif() -# InstallTree tests: -# -if(can_build_tutorial_step5) - add_test(TutorialStep5-InstallTreeTest - "${TutorialStep5_install_dir}/bin/Tutorial" 49) - set_property(TEST TutorialStep5-InstallTreeTest - APPEND PROPERTY LABELS Step5 InstallTree) -endif() - - -message(STATUS "can_build_tutorial_step5='${can_build_tutorial_step5}'") message(STATUS "do_cvs_tests='${do_cvs_tests}'") message(STATUS "do_svn_tests='${do_svn_tests}'") message(STATUS "do_git_tests='${do_git_tests}' GIT_EXECUTABLE='${GIT_EXECUTABLE}'") diff --git a/Tests/ExternalProject/Step1.tar b/Tests/ExternalProject/Step1.tar Binary files differdeleted file mode 100644 index 3711f07..0000000 --- a/Tests/ExternalProject/Step1.tar +++ /dev/null diff --git a/Tests/ExternalProject/Step1.tar.bz2 b/Tests/ExternalProject/Step1.tar.bz2 Binary files differdeleted file mode 100644 index 49b5f23..0000000 --- a/Tests/ExternalProject/Step1.tar.bz2 +++ /dev/null diff --git a/Tests/ExternalProject/Step1.tgz b/Tests/ExternalProject/Step1.tgz Binary files differdeleted file mode 100644 index d9b4cd2..0000000 --- a/Tests/ExternalProject/Step1.tgz +++ /dev/null diff --git a/Tests/ExternalProject/Step1.zip b/Tests/ExternalProject/Step1.zip Binary files differdeleted file mode 100644 index 49dac24..0000000 --- a/Tests/ExternalProject/Step1.zip +++ /dev/null diff --git a/Tests/ExternalProject/Step1NoDir.tar b/Tests/ExternalProject/Step1NoDir.tar Binary files differdeleted file mode 100644 index 03664b8..0000000 --- a/Tests/ExternalProject/Step1NoDir.tar +++ /dev/null diff --git a/Tests/ExternalProject/Step1NoDir.tar.bz2 b/Tests/ExternalProject/Step1NoDir.tar.bz2 Binary files differdeleted file mode 100644 index 92eb480..0000000 --- a/Tests/ExternalProject/Step1NoDir.tar.bz2 +++ /dev/null diff --git a/Tests/ExternalProject/Step1NoDir.tgz b/Tests/ExternalProject/Step1NoDir.tgz Binary files differdeleted file mode 100644 index 71a2d81..0000000 --- a/Tests/ExternalProject/Step1NoDir.tgz +++ /dev/null diff --git a/Tests/ExternalProject/Step1NoDir.zip b/Tests/ExternalProject/Step1NoDir.zip Binary files differdeleted file mode 100644 index b42d318..0000000 --- a/Tests/ExternalProject/Step1NoDir.zip +++ /dev/null diff --git a/Tests/ExternalProject/Step1Patch.cmake b/Tests/ExternalProject/Step1Patch.cmake deleted file mode 100644 index 35e09d9..0000000 --- a/Tests/ExternalProject/Step1Patch.cmake +++ /dev/null @@ -1,25 +0,0 @@ -# Verify the current working directory. -if(NOT EXISTS CMakeLists.txt) - message(FATAL_ERROR "File does not exist:\n ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt") -endif() -if(NOT EXISTS tutorial.cxx) - message(FATAL_ERROR "File does not exist:\n ${CMAKE_CURRENT_SOURCE_DIR}/tutorial.cxx") -endif() - -# Check if the patch is already applied. -file(STRINGS CMakeLists.txt prop_line REGEX "^set_property") -if(prop_line) - message(STATUS "Patch already applied!") - return() -endif() - -# Apply the patch. -file(APPEND CMakeLists.txt " -# Patch by ExternalProject test: -set_property(TARGET Tutorial PROPERTY OUTPUT_NAME EP-Tutorial) -list(LENGTH TEST_LIST len) -if(NOT len EQUAL 3) - message(FATAL_ERROR \"TEST_LIST length is \${len}, not 3\") -endif() -") -message(STATUS "Patched ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt") |