Browse Source

ExternalProject: Make sure the ExternalProjectUpdate setup is available.

This prepares the numberous tests that occur in the ExternalProjectUpdate
test.  The tests were passing previously because a fresh build was not performed.
Matt McCormick 13 years ago
parent
commit
0a34433dfb
2 changed files with 19 additions and 3 deletions
  1. 18 2
      Tests/CMakeLists.txt
  2. 1 1
      Tests/ExternalProjectUpdate/CMakeLists.txt

+ 18 - 2
Tests/CMakeLists.txt

@@ -982,7 +982,23 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
   set_tests_properties(ExternalProject PROPERTIES
     TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT})
 
-  add_test(ExternalProjectUpdate ${CMAKE_CMAKE_COMMAND}
+  add_test(ExternalProjectUpdateSetup ${CMAKE_CTEST_COMMAND}
+    --build-and-test
+    "${CMake_SOURCE_DIR}/Tests/ExternalProjectUpdate"
+    "${CMake_BINARY_DIR}/Tests/ExternalProjectUpdate"
+    --build-generator ${CMAKE_TEST_GENERATOR}
+    --build-project ExternalProjectUpdateTest
+    --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
+    --build-exe-dir "${CMake_BINARY_DIR}/Tests/ExternalProjectUpdate"
+    --force-new-ctest-process
+    --test-command ${CMAKE_CTEST_COMMAND} -V
+    )
+  list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ExternalProjectUpdate")
+  set_tests_properties(ExternalProjectUpdateSetup PROPERTIES
+    TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT})
+
+  add_test(NAME ExternalProjectUpdate
+    COMMAND ${CMAKE_CMAKE_COMMAND}
     -DExternalProjectUpdate_SOURCE_DIR:PATH=${CMake_SOURCE_DIR}/Tests/ExternalProjectUpdate
     -DExternalProjectUpdate_BINARY_DIR:PATH=${CMake_BINARY_DIR}/Tests/ExternalProjectUpdate
     -DCMAKE_TEST_GENERATOR=${CMAKE_TEST_GENERATOR}
@@ -994,7 +1010,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
   set_tests_properties(ExternalProjectUpdate PROPERTIES
     TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT}
     WORKING_DIRECTORY ${CMake_SOURCE_DIR}/Tests/ExternalProjectUpdate
-    )
+    DEPENDS ExternalProjectUpdateSetup )
 
   # do each of the tutorial steps
   foreach(STP RANGE 1 7)

+ 1 - 1
Tests/ExternalProjectUpdate/CMakeLists.txt

@@ -41,7 +41,7 @@ endif()
 
 # This should be specified from the command line.
 if(NOT TEST_GIT_TAG)
-  message(FATAL_ERROR "TEST_GIT_TAG must be specified.")
+  set(TEST_GIT_TAG origin/master)
 endif()
 
 if(do_git_tests)