]> granicus.if.org Git - python/commitdiff
Merged revisions 83067 via svnmerge from
authorRonald Oussoren <ronaldoussoren@mac.com>
Fri, 23 Jul 2010 10:35:20 +0000 (10:35 +0000)
committerRonald Oussoren <ronaldoussoren@mac.com>
Fri, 23 Jul 2010 10:35:20 +0000 (10:35 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r83067 | ronald.oussoren | 2010-07-23 10:50:05 +0100 (Fri, 23 Jul 2010) | 8 lines

  Workaround for issue 4047: in some configurations of
  the Crash Reporter on OSX test_subprocess will trigger
  the reporter.

  This patch prints a warning when the Crash Reporter will
  get triggered intentionally, which should avoid confusing
  people.
........

Lib/test/test_subprocess.py

index a27ef6341eda2327983a003cb0c8c752a4cf671b..5cdbe2dd7e6590aa8adc86ded9d4a5ac14938302 100644 (file)
@@ -568,6 +568,21 @@ class ProcessTestCase(unittest.TestCase):
             """Try to prevent core files from being created.
             Returns previous ulimit if successful, else None.
             """
+            if sys.platform == 'darwin':
+                # Check if the 'Crash Reporter' on OSX was configured
+                # in 'Developer' mode and warn that it will get triggered
+                # when it is.
+                #
+                # This assumes that this context manager is used in tests
+                # that might trigger the next manager.
+                value = subprocess.Popen(['/usr/bin/defaults', 'read',
+                    'com.apple.CrashReporter', 'DialogType'],
+                    stdout=subprocess.PIPE).communicate()[0]
+                if value.strip() == b'developer':
+                    print("this tests triggers the Crash Reporter, "
+                          "that is intentional", end='')
+                    sys.stdout.flush()
+
             try:
                 import resource
                 old_limit = resource.getrlimit(resource.RLIMIT_CORE)
@@ -576,6 +591,8 @@ class ProcessTestCase(unittest.TestCase):
             except (ImportError, ValueError, resource.error):
                 return None
 
+
+
         def _unsuppress_core_files(self, old_limit):
             """Return core file behavior to default."""
             if old_limit is None: