bpo-39882: Py_FatalError() logs the function name (GH-18819)

The Py_FatalError() function is replaced with a macro which logs
automatically the name of the current function, unless the
Py_LIMITED_API macro is defined.

Changes:

* Add _Py_FatalErrorFunc() function.
* Remove the function name from the message of Py_FatalError() calls
  which included the function name.
* Update tests.
This commit is contained in:
Victor Stinner 2020-03-07 00:54:20 +01:00 committed by GitHub
parent 7b3c252dc7
commit 9e5d30cc99
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 112 additions and 69 deletions

View file

@ -123,7 +123,9 @@ class FaultHandlerTests(unittest.TestCase):
self.assertRegex(output, regex)
self.assertNotEqual(exitcode, 0)
def check_fatal_error(self, code, line_number, name_regex, **kw):
def check_fatal_error(self, code, line_number, name_regex, func=None, **kw):
if func:
name_regex = '%s: %s' % (func, name_regex)
fatal_error = 'Fatal Python error: %s' % name_regex
self.check_error(code, line_number, fatal_error, **kw)
@ -173,6 +175,7 @@ class FaultHandlerTests(unittest.TestCase):
3,
'in new thread',
know_current_thread=False,
func='faulthandler_fatal_error_thread',
py_fatal_error=True)
def test_sigabrt(self):
@ -230,6 +233,7 @@ class FaultHandlerTests(unittest.TestCase):
""",
2,
'xyz',
func='faulthandler_fatal_error_py',
py_fatal_error=True)
def test_fatal_error_without_gil(self):
@ -239,6 +243,7 @@ class FaultHandlerTests(unittest.TestCase):
""",
2,
'xyz',
func='faulthandler_fatal_error_py',
py_fatal_error=True)
@unittest.skipIf(sys.platform.startswith('openbsd'),