bpo-45207: Make test_gdb.test_pycfunction() quiet (GH-28355) (GH-28365)
test_gdb.test_pycfunction() now ignores gdb stderr, it no longer logs
messages like:
Function "meth_varargs" not defined.
(cherry picked from commit 84a6061e29e9dc13909bdf6f541f48c2a4f1d410)
Co-authored-by: Victor Stinner <vstinner@python.org>
diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py
index 22c75ba..5f55489 100644
--- a/Lib/test/test_gdb.py
+++ b/Lib/test/test_gdb.py
@@ -145,7 +145,8 @@ class DebuggerTests(unittest.TestCase):
def get_stack_trace(self, source=None, script=None,
breakpoint=BREAKPOINT_FN,
cmds_after_breakpoint=None,
- import_site=False):
+ import_site=False,
+ ignore_stderr=False):
'''
Run 'python -c SOURCE' under gdb with a breakpoint.
@@ -224,8 +225,9 @@ def get_stack_trace(self, source=None, script=None,
# Use "args" to invoke gdb, capturing stdout, stderr:
out, err = run_gdb(*args, PYTHONHASHSEED=PYTHONHASHSEED)
- for line in err.splitlines():
- print(line, file=sys.stderr)
+ if not ignore_stderr:
+ for line in err.splitlines():
+ print(line, file=sys.stderr)
# bpo-34007: Sometimes some versions of the shared libraries that
# are part of the traceback are compiled in optimised mode and the
@@ -908,6 +910,9 @@ def bar():
cmd,
breakpoint=func_name,
cmds_after_breakpoint=['bt', 'py-bt'],
+ # bpo-45207: Ignore 'Function "meth_varargs" not
+ # defined.' message in stderr.
+ ignore_stderr=True,
)
self.assertIn(f'<built-in method {func_name}', gdb_output)
@@ -916,6 +921,9 @@ def bar():
cmd,
breakpoint=func_name,
cmds_after_breakpoint=['py-bt-full'],
+ # bpo-45207: Ignore 'Function "meth_varargs" not
+ # defined.' message in stderr.
+ ignore_stderr=True,
)
self.assertIn(
f'#{expected_frame} <built-in method {func_name}',