diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-06-21 21:17:30 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-21 21:17:30 (GMT) |
commit | e56a123fd0acaa295a28b98d2e46d956b97d1263 (patch) | |
tree | e1b591f21eff1bd7ba64951ff28da4f16668ff13 /Lib | |
parent | 8b2aa1fddeb647bfbdb3b5827ddc3fdef19b8e44 (diff) | |
download | cpython-e56a123fd0acaa295a28b98d2e46d956b97d1263.zip cpython-e56a123fd0acaa295a28b98d2e46d956b97d1263.tar.gz cpython-e56a123fd0acaa295a28b98d2e46d956b97d1263.tar.bz2 |
bpo-37362: test_gdb now ignores stderr (GH-14287)
test_gdb no longer fails if it gets an "unexpected" message on
stderr: it now ignores stderr. The purpose of test_gdb is to test
that python-gdb.py commands work as expected, not to test gdb.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_gdb.py | 47 |
1 files changed, 13 insertions, 34 deletions
diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py index f57e348..1c5e18b 100644 --- a/Lib/test/test_gdb.py +++ b/Lib/test/test_gdb.py @@ -214,43 +214,22 @@ class DebuggerTests(unittest.TestCase): elif script: args += [script] - # print args - # print (' '.join(args)) - # Use "args" to invoke gdb, capturing stdout, stderr: out, err = run_gdb(*args, PYTHONHASHSEED=PYTHONHASHSEED) - errlines = err.splitlines() - unexpected_errlines = [] - - # Ignore some benign messages on stderr. - ignore_patterns = ( - 'Function "%s" not defined.' % breakpoint, - 'Do you need "set solib-search-path" or ' - '"set sysroot"?', - # BFD: /usr/lib/debug/(...): unable to initialize decompress - # status for section .debug_aranges - 'BFD: ', - # ignore all warnings - 'warning: ', - ) - for line in errlines: - if not line: - continue - # bpo34007: Sometimes some versions of the shared libraries that - # are part of the traceback are compiled in optimised mode and the - # Program Counter (PC) is not present, not allowing gdb to walk the - # frames back. When this happens, the Python bindings of gdb raise - # an exception, making the test impossible to succeed. - if "PC not saved" in line: - raise unittest.SkipTest("gdb cannot walk the frame object" - " because the Program Counter is" - " not present") - if not line.startswith(ignore_patterns): - unexpected_errlines.append(line) - - # Ensure no unexpected error messages: - self.assertEqual(unexpected_errlines, []) + 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 + # Program Counter (PC) is not present, not allowing gdb to walk the + # frames back. When this happens, the Python bindings of gdb raise + # an exception, making the test impossible to succeed. + if "PC not saved" in err: + raise unittest.SkipTest("gdb cannot walk the frame object" + " because the Program Counter is" + " not present") + return out def get_gdb_repr(self, source, |