[lldb/test] Clean up version checking.
authorJordan Rupprecht <rupprecht@google.com>
Mon, 21 Sep 2020 23:19:28 +0000 (16:19 -0700)
committerJordan Rupprecht <rupprecht@google.com>
Mon, 21 Sep 2020 23:19:28 +0000 (16:19 -0700)
A few fixes while trying to figure out why tests are being skipped for arsenm:

- We check `$compiler -v`, but `-v` is `--verbose`, not `--version`. Use the long flag name.
- We check all lines matching `version ...`, but we should exit early for the first version string we see (which should be the main one). I'm not sure if this is the issue, but perhaps this is causing some users to skip some tests if another "version ..." is showing up later.
- Having `\.` in a python string is triggering pylint warnings, because it should be escaped as a regex string, e.g. `r'\.' However, `.` in a character class does not need to be escaped, as it matches only a literal `.` in that context.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D88051

lldb/packages/Python/lldbsuite/test/lldbtest.py

index 73faa2a..2ee8229 100644 (file)
@@ -1364,15 +1364,13 @@ class Base(unittest2.TestCase):
         """ Returns a string that represents the compiler version.
             Supports: llvm, clang.
         """
-        version = 'unknown'
-
         compiler = self.getCompilerBinary()
-        version_output = system([[compiler, "-v"]])
+        version_output = system([[compiler, "--version"]])
         for line in version_output.split(os.linesep):
-            m = re.search('version ([0-9\.]+)', line)
+            m = re.search('version ([0-9.]+)', line)
             if m:
-                version = m.group(1)
-        return version
+                return m.group(1)
+        return 'unknown'
 
     def getDwarfVersion(self):
         """ Returns the dwarf version generated by clang or '0'. """