from pathlib import Path
import subprocess
p=Path(__file__).resolve().parent;t=p/'firmware/固件/lamp_target';mut=p/'read_host_test/premature.c'
mut.write_text((t/'src/lamp_i2c_read.c').read_text().replace('r->state=LIR_WAIT_STOP;','r->state=LIR_DONE;r->valid=true;'))
exe=p/'read_host_test/premature'
subprocess.run(['cc','-std=c11','-Wall','-Wextra','-Werror','-fsanitize=address,undefined','-I'+str(p/'read_host_test'),'-I'+str(t/'include'),str(mut),str(p/'test_read.c'),'-o',str(exe)],check=True)
r=subprocess.run([str(exe)],capture_output=True,text=True)
assert r.returncode!=0,'premature publication unexpectedly passed'
print('PASS premature publication mutant rejected by unchanged test')
