Issue #12550: regrtest displays the Python traceback on SIGALRM or SIGUSR1
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 1426c3e..528f46a 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -172,6 +172,7 @@
import platform
import random
import re
+import signal
import sys
import sysconfig
import tempfile
@@ -266,9 +267,18 @@
on the command line.
"""
- # Display the Python traceback fatal errors (e.g. segfault)
+ # 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()
support.record_original_stdout(sys.stdout)