[Python-checkins] cpython (3.4): test_gdb: fix regex to parse gdb version for SUSE Linux Entreprise

victor.stinner python-checkins at python.org
Wed Sep 2 23:23:44 CEST 2015


https://hg.python.org/cpython/rev/6c5e99105264
changeset:   97590:6c5e99105264
branch:      3.4
parent:      97577:d65d3222538d
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Wed Sep 02 23:12:14 2015 +0200
summary:
  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).

files:
  Lib/test/test_gdb.py |  15 +++++++++++----
  1 files changed, 11 insertions(+), 4 deletions(-)


diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py
--- a/Lib/test/test_gdb.py
+++ b/Lib/test/test_gdb.py
@@ -28,12 +28,19 @@
     # 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 @@
 
 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,

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list