I think this introduces more regressions while not addressing the original one: http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/8688
On Fri, Nov 20, 2015 at 10:14 AM, Adrian McCarthy via lldb-commits <lldb-commits@lists.llvm.org> wrote: > Author: amccarth > Date: Fri Nov 20 12:14:24 2015 > New Revision: 253683 > > URL: http://llvm.org/viewvc/llvm-project?rev=253683&view=rev > Log: > Make skipIf support the not_in function (second attempt). > > Modified: > lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py > > Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py?rev=253683&r1=253682&r2=253683&view=diff > ============================================================================== > --- lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py (original) > +++ lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py Fri Nov 20 12:14:24 > 2015 > @@ -648,11 +648,15 @@ def expectedFailure(expected_fn, bugnumb > 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 > # @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) > > > > _______________________________________________ > lldb-commits mailing list > lldb-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits