Commit 11fa11bc authored by Benjamin Peterson's avatar Benjamin Peterson

fix test_gdb under hash randomization

parent 5bc92e08
...@@ -58,13 +58,18 @@ class DebuggerTests(unittest.TestCase): ...@@ -58,13 +58,18 @@ class DebuggerTests(unittest.TestCase):
"""Test that the debugger can debug Python.""" """Test that the debugger can debug Python."""
def run_gdb(self, *args): def run_gdb(self, *args, **env_vars):
"""Runs gdb with the command line given by *args. """Runs gdb with the command line given by *args.
Returns its stdout, stderr Returns its stdout, stderr
""" """
if env_vars:
env = os.environ.copy()
env.update(env_vars)
else:
env = None
out, err = subprocess.Popen( out, err = subprocess.Popen(
args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env
).communicate() ).communicate()
return out, err return out, err
...@@ -124,7 +129,7 @@ class DebuggerTests(unittest.TestCase): ...@@ -124,7 +129,7 @@ class DebuggerTests(unittest.TestCase):
# print ' '.join(args) # print ' '.join(args)
# Use "args" to invoke gdb, capturing stdout, stderr: # Use "args" to invoke gdb, capturing stdout, stderr:
out, err = self.run_gdb(*args) out, err = self.run_gdb(*args, PYTHONHASHSEED='0')
# Ignore some noise on stderr due to the pending breakpoint: # Ignore some noise on stderr due to the pending breakpoint:
err = err.replace('Function "%s" not defined.\n' % breakpoint, '') err = err.replace('Function "%s" not defined.\n' % breakpoint, '')
...@@ -213,7 +218,7 @@ class PrettyPrintTests(DebuggerTests): ...@@ -213,7 +218,7 @@ class PrettyPrintTests(DebuggerTests):
'Verify the pretty-printing of dictionaries' 'Verify the pretty-printing of dictionaries'
self.assertGdbRepr({}) self.assertGdbRepr({})
self.assertGdbRepr({'foo': 'bar'}) self.assertGdbRepr({'foo': 'bar'})
self.assertGdbRepr({'foo': 'bar', 'douglas':42}) self.assertGdbRepr("{'foo': 'bar', 'douglas':42}")
def test_lists(self): def test_lists(self):
'Verify the pretty-printing of lists' 'Verify the pretty-printing of lists'
...@@ -273,8 +278,8 @@ print s''') ...@@ -273,8 +278,8 @@ print s''')
def test_frozensets(self): def test_frozensets(self):
'Verify the pretty-printing of frozensets' 'Verify the pretty-printing of frozensets'
self.assertGdbRepr(frozenset()) self.assertGdbRepr(frozenset())
self.assertGdbRepr(frozenset(['a', 'b'])) self.assertGdbRepr("frozenset(['a', 'b'])")
self.assertGdbRepr(frozenset([4, 5, 6])) self.assertGdbRepr("frozenset([4, 5, 6])")
def test_exceptions(self): def test_exceptions(self):
# Test a RuntimeError # Test a RuntimeError
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment