mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
bpo-32138: Skip on Android test_faulthandler tests that raise SIGSEGV (GH-4604)
Remove the test.support.requires_android_level decorator.
This commit is contained in:
parent
cc55e78aca
commit
ef83806f5e
3 changed files with 18 additions and 28 deletions
|
@ -6,7 +6,7 @@ import signal
|
|||
import subprocess
|
||||
import sys
|
||||
from test import support
|
||||
from test.support import script_helper, is_android, requires_android_level
|
||||
from test.support import script_helper, is_android
|
||||
import tempfile
|
||||
import threading
|
||||
import unittest
|
||||
|
@ -29,6 +29,11 @@ def expected_traceback(lineno1, lineno2, header, min_count=1):
|
|||
else:
|
||||
return '^' + regex + '$'
|
||||
|
||||
def skip_segfault_on_android(test):
|
||||
# Issue #32138: Raising SIGSEGV on Android may not cause a crash.
|
||||
return unittest.skipIf(is_android,
|
||||
'raising SIGSEGV on Android is unreliable')(test)
|
||||
|
||||
@contextmanager
|
||||
def temporary_filename():
|
||||
filename = tempfile.mktemp()
|
||||
|
@ -37,10 +42,6 @@ def temporary_filename():
|
|||
finally:
|
||||
support.unlink(filename)
|
||||
|
||||
def requires_raise(test):
|
||||
return (test if not is_android else
|
||||
requires_android_level(24, 'raise() is buggy')(test))
|
||||
|
||||
class FaultHandlerTests(unittest.TestCase):
|
||||
def get_output(self, code, filename=None, fd=None):
|
||||
"""
|
||||
|
@ -140,7 +141,7 @@ class FaultHandlerTests(unittest.TestCase):
|
|||
3,
|
||||
'access violation')
|
||||
|
||||
@requires_raise
|
||||
@skip_segfault_on_android
|
||||
def test_sigsegv(self):
|
||||
self.check_fatal_error("""
|
||||
import faulthandler
|
||||
|
@ -182,7 +183,7 @@ class FaultHandlerTests(unittest.TestCase):
|
|||
|
||||
@unittest.skipIf(_testcapi is None, 'need _testcapi')
|
||||
@unittest.skipUnless(hasattr(signal, 'SIGBUS'), 'need signal.SIGBUS')
|
||||
@requires_raise
|
||||
@skip_segfault_on_android
|
||||
def test_sigbus(self):
|
||||
self.check_fatal_error("""
|
||||
import _testcapi
|
||||
|
@ -197,7 +198,7 @@ class FaultHandlerTests(unittest.TestCase):
|
|||
|
||||
@unittest.skipIf(_testcapi is None, 'need _testcapi')
|
||||
@unittest.skipUnless(hasattr(signal, 'SIGILL'), 'need signal.SIGILL')
|
||||
@requires_raise
|
||||
@skip_segfault_on_android
|
||||
def test_sigill(self):
|
||||
self.check_fatal_error("""
|
||||
import _testcapi
|
||||
|
@ -241,7 +242,7 @@ class FaultHandlerTests(unittest.TestCase):
|
|||
'(?:Segmentation fault|Bus error)',
|
||||
other_regex='unable to raise a stack overflow')
|
||||
|
||||
@requires_raise
|
||||
@skip_segfault_on_android
|
||||
def test_gil_released(self):
|
||||
self.check_fatal_error("""
|
||||
import faulthandler
|
||||
|
@ -251,7 +252,7 @@ class FaultHandlerTests(unittest.TestCase):
|
|||
3,
|
||||
'Segmentation fault')
|
||||
|
||||
@requires_raise
|
||||
@skip_segfault_on_android
|
||||
def test_enable_file(self):
|
||||
with temporary_filename() as filename:
|
||||
self.check_fatal_error("""
|
||||
|
@ -266,7 +267,7 @@ class FaultHandlerTests(unittest.TestCase):
|
|||
|
||||
@unittest.skipIf(sys.platform == "win32",
|
||||
"subprocess doesn't support pass_fds on Windows")
|
||||
@requires_raise
|
||||
@skip_segfault_on_android
|
||||
def test_enable_fd(self):
|
||||
with tempfile.TemporaryFile('wb+') as fp:
|
||||
fd = fp.fileno()
|
||||
|
@ -280,7 +281,7 @@ class FaultHandlerTests(unittest.TestCase):
|
|||
'Segmentation fault',
|
||||
fd=fd)
|
||||
|
||||
@requires_raise
|
||||
@skip_segfault_on_android
|
||||
def test_enable_single_thread(self):
|
||||
self.check_fatal_error("""
|
||||
import faulthandler
|
||||
|
@ -291,7 +292,7 @@ class FaultHandlerTests(unittest.TestCase):
|
|||
'Segmentation fault',
|
||||
all_threads=False)
|
||||
|
||||
@requires_raise
|
||||
@skip_segfault_on_android
|
||||
def test_disable(self):
|
||||
code = """
|
||||
import faulthandler
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue