From 2212d021e1c7be6158ec4d34d13602f5e1497774 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Thu, 22 Dec 2016 13:23:03 -0800 Subject: [PATCH] appveyor: run ifstest --- appveyor.yml | 4 ++ tools/ifstest.bat | 4 +- tools/run-tests.bat | 134 ++++++++++++++++++++++++++------------------ 3 files changed, 86 insertions(+), 56 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 7693b462..d2051854 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,6 +7,8 @@ environment: install: - git submodule update --init --recursive +- appveyor DownloadFile http://www.secfs.net/winfsp/resources/Test.Filter.Driver.zip +- 7z x Test.Filter.Driver.zip - appveyor AddMessage "Change boot configuration and reboot" -Category Information - verifier /standard /driver winfsp-x64.sys - bcdedit /set testsigning on @@ -20,8 +22,10 @@ build_script: test_script: - for %%f in ("build\VStudio\build\%CONFIGURATION%\winfsp-*.msi") do start /wait msiexec /i %%f /qn INSTALLLEVEL=1000 +- start /wait msiexec /i "Test.Filter.Driver\HCK Filter.Driver Content-x86_en-us.msi" /qn - tools\nmake-ext-test.bat %CONFIGURATION% - tools\run-tests.bat %CONFIGURATION% +- tools\run-tests.bat %CONFIGURATION% ifstest on_finish: - verifier /query diff --git a/tools/ifstest.bat b/tools/ifstest.bat index 8075a729..dcae309b 100755 --- a/tools/ifstest.bat +++ b/tools/ifstest.bat @@ -12,10 +12,10 @@ if !ERRORLEVEL! equ 0 ( for /f "tokens=2,*" %%i in ('reg query %RegKey% /v %RegVal% ^| findstr %RegVal%') do ( set KitRoot=%%jHardware Lab Kit\ ) -) else ( - set "KitRoot=C:\Program Files (x86)\Windows Kits\8.1\Hardware Certification Kit\" ) +if not exist "%KitRoot%" set "KitRoot=C:\Program Files (x86)\Windows Kits\8.1\Hardware Certification Kit\" + set BaseDir=%KitRoot%Tests\%Arch% set PATH=%BaseDir%\nttest\commontest\ntlog;%BaseDir%\nttest\basetest\core_file_services\shared_libs\fbslog;%PATH% "%BaseDir%\nttest\basetest\core_file_services\ifs_test_kit\ifstest.exe" %* diff --git a/tools/run-tests.bat b/tools/run-tests.bat index c0982516..a84c2cc1 100755 --- a/tools/run-tests.bat +++ b/tools/run-tests.bat @@ -24,40 +24,57 @@ cd N: >nul 2>nul || (echo === Unable to find drive N: >&2 & goto fail) cd O: >nul 2>nul || (echo === Unable to find drive O: >&2 & goto fail) cd P: >nul 2>nul || (echo === Unable to find drive P: >&2 & goto fail) -if not X%2==X ( - set tests=%2 -) else ( - set tests=^ - winfsp-tests-x64 ^ - winfsp-tests-x64-case-randomize ^ - winfsp-tests-x64-mountpoint-drive ^ - winfsp-tests-x64-mountpoint-dir ^ - winfsp-tests-x64-no-traverse ^ - winfsp-tests-x64-oplock ^ - winfsp-tests-x64-external-share ^ - fsx-memfs-x64-disk ^ - fsx-memfs-x64-net ^ - standby-memfs-x64-disk ^ - standby-memfs-x64-net ^ - net-use-memfs-x64 ^ - winfstest-memfs-x64-disk ^ - winfstest-memfs-x64-net ^ - fscrash-x64 ^ - winfsp-tests-x86 ^ - winfsp-tests-x86-case-randomize ^ - winfsp-tests-x86-mountpoint-drive ^ - winfsp-tests-x86-mountpoint-dir ^ - winfsp-tests-x86-no-traverse ^ - winfsp-tests-x86-oplock ^ - winfsp-tests-x86-external-share ^ - fsx-memfs-x86-disk ^ - fsx-memfs-x86-net ^ - standby-memfs-x86-disk ^ - standby-memfs-x86-net ^ - net-use-memfs-x86 ^ - winfstest-memfs-x86-disk ^ - winfstest-memfs-x86-net ^ - fscrash-x86 +set dfl_tests=^ + winfsp-tests-x64 ^ + winfsp-tests-x64-case-randomize ^ + winfsp-tests-x64-mountpoint-drive ^ + winfsp-tests-x64-mountpoint-dir ^ + winfsp-tests-x64-no-traverse ^ + winfsp-tests-x64-oplock ^ + winfsp-tests-x64-external-share ^ + fsx-memfs-x64-disk ^ + fsx-memfs-x64-net ^ + standby-memfs-x64-disk ^ + standby-memfs-x64-net ^ + net-use-memfs-x64 ^ + winfstest-memfs-x64-disk ^ + winfstest-memfs-x64-net ^ + fscrash-x64 ^ + winfsp-tests-x86 ^ + winfsp-tests-x86-case-randomize ^ + winfsp-tests-x86-mountpoint-drive ^ + winfsp-tests-x86-mountpoint-dir ^ + winfsp-tests-x86-no-traverse ^ + winfsp-tests-x86-oplock ^ + winfsp-tests-x86-external-share ^ + fsx-memfs-x86-disk ^ + fsx-memfs-x86-net ^ + standby-memfs-x86-disk ^ + standby-memfs-x86-net ^ + net-use-memfs-x86 ^ + winfstest-memfs-x86-disk ^ + winfstest-memfs-x86-net ^ + fscrash-x86 +set opt_tests=^ + ifstest-memfs-x64-disk ^ + ifstest-memfs-x86-disk + +set tests= +for %%f in (%dfl_tests%) do ( + if X%2==X ( + set tests=!tests! %%f + ) else ( + set test=%%f + if not "X!test:%2=!"=="X!test!" set tests=!tests! %%f + ) +) +for %%f in (%opt_tests%) do ( + if X%2==X ( + rem + ) else ( + set test=%%f + if not "X!test:%2=!"=="X!test!" set tests=!tests! %%f + ) ) set testpass=0 @@ -333,6 +350,12 @@ call :__ifstest-memfs M: \Device\WinFsp.Disk if !ERRORLEVEL! neq 0 goto fail exit /b 0 +:ifstest-memfs-x86-disk +O: +call :__ifstest-memfs O: \Device\WinFsp.Disk +if !ERRORLEVEL! neq 0 goto fail +exit /b 0 + :__ifstest-memfs set IfsTestMemfsExit=0 M: @@ -340,31 +363,32 @@ call :__ifstest %1 /d %2 /g OpenCreateGeneral -t FileOpenByIDTest -t OpenVolumeT if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 call :__ifstest %1 /d %2 /g OpenCreateParameters /z /v if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 -call :__ifstest %1 /d %2 /g CloseCleanupDelete /z /v -if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 -call :__ifstest %1 /d %2 /g VolumeInformation /z /v -if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 -call :__ifstest %1 /d %2 /g FileInformation /z /v -if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 -call :__ifstest %1 /d %2 /g DirectoryInformation /z /v -if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 -call :__ifstest %1 /d %2 /g FileLocking /z /v -if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 -call :__ifstest %1 /d %2 /g OpLocks /z /v -if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 +rem call :__ifstest %1 /d %2 /g CloseCleanupDelete /z /v +rem if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 +rem call :__ifstest %1 /d %2 /g VolumeInformation /z /v +rem if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 +rem call :__ifstest %1 /d %2 /g FileInformation /z /v +rem if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 +rem call :__ifstest %1 /d %2 /g DirectoryInformation /z /v +rem if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 +rem call :__ifstest %1 /d %2 /g FileLocking /z /v +rem if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 +rem call :__ifstest %1 /d %2 /g OpLocks /z /v +rem if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 rem call :__ifstest %1 /d %2 /g ChangeNotification /z /v rem if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 -call :__ifstest %1 /d %2 /g ReadWrite /z /v -if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 -call :__ifstest %1 /d %2 /g SectionsCaching /z /v -if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 -call :__ifstest %1 /d %2 /g ReparsePoints /z /v -if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 -call :__ifstest %1 /d %2 /g StreamEnhancements /z /v -if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 +rem call :__ifstest %1 /d %2 /g ReadWrite /z /v +rem if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 +rem call :__ifstest %1 /d %2 /g SectionsCaching /z /v +rem if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 +rem call :__ifstest %1 /d %2 /g ReparsePoints /z /v +rem if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 +rem call :__ifstest %1 /d %2 /g StreamEnhancements /z /v +rem if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1 exit /b !IfsTestMemfsExit! :__ifstest +set IfsTestFound= set IfsTestName= set IfsTestGroup= set IfsTestStatus= @@ -387,6 +411,7 @@ for /F "delims=" %%l in ('call "%ProjRoot%\tools\ifstest.bat" %* ^| findstr /n " if X!FieldName!==XTest ( set IfsTestName=!FieldValue! + set IfsTestFound=YES ) else if X!FieldName!==XGroup ( set IfsTestGroup=!FieldValue! ) else if X!FieldName!==XStatus ( @@ -416,6 +441,7 @@ for /F "delims=" %%l in ('call "%ProjRoot%\tools\ifstest.bat" %* ^| findstr /n " ) ) ) +if not X!IfsTestFound!==XYES set IfsTestExit=1 exit /b !IfsTestExit! :leak-test