From: Jonas Devlieghere Date: Wed, 7 Feb 2018 17:34:46 +0000 (+0000) Subject: [test] Don't drop existing categories for methods. X-Git-Tag: llvmorg-7.0.0-rc1~13446 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ea6fbd92d8a4913957de9b7f1799abdead64f9fc;p=platform%2Fupstream%2Fllvm.git [test] Don't drop existing categories for methods. The change in r324488 dropped the existing category attribute in for instance methods. This patch corrects that. Differential revision: https://reviews.llvm.org/D43024 llvm-svn: 324492 --- diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py index 4248c461c880..f0afa9aea849 100644 --- a/lldb/packages/Python/lldbsuite/test/decorators.py +++ b/lldb/packages/Python/lldbsuite/test/decorators.py @@ -304,13 +304,16 @@ 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") - if hasattr(func, "categories"): - cat.extend(func.categories) - # For instance methods, the attribute must be set on the actual function. - if inspect.ismethod(func): - func.__func__.categories = cat - else: - func.categories = cat + + # 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) + return func return impl