summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2013-11-24 13:58:17 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2013-11-24 13:58:17 (GMT)
commitf6eb31fdc6b246cd1ff131d818d59b53066eae95 (patch)
tree67761608cad1f5bad7bc7954963f652bade01880
parent3ab9cfc50101f46ac31e4b85e1779e5b7492d158 (diff)
downloadcpython-f6eb31fdc6b246cd1ff131d818d59b53066eae95.zip
cpython-f6eb31fdc6b246cd1ff131d818d59b53066eae95.tar.gz
cpython-f6eb31fdc6b246cd1ff131d818d59b53066eae95.tar.bz2
Issue #19743: fix test_gdb on some optimized Python builds
-rw-r--r--Lib/test/test_gdb.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py
index c791cb0..b543889 100644
--- a/Lib/test/test_gdb.py
+++ b/Lib/test/test_gdb.py
@@ -145,7 +145,7 @@ class DebuggerTests(unittest.TestCase):
args += [script]
# print args
- # print ' '.join(args)
+ # print (' '.join(args))
# Use "args" to invoke gdb, capturing stdout, stderr:
out, err = run_gdb(*args, PYTHONHASHSEED=PYTHONHASHSEED)
@@ -191,6 +191,11 @@ class DebuggerTests(unittest.TestCase):
#
# For a nested structure, the first time we hit the breakpoint will
# give us the top-level structure
+
+ # NOTE: avoid decoding too much of the traceback as some
+ # undecodable characters may lurk there in optimized mode
+ # (issue #19743).
+ cmds_after_breakpoint = cmds_after_breakpoint or ["backtrace 1"]
gdb_output = self.get_stack_trace(source, breakpoint=BREAKPOINT_FN,
cmds_after_breakpoint=cmds_after_breakpoint,
import_site=import_site)
@@ -221,11 +226,10 @@ class PrettyPrintTests(DebuggerTests):
gdb_output = self.get_stack_trace('id(42)')
self.assertTrue(BREAKPOINT_FN in gdb_output)
- def assertGdbRepr(self, val, exp_repr=None, cmds_after_breakpoint=None):
+ def assertGdbRepr(self, val, exp_repr=None):
# Ensure that gdb's rendering of the value in a debugged process
# matches repr(value) in this process:
- gdb_repr, gdb_output = self.get_gdb_repr('id(' + ascii(val) + ')',
- cmds_after_breakpoint)
+ gdb_repr, gdb_output = self.get_gdb_repr('id(' + ascii(val) + ')')
if not exp_repr:
exp_repr = repr(val)
self.assertEqual(gdb_repr, exp_repr,