from pathlib import Path
import subprocess
R=Path(__file__).resolve().parent;D=R/'firmware/固件';O=R/'host_test';O.mkdir(exist_ok=True)
flags=['cc','-std=c11','-Wall','-Wextra','-Werror','-pedantic','-fsanitize=address,undefined','-g']
tasks=[('output_lock',[D/'vacuum_target/test/test_vacuum_output_lock.c',D/'vacuum_target/src/vacuum_output_lock.c']),('telemetry',[D/'vacuum_target/test/test_vacuum_telemetry.c',D/'vacuum_target/src/vacuum_telemetry.c']),('fan_manager',[D/'vacuum_control/test_fan_manager.c',D/'vacuum_control/fan_manager.c'])];logs=[]
for n,src in tasks:
 exe=O/n;subprocess.run(flags+[str(x) for x in src]+['-o',str(exe)],check=True)
 x=subprocess.run([str(exe)],capture_output=True,text=True,check=True);print(x.stdout,end='');logs.append(x.stdout)
(R/'regressions.log').write_text(''.join(logs))
