Merge branch 'pvt-gauntlet-vs2019' into pvt-gauntlet-merge

This commit is contained in:
Bill Zissimopoulos 2022-01-08 09:51:41 +00:00
commit 24e6f1a2f6
No known key found for this signature in database
GPG Key ID: 3D4F95D52C7B3EA3
6 changed files with 69 additions and 20 deletions

View File

@ -3,16 +3,28 @@ version: '{build}'
environment:
# Disable the winfsp-tests built-in exception filter to allow WER to collect dumps.
WINFSP_TESTS_EXCEPTION_FILTER_DISABLE: 1
matrix:
- CONFIGURATION: Debug
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
CONFIGURATION: Debug
TESTING: Func
- CONFIGURATION: Release
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
CONFIGURATION: Release
TESTING: Func
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
CONFIGURATION: Release
TESTING: Func
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
CONFIGURATION: Release
TESTING: Func
#- CONFIGURATION: Release
# TESTING: Avast
#- CONFIGURATION: Release
# TESTING: Perf
matrix:
fast_finish: true
init:
#- ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
@ -20,10 +32,13 @@ install:
# Hack to make WDK 1903 work on VS2015.
# See https://github.com/appveyor-tests/WDK-10.0.14393.0/blob/31cf12217fe0c92b218c70d7027dfe145be4f4cb/appveyor.yml#L7
- ps: |
[xml]$targets = get-content "C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.Common.targets"
$usingTask = $targets.ChildNodes[1].UsingTask | ? {$_.TaskName -eq "ValidateNTTargetVersion"}
$usingTask.AssemblyFile = '$(WDKContentRoot)build\bin\Microsoft.DriverKit.Build.Tasks.16.0.dll'
$targets.Save("C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.Common.targets")
if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2015") {
[xml]$targets = get-content "C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.Common.targets"
$usingTask = $targets.ChildNodes[1].UsingTask | ? {$_.TaskName -eq "ValidateNTTargetVersion"}
$usingTask.AssemblyFile = '$(WDKContentRoot)build\bin\Microsoft.DriverKit.Build.Tasks.16.0.dll'
$targets.Save("C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.Common.targets")
Add-AppveyorMessage "Hack to make WDK 1903 work on VS2015"
}
# Submodules
- git submodule update --init --recursive
# Kernel and user mode dumps
@ -35,7 +50,7 @@ install:
# Boot configuration
- appveyor AddMessage "Change boot configuration and reboot" -Category Information
- bcdedit /set testsigning on
- if %TESTING%==Func verifier /standard /driver winfsp-x64.sys
- if %TESTING%==Func verifier /standard /driver winfsp-x64.sys & exit 0
- ps: Restart-Computer -Force
- ps: Start-Sleep -s 60
@ -46,8 +61,9 @@ build_script:
#- C:\cygwin64\bin\bash --login -c "make -C '%CD%\opt\cygfuse' dist"
#- C:\cygwin\setup-x86.exe -qnNd -P cygport
#- C:\cygwin\bin\bash --login -c "make -C '%CD%\opt\cygfuse' dist"
# remove ARM64 project configurations to build in VS2015
- tools\gensrc\remove-build-arm64.bat
# remove ARM64 project configurations to build in VS2015/VS2017
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" tools\gensrc\remove-build-arm64.bat
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" tools\gensrc\remove-build-arm64.bat
# build winfsp
- tools\build.bat %CONFIGURATION%

View File

@ -13,6 +13,9 @@
<ClCompile>
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
</ClCompile>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(DefaultPlatformToolset)'=='v140'">
<Link>

View File

@ -26,10 +26,16 @@ if X%~nx0==Xbuild-choco.bat (
set BuildArm64=yes
if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" (
echo WARNING: APPVEYOR BUILD ON UNSUPPORTED VERSION OF VISUAL STUDIO.
echo:
set BuildArm64=no
)
if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" (
set BuildArm64=no
)
if X%BuildArm64%==Xno (
echo WARNING: APPVEYOR BUILD ON UNSUPPORTED VERSION OF VISUAL STUDIO.
echo WARNING: ARM64 BUILD PRODUCTS ARE COPIES OF X64 BUILD PRODUCTS.
echo:
)
call "%~dp0vcvarsall.bat" x64
@ -60,11 +66,8 @@ if X%SignedPackage%==X (
devenv winfsp.sln /build "%Configuration%|x86"
if errorlevel 1 goto fail
if X%BuildArm64%==Xno (
echo:
echo WARNING: APPVEYOR BUILD ON UNSUPPORTED VERSION OF VISUAL STUDIO.
echo WARNING: ARM64 BUILD PRODUCTS ARE COPIES OF X64 BUILD PRODUCTS.
echo:
copy build\%Configuration%\*-x64.* build\%Configuration%\*-a64.* >nul
if errorlevel 1 goto fail
)
for %%f in (build\%Configuration%\%MyProductFileName%-a64.sys build\%Configuration%\%MyProductFileName%-x64.sys build\%Configuration%\%MyProductFileName%-x86.sys) do (

View File

@ -643,7 +643,16 @@ if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1
rem ReparsePoints.SetPointEASNotSupportedTest: EA's not supported
rem ReparsePoints.EnumReparsePointsTest: enumeration of reparse points not supported
rem ReparsePoints.ChangeNotificationReparseTest: change notifications of reparse points not supported
call :__ifstest %1 /g ReparsePoints -t SetPointEASNotSupportedTest -t EnumReparsePointsTest -t ChangeNotificationReparseTest /c
rem ReparsePoints.SetPointIoReparseDataInvalidTest:
rem This test succeeds on Server 2012 and fails on Server 2016/2019.
rem Investigation on Server 2019 showed that the FSCTL_SET_REPARSE_POINT
rem input buffer length was 23 instead of less than
rem REPARSE_DATA_BUFFER_HEADER_SIZE(==8) like ifstest claims. This
rem suggests that WinFsp is not the problem here, but perhaps some OS
rem changes between Server 2012 and Server 2016. NOTE that we are still
rem using the ifstest from Server 2012 HCK, which may account for the
rem difference.
call :__ifstest %1 /g ReparsePoints -t SetPointEASNotSupportedTest -t EnumReparsePointsTest -t ChangeNotificationReparseTest -t SetPointIoReparseDataInvalidTest /c
if !ERRORLEVEL! neq 0 set IfsTestMemfsExit=1
rem IfsTest ReparsePoints seems to have a bug in that it cannot handle STATUS_PENDING for FSCTL_GET_REPARSE_POINT
rmdir /s/q reparspt

View File

@ -3,8 +3,14 @@
set vcvarsall="%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat"
set vswhere="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
if exist %vswhere% (
for /f "usebackq tokens=*" %%i in (`%vswhere% -find VC\**\vcvarsall.bat`) do (
set vcvarsall="%%i"
for /f "usebackq tokens=*" %%i in (`%vswhere% -latest -find VC\**\vcvarsall.bat`) do (
if exist "%%i" (
set vcvarsall="%%i"
) else (
for /f "usebackq tokens=*" %%i in (`%vswhere% -latest -property installationPath`) do (
set vcvarsall="%%i\VC\Auxiliary\Build\vcvarsall.bat"
)
)
)
)
call %vcvarsall% %*

View File

@ -1111,6 +1111,12 @@ void delete_ex_test(void)
{
if (OptLegacyUnlinkRename)
return;
if (OptShareName)
/*
* This test fails with shares on Server 2019. It returns
* STATUS_INVALID_PARAMETER for FileDispositionInformationEx.
*/
return;
if (NtfsTests)
{
@ -2225,6 +2231,12 @@ void rename_ex_test(void)
{
if (OptLegacyUnlinkRename)
return;
if (OptShareName)
/*
* This test fails with shares on Server 2019. It returns
* STATUS_INVALID_PARAMETER for FileRenameInformationEx.
*/
return;
if (NtfsTests)
{
@ -2512,7 +2524,7 @@ void info_tests(void)
if (!OptShareName)
TEST(delete_mmap_test);
TEST(delete_standby_test);
if (!OptLegacyUnlinkRename)
if (!OptLegacyUnlinkRename && !OptShareName)
TEST(delete_ex_test);
TEST(rename_test);
TEST(rename_backslash_test);
@ -2523,7 +2535,7 @@ void info_tests(void)
if (!OptShareName)
TEST(rename_mmap_test);
TEST(rename_standby_test);
if (!OptLegacyUnlinkRename)
if (!OptLegacyUnlinkRename && !OptShareName)
TEST(rename_ex_test);
if (!NtfsTests)
TEST(rename_pid_test);