Commit 30e02325 authored by Gregory P. Smith's avatar Gregory P. Smith Committed by GitHub

Cleanup test_faulthandler sanitizer skip logic. (GH-11381)

Also skip the same tests when using the undefined behavior sanitizer
as they much with the output.

Updates a regex in another test to use multi-line mode so that the ubsan
buildbot should pass again rather than also adding a skip to that one.
parent c7e21913
...@@ -20,11 +20,18 @@ except ImportError: ...@@ -20,11 +20,18 @@ except ImportError:
TIMEOUT = 0.5 TIMEOUT = 0.5
MS_WINDOWS = (os.name == 'nt') MS_WINDOWS = (os.name == 'nt')
_cflags = sysconfig.get_config_var('CFLAGS') or ''
_config_args = sysconfig.get_config_var('CONFIG_ARGS') or ''
UB_SANITIZER = (
'-fsanitizer=undefined' in _cflags or
'--with-undefined-behavior-sanitizer' in _config_args
)
MEMORY_SANITIZER = ( MEMORY_SANITIZER = (
sysconfig.get_config_var("CONFIG_ARGS") and '-fsanitizer=memory' in _cflags or
("--with-memory-sanitizer" in sysconfig.get_config_var("CONFIG_ARGS")) '--with-memory-sanitizer' in _config_args
) )
def expected_traceback(lineno1, lineno2, header, min_count=1): def expected_traceback(lineno1, lineno2, header, min_count=1):
regex = header regex = header
regex += ' File "<string>", line %s in func\n' % lineno1 regex += ' File "<string>", line %s in func\n' % lineno1
...@@ -99,7 +106,7 @@ class FaultHandlerTests(unittest.TestCase): ...@@ -99,7 +106,7 @@ class FaultHandlerTests(unittest.TestCase):
else: else:
header = 'Stack' header = 'Stack'
regex = r""" regex = r"""
^{fatal_error} (?m)^{fatal_error}
{header} \(most recent call first\): {header} \(most recent call first\):
File "<string>", line {lineno} in <module> File "<string>", line {lineno} in <module>
...@@ -257,8 +264,8 @@ class FaultHandlerTests(unittest.TestCase): ...@@ -257,8 +264,8 @@ class FaultHandlerTests(unittest.TestCase):
3, 3,
'Segmentation fault') 'Segmentation fault')
@unittest.skipIf(MEMORY_SANITIZER, @unittest.skipIf(UB_SANITIZER or MEMORY_SANITIZER,
"memory-sanizer builds change crashing process output.") "sanizer builds change crashing process output.")
@skip_segfault_on_android @skip_segfault_on_android
def test_enable_file(self): def test_enable_file(self):
with temporary_filename() as filename: with temporary_filename() as filename:
...@@ -274,8 +281,8 @@ class FaultHandlerTests(unittest.TestCase): ...@@ -274,8 +281,8 @@ class FaultHandlerTests(unittest.TestCase):
@unittest.skipIf(sys.platform == "win32", @unittest.skipIf(sys.platform == "win32",
"subprocess doesn't support pass_fds on Windows") "subprocess doesn't support pass_fds on Windows")
@unittest.skipIf(MEMORY_SANITIZER, @unittest.skipIf(UB_SANITIZER or MEMORY_SANITIZER,
"memory-sanizer builds change crashing process output.") "sanizer builds change crashing process output.")
@skip_segfault_on_android @skip_segfault_on_android
def test_enable_fd(self): def test_enable_fd(self):
with tempfile.TemporaryFile('wb+') as fp: with tempfile.TemporaryFile('wb+') as fp:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment