"""Run production export and file-read helpers with deterministic user-mode doubles.""" from pathlib import Path import subprocess import tempfile root = Path(__file__).resolve().parents[1] source = (root / 'src/Domito.cpp').read_text(encoding='utf-8-sig') export_start = source.index('// This helper handles directory RVAs') export_end = source.index('_Success_', source.index('DomitoFindExportedFunctionAddress(') + 1) read_start = source.rfind('_Success_', 0, source.index('DomitoReadFileAt(')) read_end = source.index('_Success_', source.index('DomitoReadFile(') + 1) with tempfile.TemporaryDirectory(prefix='domito-common-tests-') as temp: build = Path(temp) (build / 'common-under-test.inc').write_text(source[export_start:export_end] + '\n' + source[read_start:read_end], encoding='utf-8') exe = build / 'common-tests.exe' subprocess.run(['cl', '/nologo', '/EHsc', '/W4', '/WX', '/std:c++17', '/I' + str(build), str(root / 'tests/common-tests.cpp'), '/Fe' + str(exe), '/Fo' + str(build / 'common-tests.obj')], cwd=build, check=True) subprocess.run([str(exe)], cwd=build, check=True)