summaryrefslogtreecommitdiffstats
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
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).
-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,