llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-lldb

Author: Igor Kudrin (igorkudrin)

<details>
<summary>Changes</summary>

When debug info categories were set for a test method with the `@<!-- 
-->add_test_categories` decorator, they were all added to its "categories" 
attribute. If some of these categories were not supported, 
`LLDBTestResult.startTest()` skipped all variants of the test method.

For example, the tests in `TestWithLimitDebugInfo.py` use the categories 
`dwarf` and `dwo`. However, since `dwo` is not supported on Windows, all the 
tests in this file were skipped, even though the tests for `dwarf` could be run.

---
Full diff: https://github.com/llvm/llvm-project/pull/150579.diff


2 Files Affected:

- (modified) lldb/packages/Python/lldbsuite/test/decorators.py (+16) 
- (modified) lldb/packages/Python/lldbsuite/test/lldbtest.py (+1) 


``````````diff
diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py 
b/lldb/packages/Python/lldbsuite/test/decorators.py
index a5f58373ede75..72c79520773b4 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -431,6 +431,22 @@ def impl(func):
     return impl
 
 
+def remove_test_categories(remove_categories):
+    """Remove test categories from a TestCase method"""
+
+    def impl(func):
+        try:
+            if hasattr(func, "categories"):
+                updated = [c for c in func.categories if c not in 
remove_categories]
+                setattr(func, "categories", updated)
+        except AttributeError:
+            raise Exception("Cannot assign categories to inline tests.")
+
+        return func
+
+    return impl
+
+
 def no_debug_info_test(func):
     """Decorate the item as a test what don't use any debug info. If this 
annotation is specified
     then the test runner won't generate a separate test for each debug info 
format."""
diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py 
b/lldb/packages/Python/lldbsuite/test/lldbtest.py
index 63fadb59a82a1..48cef199737e2 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -1799,6 +1799,7 @@ def no_reason(_):
                 for cat in categories:
 
                     @decorators.add_test_categories([cat])
+                    @decorators.remove_test_categories(categories)
                     @wraps(attrvalue)
                     def test_method(self, attrvalue=attrvalue):
                         return attrvalue(self)

``````````

</details>


https://github.com/llvm/llvm-project/pull/150579
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to