@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
REM setup all paths
PUSHD %~dp0\..\..\..
SET WORKSPACE=%CD%
POPD
cd %WORKSPACE%\kodi-build.%TARGET_PLATFORM%
REM read the version values from version.txt
FOR /f "tokens=1,2" %%i IN (%WORKSPACE%\version.txt) DO IF "%%i" == "APP_NAME" SET APP_NAME=%%j
CLS
COLOR 1B
TITLE %APP_NAME% testsuite Build-/Runscript
rem -------------------------------------------------------------
rem CONFIG START
SET exitcode=0
SET useshell=sh
SET buildconfig=Release
SET PreferredToolArchitecture=x64
rem CONFIG END
rem -------------------------------------------------------------
echo Building %buildconfig%
IF EXIST buildlog.html del buildlog.html /q
ECHO Compiling testsuite...
cmake.exe --build . --config "%buildconfig%" --target %APP_NAME%-test
IF %errorlevel%==1 (
set DIETEXT="%APP_NAME%-test.exe failed to build! See %CD%\..\vs2010express\XBMC\%buildconfig%\objs\XBMC.log"
type "%CD%\..\vs2010express\XBMC\%buildconfig%\objs\XBMC.log"
goto DIE
)
ECHO Done building!
ECHO ------------------------------------------------------------
:RUNTESTSUITE
ECHO Running testsuite...
"%buildconfig%\%APP_NAME%-test.exe" --gtest_output=xml:%WORKSPACE%\gtestresults.xml
rem Adapt gtest xml output to be conform with junit xml
rem this basically looks for lines which have "notrun" in the tag
rem and adds a subtag into it. For example:
rem
rem becomes
rem
@PowerShell "(GC %WORKSPACE%\gtestresults.xml)|%%{$_ -Replace '()','$1$2$3>'}|SC %WORKSPACE%\gtestresults-skipped.xml"
del %WORKSPACE%\gtestresults.xml
move %WORKSPACE%\gtestresults-skipped.xml %WORKSPACE%\gtestresults.xml
ECHO Done running testsuite!
ECHO ------------------------------------------------------------
GOTO END
:DIE
ECHO ------------------------------------------------------------
ECHO !-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-
ECHO ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR
ECHO !-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-
set DIETEXT=ERROR: %DIETEXT%
echo %DIETEXT%
SET exitcode=1
ECHO ------------------------------------------------------------
:END
EXIT /B %exitcode%