[Lldb-commits] [lldb] r253106 - Add a "not_in()" function you can apply to the list type arguments to expectedFailureAll to reverse

Ying Chen via lldb-commits lldb-commits at lists.llvm.org
Fri Nov 13 19:01:17 PST 2015


Hello Jim,

It seems this patch breaks the tests that are decorated by
expectedFailureAll.
http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/8441

I had a patch to fix it, could you help to review?
http://reviews.llvm.org/D14673

Thanks,
Ying

On Fri, Nov 13, 2015 at 4:20 PM, Jim Ingham via lldb-commits <
lldb-commits at lists.llvm.org> wrote:

> Author: jingham
> Date: Fri Nov 13 18:20:33 2015
> New Revision: 253106
>
> URL: http://llvm.org/viewvc/llvm-project?rev=253106&view=rev
> Log:
> Add a "not_in()" function you can apply to the list type arguments to
> expectedFailureAll to reverse
> the sense of the test.
>
> Modified:
>
> lldb/trunk/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py
>     lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py
>
> Modified:
> lldb/trunk/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py?rev=253106&r1=253105&r2=253106&view=diff
>
> ==============================================================================
> ---
> lldb/trunk/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py
> (original)
> +++
> lldb/trunk/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py
> Fri Nov 13 18:20:33 2015
> @@ -15,7 +15,7 @@ class ConsecutiveBreakpoitsTestCase(Test
>
>      mydir = TestBase.compute_mydir(__file__)
>
> -    @unittest2.expectedFailure("llvm.org/pr23478")
> +    @expectedFailureAll("llvm.org/pr23478", oslist = not_in(["macosx"]))
>      def test (self):
>          self.build ()
>          self.consecutive_breakpoints_tests()
>
> 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=253106&r1=253105&r2=253106&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py Fri Nov 13
> 18:20:33 2015
> @@ -620,13 +620,30 @@ def expectedFailure(expected_fn, bugnumb
>  # @expectedFailureAll, xfail for all platform/compiler/arch,
>  # @expectedFailureAll(compiler='gcc'), xfail for gcc on all
> platform/architecture
>  # @expectedFailureAll(bugnumber, ["linux"], "gcc", ['>=', '4.9'],
> ['i386']), xfail for gcc>=4.9 on linux with i386
> +
> +# You can also pass not_in(list) to reverse the sense of the test for the
> arguments that
> +# are simple lists, namely oslist, compiler and debug_info.
> +
> +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 in list_or_lambda
> +
>  def expectedFailureAll(bugnumber=None, oslist=None, compiler=None,
> compiler_version=None, archs=None, triple=None, debug_info=None):
>      def fn(self):
> -        return ((oslist is None or self.getPlatform() in oslist) and
> -                (compiler is None or (compiler in self.getCompiler() and
> self.expectedCompilerVersion(compiler_version))) and
> +        os_list_passes = check_list_or_lambda(oslist, self.getPlatform())
> +        compiler_passes = check_list_or_lambda(compiler,
> self.getCompiler()) and self.expectedCompilerVersion(compiler_version)
> +        debug_info_passes = check_list_or_lambda(debug_info,
> self.debug_info)
> +
> +        return (os_list_passes  and
> +                compiler_passes and
>                  self.expectedArch(archs) and
>                  (triple is None or re.match(triple,
> lldb.DBG.GetSelectedPlatform().GetTriple())) and
> -                (debug_info is None or self.debug_info in debug_info))
> +                debug_info_passes)
>      return expectedFailure(fn, bugnumber)
>
>  def expectedFailureDwarf(bugnumber=None):
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20151113/338c4690/attachment-0001.html>


More information about the lldb-commits mailing list