[Lldb-commits] [lldb] 1dbac09 - [lldb/test] Support git commit version ids for clang.
Jordan Rupprecht via lldb-commits
lldb-commits at lists.llvm.org
Wed Aug 5 13:17:16 PDT 2020
Author: Jordan Rupprecht
Date: 2020-08-05T13:16:01-07:00
New Revision: 1dbac09dd6ec8587ae7e16ed669bf73889a21957
URL: https://github.com/llvm/llvm-project/commit/1dbac09dd6ec8587ae7e16ed669bf73889a21957
DIFF: https://github.com/llvm/llvm-project/commit/1dbac09dd6ec8587ae7e16ed669bf73889a21957.diff
LOG: [lldb/test] Support git commit version ids for clang.
`getCompilerVersion` assumes that `clang --version` prints out a string like `version [0-9\.]+`.
If clang is built from trunk, the version line might look like `clang version trunk (123abc)`.
Since there isn't any way of knowing by the commit id alone whether one commit is newer or older than another git commit (or clang version), assume that clang with a version id like this is very close to trunk. For example, any tests with `@skipIf(compiler="clang", compiler_version=['<', '8'])` should be run.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D85248
Added:
Modified:
lldb/packages/Python/lldbsuite/test/lldbtest.py
Removed:
################################################################################
diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py
index 8823112a6e20..cc651e5b061d 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -1325,25 +1325,35 @@ def expectedCompilerVersion(self, compiler_version):
Use compiler_version[0] to specify the operator used to determine if a match has occurred.
Any operator other than the following defaults to an equality test:
'>', '>=', "=>", '<', '<=', '=<', '!=', "!" or 'not'
+
+ If the current compiler version cannot be determined, we assume it is close to the top
+ of trunk, so any less-than or equal-to comparisons will return False, and any
+ greater-than or not-equal-to comparisons will return True.
"""
- if (compiler_version is None):
+ if compiler_version is None:
return True
operator = str(compiler_version[0])
version = compiler_version[1]
- if (version is None):
+ if version is None:
return True
- if (operator == '>'):
- return LooseVersion(self.getCompilerVersion()) > LooseVersion(version)
- if (operator == '>=' or operator == '=>'):
- return LooseVersion(self.getCompilerVersion()) >= LooseVersion(version)
- if (operator == '<'):
- return LooseVersion(self.getCompilerVersion()) < LooseVersion(version)
- if (operator == '<=' or operator == '=<'):
- return LooseVersion(self.getCompilerVersion()) <= LooseVersion(version)
- if (operator == '!=' or operator == '!' or operator == 'not'):
- return str(version) not in str(self.getCompilerVersion())
- return str(version) in str(self.getCompilerVersion())
+
+ test_compiler_version = self.getCompilerVersion()
+ if test_compiler_version == 'unknown':
+ # Assume the compiler version is at or near the top of trunk.
+ return operator in ['>', '>=', '!', '!=', 'not']
+
+ if operator == '>':
+ return LooseVersion(test_compiler_version) > LooseVersion(version)
+ if operator == '>=' or operator == '=>':
+ return LooseVersion(test_compiler_version) >= LooseVersion(version)
+ if operator == '<':
+ return LooseVersion(test_compiler_version) < LooseVersion(version)
+ if operator == '<=' or operator == '=<':
+ return LooseVersion(test_compiler_version) <= LooseVersion(version)
+ if operator == '!=' or operator == '!' or operator == 'not':
+ return str(version) not in str(test_compiler_version)
+ return str(version) in str(test_compiler_version)
def expectedCompiler(self, compilers):
"""Returns True iff any element of compilers is a sub-string of the current compiler."""
More information about the lldb-commits
mailing list