Blob Blame History Raw
commit ea4d6a12548eea7ce0424feea13a499fb7085e96
Author: rpm-build <rpm-build>
Date:   Wed Mar 29 04:31:55 2017 +0200

    011-no-faulthandler.patch

diff --git a/lib-python/3/test/regrtest.py b/lib-python/3/test/regrtest.py
index c1d85f6..3d3072c 100755
--- a/lib-python/3/test/regrtest.py
+++ b/lib-python/3/test/regrtest.py
@@ -124,7 +124,6 @@ import importlib
 
 import argparse
 import builtins
-import faulthandler
 import io
 import json
 import locale
@@ -152,7 +151,10 @@ try:
     import _multiprocessing, multiprocessing.process
 except ImportError:
     multiprocessing = None
-
+try:
+    import faulthandler
+except ImportError:
+    faulthandler = None
 
 # Some times __path__ and __file__ are not absolute (e.g. while running from
 # Lib/) and, if we change the CWD to run the tests in a temporary dir, some
@@ -486,17 +488,18 @@ def main(tests=None, **kwargs):
     directly to set the values that would normally be set by flags
     on the command line.
     """
-    # Display the Python traceback on fatal errors (e.g. segfault)
-    faulthandler.enable(all_threads=True)
-
-    # Display the Python traceback on SIGALRM or SIGUSR1 signal
-    signals = []
-    if hasattr(signal, 'SIGALRM'):
-        signals.append(signal.SIGALRM)
-    if hasattr(signal, 'SIGUSR1'):
-        signals.append(signal.SIGUSR1)
-    for signum in signals:
-        faulthandler.register(signum, chain=True)
+    if faulthandler:
+        # Display the Python traceback on fatal errors (e.g. segfault)
+        faulthandler.enable(all_threads=True)
+
+        # Display the Python traceback on SIGALRM or SIGUSR1 signal
+        signals = []
+        if hasattr(signal, 'SIGALRM'):
+            signals.append(signal.SIGALRM)
+        if hasattr(signal, 'SIGUSR1'):
+            signals.append(signal.SIGUSR1)
+        for signum in signals:
+            faulthandler.register(signum, chain=True)
 
     replace_stdout()
 
diff --git a/lib-python/3/test/support/__init__.py b/lib-python/3/test/support/__init__.py
index 5d7f308..4424637 100644
--- a/lib-python/3/test/support/__init__.py
+++ b/lib-python/3/test/support/__init__.py
@@ -6,7 +6,6 @@ if __name__ != 'test.support':
 import collections.abc
 import contextlib
 import errno
-import faulthandler
 import fnmatch
 import functools
 import gc
@@ -65,6 +64,11 @@ try:
 except ImportError:
     resource = None
 
+try:
+    import faulthandler
+except ImportError:
+    faulthandler = None
+
 __all__ = [
     # globals
     "PIPE_MAX_SIZE", "verbose", "max_memuse", "use_resources", "failfast",
@@ -2060,7 +2064,8 @@ def start_threads(threads, unlock=None):
         finally:
             started = [t for t in started if t.isAlive()]
             if started:
-                faulthandler.dump_traceback(sys.stdout)
+                if faulthandler is not None:
+                    faulthandler.dump_traceback(sys.stdout)
                 raise AssertionError('Unable to join %d threads' % len(started))
 
 @contextlib.contextmanager