From 00b2a9c9da40ef17c7645bc6cb1a7614cda1aac5 Mon Sep 17 00:00:00 2001
From: OCHyams <orlando.hyams@sony.com>
Date: Wed, 9 Feb 2022 11:32:29 +0000
Subject: [PATCH] [cross-project-tests] Make GDB version string parsing more
 robust

Follow up to D118468 (5257efdc5b30212b62a9d68857dc8e66d0e1a863).

When built from source, gdb's version string looks like this:

    GNU gdb (GDB) 9.2
    ...

But for installed versions it looks different. E.g.

    GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2
    ...

Use a regex rather than str.parition in the version string parsing in order to
handle this case too.
---
 cross-project-tests/lit.cfg.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/cross-project-tests/lit.cfg.py b/cross-project-tests/lit.cfg.py
index c4bb83dd1874..ffa208ffc3b9 100644
--- a/cross-project-tests/lit.cfg.py
+++ b/cross-project-tests/lit.cfg.py
@@ -216,11 +216,11 @@ def get_gdb_version_string():
   if len(gdb_vers_lines) < 1:
     print("Unkown GDB version format (too few lines)", file=sys.stderr)
     return None
-  string = gdb_vers_lines[0].strip().partition('GNU gdb (GDB) ')[2]
-  if len(string) == 0:
-    print("Unkown GDB version format", file=sys.stderr)
+  match = re.search('GNU gdb \(.*?\) ((\d|\.)+)', gdb_vers_lines[0].strip())
+  if match is None:
+    print(f"Unkown GDB version format: {gdb_vers_lines[0]}", file=sys.stderr)
     return None
-  return string
+  return match.group(1)
 
 def get_clang_default_dwarf_version_string(triple):
   """Return the default dwarf version string for clang on this (host) platform
-- 
GitLab