summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2019-06-21 21:17:30 (GMT)
committerGitHub <noreply@github.com>2019-06-21 21:17:30 (GMT)
commite56a123fd0acaa295a28b98d2e46d956b97d1263 (patch)
treee1b591f21eff1bd7ba64951ff28da4f16668ff13 /Lib
parent8b2aa1fddeb647bfbdb3b5827ddc3fdef19b8e44 (diff)
downloadcpython-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.py47
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,