diff --git a/tools/fsreg.bat b/tools/fsreg.bat index c762f724..519132ce 100644 --- a/tools/fsreg.bat +++ b/tools/fsreg.bat @@ -18,6 +18,7 @@ if not X%1==X-u ( reg add !RegKey!\!fsname! /v Executable /t REG_SZ /d !fsexec! /f /reg:32 reg add !RegKey!\!fsname! /v CommandLine /t REG_SZ /d !fscmdl! /f /reg:32 + reg add !RegKey!\!fsname! /v JobControl /t REG_DWORD /d 1 /f /reg:32 if not X!fssecu!==X reg add !RegKey!\!fsname! /v Security /t REG_SZ /d !fssecu! /f /reg:32 ) else ( set unreg=1 diff --git a/tools/run-tests.bat b/tools/run-tests.bat index 6b34da2a..90fbf600 100755 --- a/tools/run-tests.bat +++ b/tools/run-tests.bat @@ -82,6 +82,8 @@ set opt_tests=^ sample-passthrough-fuse-x86 ^ sample-fsx-passthrough-fuse-x86 ^ sample-passthrough-dotnet ^ + compat-v1.2-memfs-x64 ^ + compat-v1.2-memfs-x86 ^ compat-v1.1-passthrough-fuse-x64 ^ compat-v1.1-passthrough-fuse-x86 ^ avast-tests-x64 ^ @@ -771,6 +773,41 @@ call "%ProjRoot%\tools\fsreg" -u %1 rmdir /s/q "%TMP%\%1" exit /b !RunSampleTestExit! +:compat-v1.2-memfs-x64 +copy "%ProjRoot%\build\VStudio\build\%Configuration%\winfsp-*.dll" "%ProjRoot%\tst\compat\v1.2\memfs" +call :__run_compat_memfs_test compat-memfs v1.2\memfs\memfs-x64 winfsp-tests-x64 +if !ERRORLEVEL! neq 0 goto fail +del "%ProjRoot%\tst\compat\v1.2\memfs\winfsp-*.dll" +exit /b 0 + +:compat-v1.2-memfs-x86 +copy "%ProjRoot%\build\VStudio\build\%Configuration%\winfsp-*.dll" "%ProjRoot%\tst\compat\v1.2\memfs" +call :__run_compat_memfs_test compat-memfs v1.2\memfs\memfs-x86 winfsp-tests-x86 +if !ERRORLEVEL! neq 0 goto fail +del "%ProjRoot%\tst\compat\v1.2\memfs\winfsp-*.dll" +exit /b 0 + +:__run_compat_memfs_test +set RunSampleTestExit=0 +call "%ProjRoot%\tools\fsreg" %1 "%ProjRoot%\tst\compat\%2.exe" ^ + "-i -F NTFS -n 65536 -s 67108864 -u %%%%1 -m %%%%2" "D:P(A;;RPWPLC;;;WD)" +echo net use L: "\\%1\share" +net use L: "\\%1\share" +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 --share-prefix="\%1\share" +if !ERRORLEVEL! neq 0 set RunSampleTestExit=1 +popd +echo net use L: /delete +net use L: /delete +call "%ProjRoot%\tools\fsreg" -u %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 diff --git a/tst/compat/README.md b/tst/compat/README.md new file mode 100644 index 00000000..e587e889 --- /dev/null +++ b/tst/compat/README.md @@ -0,0 +1,4 @@ +This directory contains binaries for backwards compatibility testing. + +- `v1.1/passthrough-fuse`: testing of changes related to `struct fuse_stat_ex` (`v1.2B3`) +- `v1.2/memfs`: testing of `FSP_FSCTL_VOLUME_PARAMS` size change (`v1.3B3`) diff --git a/tst/compat/v1.1/passthrough-fuse/README.md b/tst/compat/v1.1/passthrough-fuse/README.md deleted file mode 100644 index 01ad2342..00000000 --- a/tst/compat/v1.1/passthrough-fuse/README.md +++ /dev/null @@ -1,3 +0,0 @@ -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.2/memfs/memfs-x64.exe b/tst/compat/v1.2/memfs/memfs-x64.exe new file mode 100644 index 00000000..147cdfba Binary files /dev/null and b/tst/compat/v1.2/memfs/memfs-x64.exe differ diff --git a/tst/compat/v1.2/memfs/memfs-x86.exe b/tst/compat/v1.2/memfs/memfs-x86.exe new file mode 100644 index 00000000..e240be8f Binary files /dev/null and b/tst/compat/v1.2/memfs/memfs-x86.exe differ