summaryrefslogtreecommitdiffstats
path: root/Tests/ExternalProject
diff options
context:
space:
mode:
authorRolf Eike Beer <eike@sf-mail.de>2014-07-03 16:11:49 (GMT)
committerRolf Eike Beer <eike@sf-mail.de>2014-07-03 16:12:08 (GMT)
commit92af3664c922b4b3127700c426a01ab5fec097b8 (patch)
treeeef069a8d13317f3557462ee53c52834ce1c26c1 /Tests/ExternalProject
parent6d1ad670771271bbdd7e3ff3bfa19474049cc139 (diff)
downloadCMake-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.txt203
-rw-r--r--Tests/ExternalProject/Step1.tarbin5632 -> 0 bytes
-rw-r--r--Tests/ExternalProject/Step1.tar.bz2bin904 -> 0 bytes
-rw-r--r--Tests/ExternalProject/Step1.tgzbin791 -> 0 bytes
-rw-r--r--Tests/ExternalProject/Step1.zipbin1074 -> 0 bytes
-rw-r--r--Tests/ExternalProject/Step1NoDir.tarbin5120 -> 0 bytes
-rw-r--r--Tests/ExternalProject/Step1NoDir.tar.bz2bin852 -> 0 bytes
-rw-r--r--Tests/ExternalProject/Step1NoDir.tgzbin770 -> 0 bytes
-rw-r--r--Tests/ExternalProject/Step1NoDir.zipbin1038 -> 0 bytes
-rw-r--r--Tests/ExternalProject/Step1Patch.cmake25
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
deleted file mode 100644
index 3711f07..0000000
--- a/Tests/ExternalProject/Step1.tar
+++ /dev/null
Binary files differ
diff --git a/Tests/ExternalProject/Step1.tar.bz2 b/Tests/ExternalProject/Step1.tar.bz2
deleted file mode 100644
index 49b5f23..0000000
--- a/Tests/ExternalProject/Step1.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/Tests/ExternalProject/Step1.tgz b/Tests/ExternalProject/Step1.tgz
deleted file mode 100644
index d9b4cd2..0000000
--- a/Tests/ExternalProject/Step1.tgz
+++ /dev/null
Binary files differ
diff --git a/Tests/ExternalProject/Step1.zip b/Tests/ExternalProject/Step1.zip
deleted file mode 100644
index 49dac24..0000000
--- a/Tests/ExternalProject/Step1.zip
+++ /dev/null
Binary files differ
diff --git a/Tests/ExternalProject/Step1NoDir.tar b/Tests/ExternalProject/Step1NoDir.tar
deleted file mode 100644
index 03664b8..0000000
--- a/Tests/ExternalProject/Step1NoDir.tar
+++ /dev/null
Binary files differ
diff --git a/Tests/ExternalProject/Step1NoDir.tar.bz2 b/Tests/ExternalProject/Step1NoDir.tar.bz2
deleted file mode 100644
index 92eb480..0000000
--- a/Tests/ExternalProject/Step1NoDir.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/Tests/ExternalProject/Step1NoDir.tgz b/Tests/ExternalProject/Step1NoDir.tgz
deleted file mode 100644
index 71a2d81..0000000
--- a/Tests/ExternalProject/Step1NoDir.tgz
+++ /dev/null
Binary files differ
diff --git a/Tests/ExternalProject/Step1NoDir.zip b/Tests/ExternalProject/Step1NoDir.zip
deleted file mode 100644
index b42d318..0000000
--- a/Tests/ExternalProject/Step1NoDir.zip
+++ /dev/null
Binary files differ
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")