78 lines
1.5 KiB
Batchfile
78 lines
1.5 KiB
Batchfile
REM
|
|
REM runtill target_move
|
|
REM
|
|
echo off
|
|
|
|
SETLOCAL ENABLEEXTENSIONS
|
|
SETLOCAL ENABLEDELAYEDEXPANSION
|
|
|
|
set TARGET_MOVE=%1
|
|
|
|
if %TARGET_MOVE% == "" (
|
|
echo Usage:runtill target_move
|
|
goto :eof
|
|
)
|
|
|
|
set BIN_DIR=..\..\..\..\bin\Debug\Win32
|
|
set SAVED_GAME=%USERNAME%-wizard.NetHack-saved-game
|
|
set LOG_FILE=%BIN_DIR%\runtil.log
|
|
set FUZZER_LOG=%BIN_DIR%\fuzzer.log
|
|
set FUZZER_DIR=%BIN_DIR%\fuzzer
|
|
set SAVE_DIR=%FUZZER_DIR%\save
|
|
set BASELINE=%FUZZER_DIR%\fuzzer.log
|
|
|
|
if not exist %FUZZER_DIR% mkdir %FUZZER_DIR%
|
|
if not exist %SAVE_DIR% mkdir %SAVE_DIR%
|
|
|
|
call clean.bat
|
|
|
|
if not exist %FUZZER_DIR%\%SAVED_GAME% (
|
|
%BIN_DIR%\nethack -D -F 0
|
|
|
|
copy %BIN_DIR%\%SAVED_GAME% %FUZZER_DIR%
|
|
copy %BIN_DIR%\%SAVED_GAME% %SAVE_DIR%\0.save
|
|
)
|
|
|
|
call restore.bat
|
|
|
|
%BIN_DIR%\nethack -D -F %TARGET_MOVE%
|
|
|
|
move %BIN_DIR%\*.snap %BIN_DIR%\snapshots
|
|
copy %FUZZER_LOG% %BASELINE%
|
|
|
|
for /f "tokens=2,3 delims=: usebackq" %%i in (`findstr /c:START %BASELINE%`) do (
|
|
set START_SEED=%%j
|
|
set START_MOVE=%%i
|
|
)
|
|
|
|
for /f "tokens=2,3 delims=: usebackq" %%i in (`findstr /c:STOP %BASELINE%`) do (
|
|
set STOP_SEED=%%j
|
|
set STOP_MOVE=%%i
|
|
)
|
|
|
|
if !STOP_MOVE! LSS %TARGET_MOVE% (
|
|
cls
|
|
echo FAILED: Failed to reach target move. !STOP_MOVE! is not GTE %TARGET_MOVE%.
|
|
exit /b 1
|
|
)
|
|
|
|
call restore.bat
|
|
|
|
%BIN_DIR%\nethack -D -F %TARGET_MOVE%
|
|
|
|
fc %FUZZER_LOG% %BASELINE%
|
|
|
|
if ERRORLEVEL 1 (
|
|
cls
|
|
echo FAILED: Unable to reproduce same timeline
|
|
exit /b 1
|
|
)
|
|
|
|
del /q %FUZZER_DIR%\%SAVED_GAME%
|
|
|
|
copy %BIN_DIR%\%SAVED_GAME% %FUZZER_DIR%
|
|
copy %BIN_DIR%\%SAVED_GAME% %SAVE_DIR%\!STOP_MOVE!.save
|
|
|
|
echo !START_MOVE! to !STOP_MOVE!.
|
|
echo SUCCESS.
|