"""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)