JDevlieghere created this revision.
JDevlieghere added reviewers: vsk, davide, labath.
Herald added a subscriber: llvm-commits.

Inlined tests have a test function that is actually an instance method,
which requires a slightly different approach when it comes to setting
the category attribute. The attribute must be set on the actual
function, rather than on a particular instance.


Repository:
  rL LLVM

https://reviews.llvm.org/D43024

Files:
  lldb/packages/Python/lldbsuite/test/decorators.py


Index: lldb/packages/Python/lldbsuite/test/decorators.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/decorators.py
+++ lldb/packages/Python/lldbsuite/test/decorators.py
@@ -4,6 +4,7 @@
 # System modules
 from distutils.version import LooseVersion, StrictVersion
 from functools import wraps
+import inspect
 import os
 import platform
 import re
@@ -305,7 +306,11 @@
                 "@add_test_categories can only be used to decorate a test 
method")
         if hasattr(func, "categories"):
             cat.extend(func.categories)
-        func.categories = cat
+        # For instance methods, the attribute must be set on the actual 
function.
+        if inspect.ismethod(func):
+            func.__func__.categories = cat
+        else:
+            func.categories = cat
         return func
 
     return impl
@@ -518,7 +523,7 @@
                 'LLDB.h')
             if os.path.exists(header):
                 return None
-        
+
         header = os.path.join(
             os.environ["LLDB_SRC"],
             "include",


Index: lldb/packages/Python/lldbsuite/test/decorators.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/decorators.py
+++ lldb/packages/Python/lldbsuite/test/decorators.py
@@ -4,6 +4,7 @@
 # System modules
 from distutils.version import LooseVersion, StrictVersion
 from functools import wraps
+import inspect
 import os
 import platform
 import re
@@ -305,7 +306,11 @@
                 "@add_test_categories can only be used to decorate a test method")
         if hasattr(func, "categories"):
             cat.extend(func.categories)
-        func.categories = cat
+        # For instance methods, the attribute must be set on the actual function.
+        if inspect.ismethod(func):
+            func.__func__.categories = cat
+        else:
+            func.categories = cat
         return func
 
     return impl
@@ -518,7 +523,7 @@
                 'LLDB.h')
             if os.path.exists(header):
                 return None
-        
+
         header = os.path.join(
             os.environ["LLDB_SRC"],
             "include",
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to