Skip to content

Commit 6b02c53

Browse files
author
Yuanfang Chen
committed
[lit][unit] make sure to include failed shard in test summary report
For sanitizer only failures, the tests all pass but still need to put the shard in failed test summary.
1 parent 5e04432 commit 6b02c53

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

Diff for: llvm/utils/lit/lit/formats/googletest.py

+9-7
Original file line numberDiff line numberDiff line change
@@ -226,20 +226,17 @@ def remove_gtest(tests):
226226
discovered_tests = remove_gtest(discovered_tests)
227227
gtests = [t for t in selected_tests if t.gtest_json_file]
228228
selected_tests = remove_gtest(selected_tests)
229-
has_failure = False
230229
for test in gtests:
231-
# In case gtest has bugs such that no JSON file was emitted. Or, a selected
232-
# test is not found.
230+
# In case gtest has bugs such that no JSON file was emitted.
233231
if not os.path.exists(test.gtest_json_file):
234232
selected_tests.append(test)
235233
discovered_tests.append(test)
236234
continue
237235

238-
if test.isFailure():
239-
has_failure = True
240-
241236
start_time = test.result.start or 0.0
242237

238+
has_failure_in_shard = False
239+
243240
# Load json file to retrieve results.
244241
with open(test.gtest_json_file, encoding='utf-8') as f:
245242
testsuites = json.load(f)['testsuites']
@@ -262,6 +259,7 @@ def remove_gtest(tests):
262259
if testinfo['result'] == 'SKIPPED':
263260
returnCode = lit.Test.SKIPPED
264261
elif 'failures' in testinfo:
262+
has_failure_in_shard = True
265263
returnCode = lit.Test.FAIL
266264
output = header
267265
for fail in testinfo['failures']:
@@ -283,4 +281,8 @@ def remove_gtest(tests):
283281
discovered_tests.append(subtest)
284282
os.remove(test.gtest_json_file)
285283

286-
return selected_tests, discovered_tests, has_failure
284+
if not has_failure_in_shard and test.isFailure():
285+
selected_tests.append(test)
286+
discovered_tests.append(test)
287+
288+
return selected_tests, discovered_tests

Diff for: llvm/utils/lit/lit/main.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def main(builtin_params={}):
108108

109109
record_test_times(selected_tests, lit_config)
110110

111-
selected_tests, discovered_tests, has_failure = GoogleTest.post_process_shard_results(
111+
selected_tests, discovered_tests = GoogleTest.post_process_shard_results(
112112
selected_tests, discovered_tests)
113113

114114
if opts.time_tests:
@@ -127,7 +127,7 @@ def main(builtin_params={}):
127127
if lit_config.numWarnings:
128128
sys.stderr.write('\n%d warning(s) in tests\n' % lit_config.numWarnings)
129129

130-
has_failure = has_failure or any(t.isFailure() for t in discovered_tests)
130+
has_failure = any(t.isFailure() for t in discovered_tests)
131131
if has_failure:
132132
if opts.ignoreFail:
133133
sys.stderr.write("\nExiting with status 0 instead of 1 because "

0 commit comments

Comments
 (0)