From 56873406e3a204965c9b18dc97a5daa3e53c9ff2 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Wed, 4 Jan 2017 16:04:43 -0800 Subject: [PATCH] appveyor: run-perf-tests --- appveyor.yml | 60 ++++++++++++++++++++++------------------ tools/run-perf-tests.bat | 34 ++++++++++++++++++++--- 2 files changed, 63 insertions(+), 31 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 7693b462..41acbac5 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,27 +1,33 @@ -version: '{build}' - -environment: - matrix: - - CONFIGURATION: Debug - - CONFIGURATION: Release - -install: -- git submodule update --init --recursive -- appveyor AddMessage "Change boot configuration and reboot" -Category Information -- verifier /standard /driver winfsp-x64.sys -- bcdedit /set testsigning on -- ps: Restart-Computer -Force -- ps: Start-Sleep -s 10 - -build_script: -- appveyor AddMessage "Reboot complete" -Category Information -- bcdedit | findstr /i "testsigning" -- tools\build.bat %CONFIGURATION% - -test_script: -- for %%f in ("build\VStudio\build\%CONFIGURATION%\winfsp-*.msi") do start /wait msiexec /i %%f /qn INSTALLLEVEL=1000 -- tools\nmake-ext-test.bat %CONFIGURATION% -- tools\run-tests.bat %CONFIGURATION% - -on_finish: -- verifier /query +version: '{build}' + +environment: + matrix: + - CONFIGURATION: Release + TESTING: Perf + +install: +- git submodule update --init --recursive +- appveyor AddMessage "Change boot configuration and reboot" -Category Information +- bcdedit /set testsigning on +- if %TESTING%==Func verifier /standard /driver winfsp-x64.sys +- if exist %SystemRoot%\memory.dmp del %SystemRoot%\memory.dmp +- ps: Restart-Computer -Force +- ps: Start-Sleep -s 60 + +build_script: +- appveyor AddMessage "Reboot complete" -Category Information +- tools\build.bat %CONFIGURATION% + +test_script: +- for %%f in ("build\VStudio\build\%CONFIGURATION%\winfsp-*.msi") do start /wait msiexec /i %%f /qn INSTALLLEVEL=1000 +- if %TESTING%==Func appveyor DownloadFile http://www.secfs.net/winfsp/resources/Test.Filter.Driver.zip && 7z x Test.Filter.Driver.zip +- if %TESTING%==Func start /wait msiexec /i "Test.Filter.Driver\HCK Filter.Driver Content-x86_en-us.msi" /qn +- if %TESTING%==Func tools\nmake-ext-test.bat %CONFIGURATION% +- if %TESTING%==Func tools\run-tests.bat %CONFIGURATION% +- if %TESTING%==Func tools\run-tests.bat %CONFIGURATION% ifstest +- if %TESTING%==Perf tools\run-perf-tests.bat %CONFIGURATION% baseline > perf-tests.csv && type perf-tests.csv & appveyor PushArtifact perf-tests.csv +- if exist %SystemRoot%\memory.dmp exit 1 + +on_finish: +- if exist %SystemRoot%\memory.dmp (7z a memory.dmp.zip %SystemRoot%\memory.dmp && appveyor PushArtifact memory.dmp.zip) +- verifier /query diff --git a/tools/run-perf-tests.bat b/tools/run-perf-tests.bat index 1779b871..fc7ca2e7 100755 --- a/tools/run-perf-tests.bat +++ b/tools/run-perf-tests.bat @@ -14,31 +14,57 @@ popd verifier /query | findstr winfsp >nul 2>nul if !ERRORLEVEL! equ 0 echo warning: verifier for winfsp is ON >&2 +set launchctl="%ProjRoot%\build\VStudio\build\%Configuration%\launchctl-x64.exe" set fsbench="%ProjRoot%\build\VStudio\build\%Configuration%\fsbench-x64.exe" + +if X%2==Xbaseline ( + %launchctl% start memfs64 testdsk "" M: >nul + rem Cannot use timeout under cygwin/mintty: "Input redirection is not supported" + waitfor 7BF47D72F6664550B03248ECFE77C7DD /t 3 2>nul + cd M: >nul 2>nul || (echo === Unable to find drive M: >&2 & goto fail) +) + mkdir fsbench pushd fsbench -for %%a in (1000 2000 3000 4000 5000) do ( +set OptFiles=1000 2000 3000 4000 5000 +if X%2==Xbaseline set OptFiles=10000 +for %%a in (%OptFiles%) do ( call :csv %%a "%fsbench% --files=%%a file_*" ) -for %%a in (100 200 300 400 500) do ( +set OptRdwrCc=100 200 300 400 500 +if X%2==Xbaseline set OptRdwrCc=1000 +for %%a in (%OptRdwrCc%) do ( call :csv %%a "%fsbench% --rdwr-cc=%%a rdwr_cc_*" ) -for %%a in (100 200 300 400 500) do ( +set OptRdwrNc=100 200 300 400 500 +if X%2==Xbaseline set OptRdwrNc=100 +for %%a in (%OptRdwrNc%) do ( call :csv %%a "%fsbench% --rdwr-nc=%%a rdwr_nc_*" ) -for %%a in (100 200 300 400 500) do ( +set OptMmap=100 200 300 400 500 +if X%2==Xbaseline set OptMmap=1000 +for %%a in (%OptMmap%) do ( call :csv %%a "%fsbench% --mmap=%%a mmap_*" ) popd rmdir fsbench +if X%2==Xbaseline ( + %launchctl% stop memfs64 testdsk >nul + rem Cannot use timeout under cygwin/mintty: "Input redirection is not supported" + waitfor 7BF47D72F6664550B03248ECFE77C7DD /t 3 2>nul +) + exit /b 0 +:fail +exit /b 1 + :csv set Iter=%1 for /F "tokens=1,2,3" %%i in ('%2') do (