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
""" 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'. """