summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite')
-rw-r--r--lldb/packages/Python/lldbsuite/test/lldbtest.py10
-rw-r--r--lldb/packages/Python/lldbsuite/test/test_categories.py1
-rw-r--r--lldb/packages/Python/lldbsuite/test/test_result.py27
3 files changed, 20 insertions, 18 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py
index 77caab5f6f0..7fed0c47eea 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -509,12 +509,18 @@ def check_expected_version(comparison, expected, actual):
# Decorators for categorizing test cases.
#
from functools import wraps
+
def add_test_categories(cat):
- """Decorate an item with test categories"""
+ """Add test categories to a TestCase method"""
cat = test_categories.validate(cat, True)
def impl(func):
- func.getCategories = lambda test: 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)
+ func.categories = cat
return func
+
return impl
def benchmarks_test(func):
diff --git a/lldb/packages/Python/lldbsuite/test/test_categories.py b/lldb/packages/Python/lldbsuite/test/test_categories.py
index 4b6096ac81e..4f565e1decd 100644
--- a/lldb/packages/Python/lldbsuite/test/test_categories.py
+++ b/lldb/packages/Python/lldbsuite/test/test_categories.py
@@ -3,6 +3,7 @@ Provides definitions for various lldb test categories
"""
from __future__ import absolute_import
+from __future__ import print_function
# System modules
import sys
diff --git a/lldb/packages/Python/lldbsuite/test/test_result.py b/lldb/packages/Python/lldbsuite/test/test_result.py
index b1749ebcc3e..9665d672a79 100644
--- a/lldb/packages/Python/lldbsuite/test/test_result.py
+++ b/lldb/packages/Python/lldbsuite/test/test_result.py
@@ -97,22 +97,17 @@ class LLDBTestResult(unittest2.TextTestResult):
else:
return str(test)
- def getCategoriesForTest(self,test):
- if hasattr(test,"_testMethodName"):
- test_method = getattr(test,"_testMethodName")
- test_method = getattr(test,test_method)
- else:
- test_method = None
- if test_method != None and hasattr(test_method,"getCategories"):
- test_categories = test_method.getCategories(test)
- elif hasattr(test,"getCategories"):
- test_categories = test.getCategories()
- elif inspect.ismethod(test) and test.__self__ != None and hasattr(test.__self__,"getCategories"):
- test_categories = test.__self__.getCategories()
- else:
- test_categories = []
- if test_categories == None:
- test_categories = []
+ def getCategoriesForTest(self, test):
+ """
+ Gets all the categories for the currently running test method in test case
+ """
+ test_categories = []
+ test_method = getattr(test, test._testMethodName)
+ if test_method != None and hasattr(test_method, "categories"):
+ test_categories.extend(test_method.categories)
+
+ test_categories.extend(test.getCategories())
+
return test_categories
def hardMarkAsSkipped(self,test):
OpenPOWER on IntegriCloud