from pathlib import Path
import tempfile,subprocess,shutil
repo=Path.cwd()
with tempfile.TemporaryDirectory(prefix='nav-ack-negative-') as d:
 root=Path(d)
 for part in ('firmware/tests','boards/m5stack_stopwatch','boards/common/include','.cache'): (root/part).mkdir(parents=True)
 for n in ('run_navigator_input_test.py','navigator_input_test.cpp'): shutil.copy(repo/'firmware/tests'/n,root/'firmware/tests'/n)
 shutil.copytree(repo/'boards/common/include',root/'boards/common/include',dirs_exist_ok=True)
 (root/'boards/m5stack_stopwatch/board.cpp').write_bytes(subprocess.check_output(['git','show','54e987a:boards/m5stack_stopwatch/board.cpp'],cwd=repo))
 (root/'.cache/esp-idf-v5.5.4').symlink_to(repo/'.cache/esp-idf-v5.5.4')
 result=subprocess.run(['python3',str(root/'firmware/tests/run_navigator_input_test.py')],capture_output=True,text=True)
 assert result.returncode!=0 and 's_input_modal==InputModal::SETTINGS' in result.stderr,result.stderr
 print('Negative control PASS: new physical regression fails original 54e987a at generation-zero periodic snapshot')
