diff --git a/appveyor.yml b/appveyor.yml index a9e0fc15..3380730e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,10 +6,10 @@ environment: TESTING: Func - CONFIGURATION: Release TESTING: Func - - CONFIGURATION: Release - TESTING: Avast - - CONFIGURATION: Release - TESTING: Perf + #- CONFIGURATION: Release + # TESTING: Avast + #- CONFIGURATION: Release + # TESTING: Perf install: - git submodule update --init --recursive @@ -32,6 +32,7 @@ test_script: - if %TESTING%==Func tools\run-tests.bat %CONFIGURATION% - if %TESTING%==Func tools\run-tests.bat %CONFIGURATION% ifstest - if %TESTING%==Func tools\run-tests.bat %CONFIGURATION% sample +- if %TESTING%==Func tools\run-tests.bat %CONFIGURATION% compat - if %TESTING%==Avast choco install avastfreeantivirus && fltmc instances -v "C:" - if %TESTING%==Avast tools\run-tests.bat %CONFIGURATION% avast-tests - if %TESTING%==Perf tools\run-perf-tests.bat %CONFIGURATION% baseline > perf-tests.csv && type perf-tests.csv & appveyor PushArtifact perf-tests.csv diff --git a/tools/run-tests.bat b/tools/run-tests.bat index 0a1a3fc6..a061eb98 100755 --- a/tools/run-tests.bat +++ b/tools/run-tests.bat @@ -80,6 +80,8 @@ set opt_tests=^ sample-passthrough-fuse-x86 ^ sample-fsx-passthrough-fuse-x86 ^ sample-passthrough-dotnet ^ + compat-v1.1-passthrough-fuse-x64 ^ + compat-v1.1-passthrough-fuse-x86 ^ avast-tests-x64 ^ avast-tests-x86 ^ avast-tests-dotnet @@ -757,6 +759,42 @@ call "%ProjRoot%\tools\fsreg" -u %1 rmdir /s/q "%TMP%\%1" exit /b !RunSampleTestExit! +:compat-v1.1-passthrough-fuse-x64 +call :__run_compat_fuse_test passthrough-fuse v1.1\passthrough-fuse\passthrough-fuse-x64 winfsp-tests-x64 +if !ERRORLEVEL! neq 0 goto fail +exit /b 0 + +:compat-v1.1-passthrough-fuse-x86 +call :__run_compat_fuse_test passthrough-fuse v1.1\passthrough-fuse\passthrough-fuse-x86 winfsp-tests-x86 +if !ERRORLEVEL! neq 0 goto fail +exit /b 0 + +:__run_compat_fuse_test +set RunSampleTestExit=0 +mkdir "%TMP%\%1\test" +call "%ProjRoot%\tools\fsreg" %1 "%ProjRoot%\tst\compat\%2.exe" ^ + "-ouid=11,gid=65792 --VolumePrefix=%%%%1 %%%%2" "D:P(A;;RPWPLC;;;WD)" +echo net use L: "\\%1\%TMP::=$%\%1\test" +net use L: "\\%1\%TMP::=$%\%1\test" +if !ERRORLEVEL! neq 0 goto fail +echo net use ^| findstr L: +net use | findstr L: +pushd >nul +cd L: >nul 2>nul || (echo Unable to find drive L: >&2 & goto fail) +L: +"%ProjRoot%\build\VStudio\build\%Configuration%\%3.exe" ^ + --external --resilient --case-insensitive-cmp --share-prefix="\%1\%TMP::=$%\%1\test" ^ + -create_allocation_test -create_notraverse_test -create_backup_test -create_restore_test -create_namelen_test ^ + -getfileinfo_name_test -setfileinfo_test -delete_access_test -delete_mmap_test -rename_flipflop_test -rename_mmap_test -setsecurity_test -exec_rename_dir_test ^ + -reparse* -stream* +if !ERRORLEVEL! neq 0 set RunSampleTestExit=1 +popd +echo net use L: /delete +net use L: /delete +call "%ProjRoot%\tools\fsreg" -u %1 +rmdir /s/q "%TMP%\%1" +exit /b !RunSampleTestExit! + :avast-tests-x64 call :winfsp-tests-x64-external if !ERRORLEVEL! neq 0 goto fail diff --git a/tst/compat/v1.1/passthrough-fuse/README.md b/tst/compat/v1.1/passthrough-fuse/README.md new file mode 100644 index 00000000..01ad2342 --- /dev/null +++ b/tst/compat/v1.1/passthrough-fuse/README.md @@ -0,0 +1,3 @@ +This directory contains binaries of `passthrough-fuse` from release `v1.2B2`. Both `x64` and `x86` binaries are provided. + +The WinFsp-FUSE layer added support for `struct fuse_stat_ex` in `v1.2B3` which was a potentially breaking change for backwards compatibility. These binaries are used to verify that WinFsp-FUSE remains backwards compatible. diff --git a/tst/compat/v1.1/passthrough-fuse/passthrough-fuse-x64.exe b/tst/compat/v1.1/passthrough-fuse/passthrough-fuse-x64.exe new file mode 100644 index 00000000..a8aad0c6 Binary files /dev/null and b/tst/compat/v1.1/passthrough-fuse/passthrough-fuse-x64.exe differ diff --git a/tst/compat/v1.1/passthrough-fuse/passthrough-fuse-x86.exe b/tst/compat/v1.1/passthrough-fuse/passthrough-fuse-x86.exe new file mode 100644 index 00000000..b3aa3a1f Binary files /dev/null and b/tst/compat/v1.1/passthrough-fuse/passthrough-fuse-x86.exe differ