|
|
|
@ -10,21 +10,21 @@ if __name__ == "__main__": |
|
|
|
|
formatter_class=argparse.ArgumentDefaultsHelpFormatter) |
|
|
|
|
parser.add_argument("--fingerprint", help="The fingerprint to use") |
|
|
|
|
parser.add_argument("route", help="The route name to use") |
|
|
|
|
parser.add_argument("process", help="The process to run") |
|
|
|
|
parser.add_argument("process", nargs='+', help="The process(s) to run") |
|
|
|
|
args = parser.parse_args() |
|
|
|
|
|
|
|
|
|
cfg = [c for c in CONFIGS if c.proc_name == args.process][0] |
|
|
|
|
cfgs = [c for c in CONFIGS if c.proc_name in args.process] |
|
|
|
|
|
|
|
|
|
lr = LogReader(args.route) |
|
|
|
|
inputs = list(lr) |
|
|
|
|
|
|
|
|
|
outputs = replay_process(cfg, inputs, fingerprint=args.fingerprint) |
|
|
|
|
outputs = replay_process(cfgs, inputs, fingerprint=args.fingerprint) |
|
|
|
|
|
|
|
|
|
# Remove message generated by the process under test and merge in the new messages |
|
|
|
|
produces = {o.which() for o in outputs} |
|
|
|
|
inputs = [i for i in inputs if i.which() not in produces] |
|
|
|
|
outputs = sorted(inputs + outputs, key=lambda x: x.logMonoTime) |
|
|
|
|
|
|
|
|
|
fn = f"{args.route.replace('/', '_')}_{args.process}.zst" |
|
|
|
|
fn = f"{args.route.replace('/', '_')}_{'_'.join(args.process)}.zst" |
|
|
|
|
print(f"Saving log to {fn}") |
|
|
|
|
save_log(fn, outputs) |
|
|
|
|