19 lines
1.1 KiB
Python
19 lines
1.1 KiB
Python
"""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)
|