Skip to content

Commit 4abee04

Browse files
kendalharlandkendal
andcommitted
[lldb][test] Mark gtest cases as XFAIL if the test suite is XFAIL (llvm#102986)
When a test case inside of a gtest suite fails, we report a failure which causes the entire `ninja check-lldb` invocation to fail, even if the outer test case is marked as XFAIL - each test case result is reported as its own lit test run. This PR updates lit so it checks whether each test case's parent test suite is XFAIL before setting the status to FAIL. This is especially problematic because the failing tests can't manually be marked as XFAIL, due to llvm#102264. Fixes llvm#102265 ### Repro instructions 1. Modify any gtest test case to generate a failure. 2. Mark the outer lit test with XFAIL using either `--xfail-tests` flag or `LIT_XFAIL` env var. 3. Run the tests 4. Observe the lit test is XFAIL as expected, but the failed child test cases show up as separate failures. Co-authored-by: kendal <[email protected]> (cherry picked from commit 9f89d31)
1 parent b02ca46 commit 4abee04

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

llvm/utils/lit/lit/formats/googletest.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,11 @@ def remove_gtest(tests):
301301
returnCode = lit.Test.SKIPPED
302302
elif "failures" in testinfo:
303303
has_failure_in_shard = True
304-
returnCode = lit.Test.FAIL
304+
returnCode = (
305+
lit.Test.XFAIL
306+
if test.isExpectedToFail()
307+
else lit.Test.FAIL
308+
)
305309
output = header
306310
for fail in testinfo["failures"]:
307311
output += fail["failure"] + "\n"

0 commit comments

Comments
 (0)