@@ -392,30 +392,40 @@ def all_driver_stats_files(configs, args):
392
392
try :
393
393
with open (os .path .join (root , f )) as fp :
394
394
j = json .load (fp )
395
- yield (instance , m .group (1 ), j )
395
+ yield (config , instance , m .group (1 ), j )
396
396
except ValueError :
397
397
# Something sufficiently bad happened that
398
398
# we can't read the json: build a fake one.
399
- yield (instance , m .group (1 ), {})
399
+ yield (config , instance , m .group (1 ), {})
400
400
401
401
402
402
def find_module_statuses (configs , args ):
403
403
passed = set ()
404
404
failed = set ()
405
405
k = 'Driver.NumProcessFailures'
406
- instance_modules = {}
407
- instance_modules [OLD_INSTANCE ] = set ()
408
- instance_modules [NEW_INSTANCE ] = set ()
406
+ module_sets = {}
407
+ for config in configs :
408
+ module_sets [config ] = {}
409
+ module_sets [config ][OLD_INSTANCE ] = set ()
410
+ module_sets [config ][NEW_INSTANCE ] = set ()
409
411
410
- for (instance , module , j ) in all_driver_stats_files (configs , args ):
412
+ for (config , instance , module , j ) in all_driver_stats_files (configs , args ):
411
413
# Treat a module as failed if there was >0 process failures,
412
414
# or we can't tell, _or_ it's in one instance but not in the other.
413
- instance_modules [instance ].add (module )
415
+ module_sets [ config ] [instance ].add (module )
414
416
if j .get (k , 1 ) == 0 :
415
417
passed .add (module )
416
418
else :
417
419
failed .add (module )
418
- mismatched_modules = instance_modules [OLD_INSTANCE ].symmetric_difference (instance_modules [NEW_INSTANCE ])
420
+
421
+ mismatched_modules = None
422
+ for config in configs :
423
+ for instance in [OLD_INSTANCE , NEW_INSTANCE ]:
424
+ mods = module_sets [config ][instance ]
425
+ if mismatched_modules is None :
426
+ mismatched_modules = mods
427
+ else :
428
+ mismatched_modules .symmetric_difference_update (mods )
419
429
failed .update (mismatched_modules )
420
430
passed .difference_update (mismatched_modules )
421
431
return (passed , failed )
0 commit comments