#!/bin/sh
set -eu
TASK_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
python3 - "$TASK_DIR" <<'CHECK'
from pathlib import Path
import sys,subprocess
r=Path(sys.argv[1]);t=r/'host_boot_test';d=r/'firmware/固件/drill_target';s=(d/'src/main.c').read_text();(t/'target_boot_translation_unit.c').write_text(s[:s.index('int main(void)')])
cmd=['cc','-std=c11','-Wall','-Wextra','-Werror','-I'+str(t),'-I'+str(d/'src')]
subprocess.run(cmd+[str(t/'test_boot.c'),str(d/'src/drill_safe_gpio.c'),str(t/'target_boot_translation_unit.c'),'-o',str(t/'test_boot')],check=True)
subprocess.run([str(t/'test_boot')],check=True)
subprocess.run(cmd+['-DNEGATIVE_CONTROL',str(t/'test_boot.c'),str(d/'src/drill_safe_gpio.c'),str(t/'old_boot.c'),'-o',str(t/'old_negative')],check=True)
p=subprocess.run([str(t/'old_negative')],capture_output=True,text=True)
assert p.returncode!=0
print('PASS: old A31 physical-pin negative control rejected')
CHECK
