Skip to content

Commit

Permalink
Tell AppVeyor test results one-by-one.
Browse files Browse the repository at this point in the history
  • Loading branch information
ds14050 committed Oct 23, 2018
1 parent a198d13 commit 3a604f5
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 2 deletions.
6 changes: 4 additions & 2 deletions tests/run-tests.bat
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ set platform=%1
set configuration=%2
set ERROR_RESULT=0

set TEST_RESULT_FILTER=%~dp0test_result_filter_tell_AppVeyor.bat

pushd %~dp0
set BUILDDIR=build\%platform%
set BINARY_DIR=%BUILDDIR%\bin\%configuration%
Expand All @@ -12,8 +14,8 @@ for /r %%i in (tests*.exe) do (
@echo %%i --gtest_list_tests
%%i --gtest_list_tests || set ERROR_RESULT=1

@echo %%i
%%i || set ERROR_RESULT=1
@echo %%i |"%TEST_RESULT_FILTER%"
%%i |"%TEST_RESULT_FILTER%" || set ERROR_RESULT=1
)
popd
popd
Expand Down
52 changes: 52 additions & 0 deletions tests/test_result_filter_tell_AppVeyor.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
@echo off
setlocal ENABLEDELAYEDEXPANSION

set NL=^


::: Blank lines above are parts of the NL (New Line) definition. Do not compact them.

::: About `appveyor` command line program:
::: https://www.appveyor.com/docs/build-worker-api/
set AppVeyor=appveyor
where /Q "%AppVeyor%"
if errorlevel 1 (
set AppVeyor=
)

set fileName=
set testName=
set testMsg=
::: for each line read from stdin.
for /F "usebackq delims=" %%L in (`FINDSTR /B "^"`) do (
echo %%L

if not "%AppVeyor%" == "" (
for /F "tokens=1,2,3,5 delims=[]() " %%A in ("%%L") do (
if "%%A" == "----------" (
if not "%%D" == "" (
set fileName=%%D
)
) else if "%%A" == "RUN" (
set testName=%%B
set testMsg=
) else if "%%A" == "OK" (
if not "!testName!,!fileName!" == "," (
rem `start` does not wait for appveyor to return, so the main loop would not be suspended.
start "" "%AppVeyor%" AddTest !testName! -Framework xUnit -FileName !fileName! -Outcome Passed -Duration %%C -StdOut "!testMsg!"
)
) else if "%%A" == "FAILED" (
if not "!testName!,!fileName!" == "," (
rem `start` does not wait for appveyor to return, so the main loop would not be suspended.
start "" "%AppVeyor%" AddTest !testName! -Framework xUnit -FileName !fileName! -Outcome Failed -Duration %%C -ErrorMessage "!testMsg!"
)
) else if "%%A" == "PASSED" (
rem
) else if "%%A" == "==========" (
rem
) else (
set testMsg=!testMsg!%%L!NL!
)
)
)
)

0 comments on commit 3a604f5

Please sign in to comment.