From 00b2a9c9da40ef17c7645bc6cb1a7614cda1aac5 Mon Sep 17 00:00:00 2001 From: OCHyams 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