瀏覽代碼

Serialize tests for EXCLUDE_FROM_DEFAULT_BUILD

The tests share a single build directory and so should not run in
parallel.  While at it, add the build dir to the test_clean target.
Brad King 13 年之前
父節點
當前提交
739f16653d
共有 1 個文件被更改,包括 7 次插入0 次删除
  1. 7 0
      Tests/CMakeLists.txt

+ 7 - 0
Tests/CMakeLists.txt

@@ -1417,6 +1417,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
       # The test (and tested property) works with .sln files, so it's skipped when:
       # * Using VS6, which doesn't use .sln files
       # * cmake --build is set up to use MSBuild, since the MSBuild invocation does not use the .sln file
+      set(_last_test "")
       foreach(config ${CMAKE_CONFIGURATION_TYPES})
         add_test(NAME VSExcludeFromDefaultBuild-${config} COMMAND ${CMAKE_CTEST_COMMAND}
           --build-and-test
@@ -1432,7 +1433,13 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
              -D "allConfigs=${CMAKE_CONFIGURATION_TYPES}"
              -D "dir=${CMake_BINARY_DIR}/Tests/VSExcludeFromDefaultBuild"
              -P "${CMake_SOURCE_DIR}/Tests/VSExcludeFromDefaultBuild/ResultTest.cmake")
+        if(_last_test)
+          set_property(TEST VSExcludeFromDefaultBuild-${config} PROPERTY DEPENDS ${_last_test})
+        endif()
+        set(_last_test "VSExcludeFromDefaultBuild-${config}")
       endforeach()
+      unset(_last_test)
+      list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSExcludeFromDefaultBuild")
     endif()
   endif()