From 250035d134ad482e724f73ce654682254b513ee0 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 18 Jan 2021 20:47:13 +0100 Subject: bpo-42923: Dump extension modules on fatal error (GH-24207) The Py_FatalError() function and the faulthandler module now dump the list of extension modules on a fatal error. Add _Py_DumpExtensionModules() and _PyModule_IsExtension() internal functions. --- Lib/test/test_capi.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'Lib/test/test_capi.py') diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py index 0d5c97dcc2..5e72ba9eb0 100644 --- a/Lib/test/test_capi.py +++ b/Lib/test/test_capi.py @@ -556,6 +556,16 @@ class CAPITest(unittest.TestCase): self.assertIn('Fatal Python error: test_fatal_error: MESSAGE\n', err) + match = re.search('^Extension modules:(.*)$', err, re.MULTILINE) + if not match: + self.fail(f"Cannot find 'Extension modules:' in {err!r}") + modules = set(match.group(1).strip().split(', ')) + # Test _PyModule_IsExtension(): the list doesn't have to + # be exhaustive. + for name in ('sys', 'builtins', '_imp', '_thread', '_weakref', + '_io', 'marshal', '_signal', '_abc', '_testcapi'): + self.assertIn(name, modules) + class TestPendingCalls(unittest.TestCase): -- cgit v1.2.1