Browse Source

ENH: Disable package test only on OSX < 10.4. Added comment explaining reason for timeout.

Brad King 18 years ago
parent
commit
bb6b7de09a
2 changed files with 34 additions and 12 deletions
  1. 17 6
      Tests/SimpleInstall/CMakeLists.txt
  2. 17 6
      Tests/SimpleInstallS2/CMakeLists.txt

+ 17 - 6
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(

+ 17 - 6
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(