#!/usr/bin/env python3 import os import re import subprocess import sys os.chdir(os.path.dirname(os.path.realpath(sys.argv[0]))) os.chdir("../application-ooni") os.environ['PYTHONUNBUFFERED'] = '1' subprocess.run(["cargo", "bench", "-p", "ooniauth-core"]) proc = subprocess.Popen(["python3", "scripts/criterion_extract.py"], stdout=subprocess.PIPE, text=True) timings = {} for line in proc.stdout: line = line.rstrip() if matches := re.match(r'(client|server)_(reg|submit|update)\s+([\d\.]+)\s+([\d\.]+)', line): timings[f"{matches.group(1)}_{matches.group(2)}"] = f"{matches.group(3)} ({matches.group(4)})" else: print(f"Unparsable line: {line}") print("\n=== Table 3 ===\n") print("protocol,client native ms,server native ms") print(f"Registration,{timings['client_reg']},{timings['server_reg']}") print(f"Submit,{timings['client_submit']},{timings['server_submit']}") print(f"Update,{timings['client_update']},{timings['server_update']}")