[Lldb-commits] [lldb] r253683 - Make skipIf support the not_in function (second attempt).

Siva Chandra via lldb-commits lldb-commits at lists.llvm.org
Fri Nov 20 11:07:54 PST 2015


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 at 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 at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


More information about the lldb-commits mailing list