diff --git a/Tests/SimpleInstall/CMakeLists.txt b/Tests/SimpleInstall/CMakeLists.txt index a0c442e31..f94ac71df 100644 --- a/Tests/SimpleInstall/CMakeLists.txt +++ b/Tests/SimpleInstall/CMakeLists.txt @@ -333,14 +333,25 @@ SET(CMAKE_INSTALL_DEBUG_LIBRARIES 1) INCLUDE(InstallRequiredSystemLibraries) INCLUDE(CPack) -# Avoid disabling test on Apple to try to diagnose the problem. -SET(CTEST_TEST_CPACK 1) - -# disable packaging on Apple, since this includes the /Applications dir -# where a symbolic link is created by cmCPackOSXX11Generator.cxx +# Disable packaging test on Apple 10.3 and below. PackageMaker starts +# DiskManagementTool as root and disowns it +# (http://lists.apple.com/archives/installer-dev/2005/Jul/msg00005.html). +# It is left holding open pipe handles and preventing ProcessUNIX from +# detecting end-of-data even after its immediate child exits. Then +# the test hangs until it times out and is killed. This is a +# well-known bug in kwsys process execution that I would love to get +# time to fix. SET(PACKAGE_TARGET --build-target package) IF(APPLE AND NOT CTEST_TEST_CPACK) - SET(PACKAGE_TARGET) + EXECUTE_PROCESS( + COMMAND sw_vers -productVersion + OUTPUT_VARIABLE OSX_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + IF("${OSX_VERSION}" MATCHES "^10\\.[0123]") + MESSAGE(STATUS "Disabling package test on OSX ${OSX_VERSION} < 10.4") + SET(PACKAGE_TARGET) + ENDIF("${OSX_VERSION}" MATCHES "^10\\.[0123]") ENDIF(APPLE AND NOT CTEST_TEST_CPACK) ADD_CUSTOM_COMMAND( diff --git a/Tests/SimpleInstallS2/CMakeLists.txt b/Tests/SimpleInstallS2/CMakeLists.txt index a0c442e31..f94ac71df 100644 --- a/Tests/SimpleInstallS2/CMakeLists.txt +++ b/Tests/SimpleInstallS2/CMakeLists.txt @@ -333,14 +333,25 @@ SET(CMAKE_INSTALL_DEBUG_LIBRARIES 1) INCLUDE(InstallRequiredSystemLibraries) INCLUDE(CPack) -# Avoid disabling test on Apple to try to diagnose the problem. -SET(CTEST_TEST_CPACK 1) - -# disable packaging on Apple, since this includes the /Applications dir -# where a symbolic link is created by cmCPackOSXX11Generator.cxx +# Disable packaging test on Apple 10.3 and below. PackageMaker starts +# DiskManagementTool as root and disowns it +# (http://lists.apple.com/archives/installer-dev/2005/Jul/msg00005.html). +# It is left holding open pipe handles and preventing ProcessUNIX from +# detecting end-of-data even after its immediate child exits. Then +# the test hangs until it times out and is killed. This is a +# well-known bug in kwsys process execution that I would love to get +# time to fix. SET(PACKAGE_TARGET --build-target package) IF(APPLE AND NOT CTEST_TEST_CPACK) - SET(PACKAGE_TARGET) + EXECUTE_PROCESS( + COMMAND sw_vers -productVersion + OUTPUT_VARIABLE OSX_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + IF("${OSX_VERSION}" MATCHES "^10\\.[0123]") + MESSAGE(STATUS "Disabling package test on OSX ${OSX_VERSION} < 10.4") + SET(PACKAGE_TARGET) + ENDIF("${OSX_VERSION}" MATCHES "^10\\.[0123]") ENDIF(APPLE AND NOT CTEST_TEST_CPACK) ADD_CUSTOM_COMMAND(