@@ -226,20 +226,17 @@ def remove_gtest(tests):
226
226
discovered_tests = remove_gtest (discovered_tests )
227
227
gtests = [t for t in selected_tests if t .gtest_json_file ]
228
228
selected_tests = remove_gtest (selected_tests )
229
- has_failure = False
230
229
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.
233
231
if not os .path .exists (test .gtest_json_file ):
234
232
selected_tests .append (test )
235
233
discovered_tests .append (test )
236
234
continue
237
235
238
- if test .isFailure ():
239
- has_failure = True
240
-
241
236
start_time = test .result .start or 0.0
242
237
238
+ has_failure_in_shard = False
239
+
243
240
# Load json file to retrieve results.
244
241
with open (test .gtest_json_file , encoding = 'utf-8' ) as f :
245
242
testsuites = json .load (f )['testsuites' ]
@@ -262,6 +259,7 @@ def remove_gtest(tests):
262
259
if testinfo ['result' ] == 'SKIPPED' :
263
260
returnCode = lit .Test .SKIPPED
264
261
elif 'failures' in testinfo :
262
+ has_failure_in_shard = True
265
263
returnCode = lit .Test .FAIL
266
264
output = header
267
265
for fail in testinfo ['failures' ]:
@@ -283,4 +281,8 @@ def remove_gtest(tests):
283
281
discovered_tests .append (subtest )
284
282
os .remove (test .gtest_json_file )
285
283
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
0 commit comments