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 Nov 10, 2018
1 parent a198d13 commit ae0c7a3
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 3 deletions.
7 changes: 4 additions & 3 deletions tests/run-tests.bat
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
@echo off
set platform=%1
set configuration=%2
set ERROR_RESULT=0

set FILTER_BAT=%~dp0test_result_filter_tell_AppVeyor.bat

pushd %~dp0
set BUILDDIR=build\%platform%
set BINARY_DIR=%BUILDDIR%\bin\%configuration%
Expand All @@ -12,8 +13,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 | "%FILTER_BAT%"
%%i | "%FILTER_BAT%" || set ERROR_RESULT=1
)
popd
popd
Expand Down
53 changes: 53 additions & 0 deletions tests/test_result_filter_tell_AppVeyor.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
@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 (
echo>&2 %~nx0: `%AppVeyor%` command was not found. This filter does nothing effective.
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 goes immediately.
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 goes immediately.
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 ae0c7a3

Please sign in to comment.