diff options
author | Adrian McCarthy <amccarth@google.com> | 2015-11-20 18:14:24 +0000 |
---|---|---|
committer | Adrian McCarthy <amccarth@google.com> | 2015-11-20 18:14:24 +0000 |
commit | 4d5d1dd6d56b0fec5dee0270d4ee83bfae56d284 (patch) | |
tree | e47ea4dde7ba6aec16028873401cb8679c6b3402 /lldb/packages/Python/lldbsuite/test | |
parent | 3e49a7bc32fd1c1c6b6171620be2a2eded52b51d (diff) | |
download | bcm5719-llvm-4d5d1dd6d56b0fec5dee0270d4ee83bfae56d284.tar.gz bcm5719-llvm-4d5d1dd6d56b0fec5dee0270d4ee83bfae56d284.zip |
Make skipIf support the not_in function (second attempt).
llvm-svn: 253683
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/lldbtest.py | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index 2301616bbfc..8a35533e39c 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -648,11 +648,15 @@ def expectedFailure(expected_fn, bugnumber=None): def not_in (iterable): return lambda x : x not in iterable -def check_list_or_lambda (list_or_lambda, value): - if six.callable(list_or_lambda): - return list_or_lambda(value) - else: - return list_or_lambda is None or value is None or value in list_or_lambda +def check_decorator_attribute(attr, value):
+ if attr is None:
+ return True
+ if six.callable(attr):
+ return attr(value)
+ elif isinstance(attr, (list, tuple)):
+ return value in attr
+ else:
+ return value == attr # provide a function to xfail on defined oslist, compiler version, and archs # if none is specified for any argument, that argument won't be checked and thus means for all @@ -662,11 +666,11 @@ def check_list_or_lambda (list_or_lambda, value): # @expectedFailureAll(bugnumber, ["linux"], "gcc", ['>=', '4.9'], ['i386']), xfail for gcc>=4.9 on linux with i386 def expectedFailureAll(bugnumber=None, oslist=None, compiler=None, compiler_version=None, archs=None, triple=None, debug_info=None, swig_version=None, py_version=None): def fn(self): - oslist_passes = check_list_or_lambda(oslist, self.getPlatform()) - compiler_passes = check_list_or_lambda(self.getCompiler(), compiler) and self.expectedCompilerVersion(compiler_version) + oslist_passes = check_decorator_attribute(oslist, self.getPlatform()) + compiler_passes = check_decorator_attribute(self.getCompiler(), compiler) and self.expectedCompilerVersion(compiler_version) arch_passes = self.expectedArch(archs) triple_passes = triple is None or re.match(triple, lldb.DBG.GetSelectedPlatform().GetTriple()) - debug_info_passes = check_list_or_lambda(debug_info, self.debug_info) + debug_info_passes = check_decorator_attribute(debug_info, self.debug_info) swig_version_passes = (swig_version is None) or (not hasattr(lldb, 'swig_version')) or (check_expected_version(swig_version[0], swig_version[1], lldb.swig_version)) py_version_passes = (py_version is None) or check_expected_version(py_version[0], py_version[1], sys.version_info) @@ -1100,10 +1104,10 @@ def skipIfLinuxClang(func): # TODO: refactor current code, to make skipIfxxx functions to call this function def skipIf(bugnumber=None, oslist=None, compiler=None, compiler_version=None, archs=None, debug_info=None, swig_version=None, py_version=None): def fn(self): - oslist_passes = oslist is None or self.getPlatform() in oslist - compiler_passes = compiler is None or (compiler in self.getCompiler() and self.expectedCompilerVersion(compiler_version)) + oslist_passes = check_decorator_attribute(oslist, self.getPlatform()) + compiler_passes = check_decorator_attribute(compiler, self.getCompiler()) and self.expectedCompilerVersion(compiler_version) arch_passes = self.expectedArch(archs) - debug_info_passes = debug_info is None or self.debug_info in debug_info + debug_info_passes = check_decorator_attribute(debug_info, self.debug_info) swig_version_passes = (swig_version is None) or (not hasattr(lldb, 'swig_version')) or (check_expected_version(swig_version[0], swig_version[1], lldb.swig_version)) py_version_passes = (py_version is None) or check_expected_version(py_version[0], py_version[1], sys.version_info) |