[Lldb-commits] [lldb] r326552 - [testsuite] Remove workaround for categories and inline tests.

Vedant Kumar via lldb-commits lldb-commits at lists.llvm.org
Fri Mar 2 11:12:18 PST 2018


Thanks for taking care of this!

vedant

> On Mar 2, 2018, at 2:38 AM, Jonas Devlieghere via lldb-commits <lldb-commits at lists.llvm.org> wrote:
> 
> Author: jdevlieghere
> Date: Fri Mar  2 02:38:11 2018
> New Revision: 326552
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=326552&view=rev
> Log:
> [testsuite] Remove workaround for categories and inline tests.
> 
> Adding categories to inline tests does not work because the attribute
> is set at the function level. For methods, this means it applies to all
> instances of that particular class. While this is what we want in most
> cases, it's not for inline tests, where different instances correspond
> to different tests.
> 
> With the workaround in place, assigning a category to one test resulted
> in the category applied to *all* inline tests.
> 
> This patch removes the workaround and throws an exception with an
> informative error message, to prevent this from happening in the future.
> 
> Modified:
>    lldb/trunk/packages/Python/lldbsuite/test/decorators.py
> 
> Modified: lldb/trunk/packages/Python/lldbsuite/test/decorators.py
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/decorators.py?rev=326552&r1=326551&r2=326552&view=diff
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/decorators.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/decorators.py Fri Mar  2 02:38:11 2018
> @@ -304,15 +304,12 @@ def add_test_categories(cat):
>         if isinstance(func, type) and issubclass(func, unittest2.TestCase):
>             raise Exception(
>                 "@add_test_categories can only be used to decorate a test method")
> -
> -        # Update or set the categories attribute. For instance methods, the
> -        # attribute must be set on the actual function.
> -        func_for_attr = func
> -        if inspect.ismethod(func_for_attr):
> -            func_for_attr = func.__func__
> -        if hasattr(func_for_attr, "categories"):
> -            cat.extend(func_for_attr.categories)
> -        setattr(func_for_attr, "categories", cat)
> +        try:
> +            if hasattr(func, "categories"):
> +                cat.extend(func.categories)
> +            setattr(func, "categories", cat)
> +        except AttributeError:
> +            raise Exception('Cannot assign categories to inline tests.')
> 
>         return func
> 
> 
> 
> _______________________________________________
> 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