Commit cb6c5f7d authored by Robert Bradshaw's avatar Robert Bradshaw

Skip gdb if Python compiled with gdb not >= 2.5.

parent ab629168
...@@ -166,15 +166,27 @@ class GdbDebuggerTestCase(DebuggerTestCase): ...@@ -166,15 +166,27 @@ class GdbDebuggerTestCase(DebuggerTestCase):
p.wait() p.wait()
p.stdout.close() p.stdout.close()
if have_gdb:
python_version_script = tempfile.NamedTemporaryFile()
python_version_script.write('python import sys; print sys.version_info\n')
python_version_script.flush()
p = subprocess.Popen(['gdb', '-batch', '-x', python_version_script.name],
stdout=subprocess.PIPE)
python_version = p.stdout.read().decode('ascii')
p.wait()
python_version_number = [int(a.strip()) for a in python_version.strip('()').split(',')[:3]]
if have_gdb: if have_gdb:
# Based on Lib/test/test_gdb.py # Based on Lib/test/test_gdb.py
regex = "^GNU gdb [^\d]*(\d+)\.(\d+)" regex = "^GNU gdb [^\d]*(\d+)\.(\d+)"
gdb_version_number = re.search(regex, gdb_version).groups() gdb_version_number = re.search(regex, gdb_version).groups()
# Be Python 3 compatible # Be Python 3 compatible
if not have_gdb or list(map(int, gdb_version_number)) < [7, 2]: if (not have_gdb
or list(map(int, gdb_version_number)) < [7, 2]
or python_version_number < [2, 5]):
self.p = None self.p = None
warnings.warn('Skipping gdb tests, need gdb >= 7.2') warnings.warn('Skipping gdb tests, need gdb >= 7.2 with Python >= 2.5')
else: else:
self.p = subprocess.Popen( self.p = subprocess.Popen(
args, args,
......
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