Convenient t1.bat to just do 1 input test case

This commit is contained in:
Geoff McLane 2015-09-18 17:10:53 +02:00
parent 55bb3fe0f0
commit 2c726cfa67
1 changed files with 168 additions and 0 deletions

168
test/t1.bat Normal file
View File

@ -0,0 +1,168 @@
@setlocal
@REM =================================================================
@REM A convenient run one test giving the number and expected exit
@REM
@REM This is to run just one, like "t1 1642186-1 0"
@REM
@REM Note it uses a relative path to the built exe file, and
@REM expects the ouput folder has to exist.
@REM
@REM Obviously you may want to adjust this file, like seen below to test
@REM different versions of tidy.exe...
@REM Rather than altering this file, which will be flagged by git,
@REM I copy it to say a temp1.bat, and modify that to suit my testing
@REM
@REM There is also an 'alltest.cmd' which runs some 227 tests that
@REM gets the case listed in 'testcases.txt' file.
@REM
@REM =================================================================
@REM setup the ENVIRONMENT
@set TIDY=..\build\cmake\Release\tidy.exe
@REM set TIDY=C:\MDOS\tidy5.exe
@REM set TIDY=C:\MDOS\tidydev02.exe
@set TIDYOUT=temp-02
@set TMPTEST=temptest1.txt
@if NOT EXIST %TIDYOUT%\nul goto NOOUT
@if NOT EXIST %TIDY% goto NOEXE
@REM Check user input
@if "%~1x" == "x" goto HELP
@if "%~2x" == "x" goto HELP
@set TMPFIL=input\in_%1.html
@set TMPCFG=input\cfg_%1.txt
@if NOT EXIST %TMPCFG% (
@set TMPCFG=input\cfg_default.txt
)
@if NOT EXIST %TMPFIL% goto NOFIL
@if NOT EXIST %TMPCFG% goto NOCFG
@echo Test 1 case %DATE% %TIME% > %TMPTEST%
@%TIDY% -v >> %TMPTEST%
@if ERRORLEVEL 1 goto NOTIDY
@echo.
@echo Doing '@call onetest.cmd %1 %2'
@echo Doing '@call onetest.cmd %1 %2' >> %TMPTEST%
@call onetest.cmd %1 %2
@echo See ouput in %TMPTEST%
@set TMPFIL1=testbase\out_%1.html
@set TMPOUT1=testbase\msg_%1.txt
@set TMPFIL2=%TIDYOUT%\out_%1.html
@set TMPOUT2=%TIDYOUT%\msg_%1.txt
@if NOT EXIST %TMPFIL1% goto NOFIL1
@if NOT EXIST %TMPFIL2% goto NOFIL1
@if NOT EXIST %TMPOUT1% goto NOFIL2
@if NOT EXIST %TMPOUT2% goto NOFIL2
@REM Compare the outputs, exactly
@set TMPOPTS=-ua
@set ERRCNT=0
@echo.
@echo Doing: '@diff %TMPOPTS% %TMPFIL1% %TMPFIL2%'
@diff %TMPOPTS% %TMPFIL1% %TMPFIL2%
@if ERRORLEVEL 1 goto GOTD1
@echo Files appear exactly the same...
@goto DODIF2
:GOTD1
@call :ISDIFF
@set /A ERRCNT+=1
:DODIF2
@echo.
@echo Doing: '@diff %TMPOPTS% %TMPOUT1% %TMPOUT2%'
@diff %TMPOPTS% %TMPOUT1% %TMPOUT2%
@if ERRORLEVEL 1 goto GOTD2
@echo Files appear exactly the same...
@goto DODIF3
:GOTD2
@call :ISDIFF
@set /A ERRCNT+=1
:DODIF3
@echo.
@if "%ERRCNT%x" == "0x" (
@echo Appears a successful test of %1 %2
) else (
@echo Carefully REVIEW the above differences on %1 %2! *** ACTION REQUIRED ***
)
@goto END
:ISDIFF
@echo.
@echo Check the above diff carefully. This may indicate a 'testbase', or
@echo a 'regression' in tidy output.
@echo.
@goto :EOF
:NOFIL1
@echo.
@echo Can NOT locate %TMPFIL1% or %TMPFIL2%
@echo needed for the compare... but this may not be a problem...
@echo Maybe there is no 'testbase' file for test %1!
@echo.
@goto END
:NOFIL2
@echo.
@echo Can NOT locate %TMPOUT1% or %TMPOUT2%
@echo needed for the compare... but this may not be a problem...
@echo but it is strange one or both were not created!!! *** NEEDS CHECKING ***
@echo.
@goto END
:NOEXE
@echo.
@echo Error: Unable to locate file '%TIDY%'! Has it been built? *** FIX ME ***
@echo.
@goto END
:NOTIDY
@echo.
@echo Error: Unable to run '%TIDY% -v' successfully! *** FIX ME ***
@echo.
@goto END
:NOOUT
@echo.
@echo Error: Can NOT locate %TIDYOUT%! This MUST be created!
@echo This script does NOT create any directories...
@echo.
@goto END
:NOFIL
@echo.
@dir input\*%1*
@echo.
@echo Error: Can NOT locate %TMPFIL%! Is number correct?
@echo.
@goto END
:NOCFG
@echo.
@echo Error: Can NOT locate %TMPCFG%!
@echo.
@goto END
:HELP
@echo.
@echo - Usage: %0 "value" "expected exit value"
@echo - That is give test number, and expected result, like
@echo - %0 1642186 1
@if "%~1x" == "x" goto HELP2
@echo - Missing expected value. See testcases.txt for list available...
:HELP2
@echo.
:END