[Lldb-commits] [lldb] [lldb][test] Fix running TestWithLimitDebugInfo.py on Windows (PR #150579)
Igor Kudrin via lldb-commits
lldb-commits at lists.llvm.org
Fri Jul 25 15:54:24 PDT 2025
https://github.com/igorkudrin updated https://github.com/llvm/llvm-project/pull/150579
>From f687e98f005544a4a9c7dad38579f5f91573a6ed Mon Sep 17 00:00:00 2001
From: Igor Kudrin <ikudrin at accesssoftek.com>
Date: Thu, 24 Jul 2025 23:46:37 -0700
Subject: [PATCH] [lldb][test] Fix running TestWithLimitDebugInfo.py on Windows
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.
---
.../Python/lldbsuite/test/lldbtest.py | 24 +++++++++++--------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py
index 63fadb59a82a1..9f2566ffe183e 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -1775,16 +1775,20 @@ def no_reason(_):
attrvalue, "__no_debug_info_test__", False
):
# If any debug info categories were explicitly tagged, assume that list to be
- # authoritative. If none were specified, try with all debug
- # info formats.
- all_dbginfo_categories = set(
+ # authoritative. If none were specified, try with all debug info formats.
+ test_method_categories = getattr(attrvalue, "categories", [])
+ dbginfo_categories = set(test_method_categories) & set(
test_categories.debug_info_categories.keys()
)
- categories = (
- set(getattr(attrvalue, "categories", [])) & all_dbginfo_categories
- )
- if not categories:
- categories = [
+ if dbginfo_categories:
+ other_categories = [
+ category
+ for category in test_method_categories
+ if category not in dbginfo_categories
+ ]
+ else:
+ other_categories = test_method_categories
+ dbginfo_categories = [
category
for category, can_replicate in test_categories.debug_info_categories.items()
if can_replicate
@@ -1796,9 +1800,8 @@ def no_reason(_):
skip_for_debug_info_cat_fn = getattr(
attrvalue, "__skip_for_debug_info_cat_fn__", no_reason
)
- for cat in categories:
+ for cat in dbginfo_categories:
- @decorators.add_test_categories([cat])
@wraps(attrvalue)
def test_method(self, attrvalue=attrvalue):
return attrvalue(self)
@@ -1806,6 +1809,7 @@ def test_method(self, attrvalue=attrvalue):
method_name = attrname + "_" + cat
test_method.__name__ = method_name
test_method.debug_info = cat
+ test_method.categories = other_categories + [cat]
xfail_reason = xfail_for_debug_info_cat_fn(cat)
if xfail_reason:
More information about the lldb-commits
mailing list