summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2015-09-02 21:12:14 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2015-09-02 21:12:14 (GMT)
commit2f3ac1ea76c5405d18ea5214ae4c795648dc47de (patch)
treedd60285e3b1670a26de9d89e5700c50e17b407dc /Lib
parent5492d358e46b484f28a8412817f7366227e639bf (diff)
downloadcpython-2f3ac1ea76c5405d18ea5214ae4c795648dc47de.zip
cpython-2f3ac1ea76c5405d18ea5214ae4c795648dc47de.tar.gz
cpython-2f3ac1ea76c5405d18ea5214ae4c795648dc47de.tar.bz2
test_gdb: fix regex to parse gdb version for SUSE Linux Entreprise
Mention also the detected GDB version on verbose mode and on error (if the major version is smaller than 7).
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_gdb.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py
index c57875c..9884f19 100644
--- a/Lib/test/test_gdb.py
+++ b/Lib/test/test_gdb.py
@@ -28,12 +28,19 @@ except OSError:
# This is what "no gdb" looks like. There may, however, be other
# errors that manifest this way too.
raise unittest.SkipTest("Couldn't find gdb on the path")
-gdb_version_number = re.search(b"^GNU gdb [^\d]*(\d+)\.(\d)", gdb_version)
+# Regex to parse:
+# 'GNU gdb (GDB; SUSE Linux Enterprise 12) 7.7\n' -> 7.7
+# 'GNU gdb (GDB) Fedora 7.9.1-17.fc22\n' -> 7.9
+gdb_version_number = re.search(b"^GNU gdb .*? (\d+)\.(\d)", gdb_version)
+if not gdb_version_number:
+ raise Exception("unable to parse GDB version: %a" % gdb_version)
gdb_major_version = int(gdb_version_number.group(1))
gdb_minor_version = int(gdb_version_number.group(2))
if gdb_major_version < 7:
- raise unittest.SkipTest("gdb versions before 7.0 didn't support python embedding"
- " Saw:\n" + gdb_version.decode('ascii', 'replace'))
+ raise unittest.SkipTest("gdb versions before 7.0 didn't support python "
+ "embedding. Saw %s.%s:\n%s"
+ % (gdb_major_version, gdb_minor_version,
+ gdb_version.decode('ascii', 'replace')))
if not sysconfig.is_python_build():
raise unittest.SkipTest("test_gdb only works on source builds at the moment.")
@@ -878,7 +885,7 @@ class PyLocalsTests(DebuggerTests):
def test_main():
if support.verbose:
- print("GDB version:")
+ print("GDB version %s.%s:" % (gdb_major_version, gdb_minor_version))
for line in os.fsdecode(gdb_version).splitlines():
print(" " * 4 + line)
run_unittest(PrettyPrintTests,