tst: fix tests broken by new mountmgr func

This commit is contained in:
Bill Zissimopoulos 2019-09-07 11:39:06 -07:00
parent fd9ac1c9e0
commit 073645db3b
No known key found for this signature in database
GPG Key ID: 3D4F95D52C7B3EA3
2 changed files with 47 additions and 8 deletions

View File

@ -319,6 +319,15 @@ void mount_preflight_dotest(PWSTR DeviceName)
MountPoint[2] = L'\0';
GetTestDirectory(DirBuf);
/*
* Mount points starting with \\?\X: or \\.\X: are now considered MountManager mountpoints.
* So skip the \\?\ prefix to avoid this problem.
*/
if (L'\\' == DirBuf[0] &&
L'\\' == DirBuf[1] &&
(L'?' == DirBuf[2] || L'.' == DirBuf[2]) &&
L'\\' == DirBuf[3])
memmove(DirBuf, DirBuf + 4, (wcslen(DirBuf + 4) + 1) * sizeof(WCHAR));
Drives = GetLogicalDrives();
ASSERT(0 != Drives);

View File

@ -84,12 +84,14 @@ static void volpath_dotest(ULONG Flags, PWSTR Prefix)
static void volpath_test(void)
{
if (NtfsTests)
{
WCHAR DirBuf[MAX_PATH];
GetTestDirectory(DirBuf);
volpath_dotest(-1, DirBuf);
}
/*
* GetVolumePathName is not reliable on WinFsp file systems
* when *not* using the MountManager and therefore disable
* this test when using a non-MountManager mount point.
*/
if (!NtfsTests && !OptMountPoint)
TEST(volpath_test);
if (WinFspDiskTests)
volpath_dotest(MemfsDisk, 0);
if (WinFspNetTests)
@ -182,8 +184,30 @@ static void volpath_mount_test(void)
if (WinFspDiskTests)
{
WCHAR MountPoint[7];
DWORD Drives;
WCHAR Drive;
MountPoint[0] = L'\\';
MountPoint[1] = L'\\';
MountPoint[2] = L'.';
MountPoint[3] = L'\\';
MountPoint[4] = L'C';
MountPoint[5] = L':';
MountPoint[6] = L'\0';
Drives = GetLogicalDrives();
ASSERT(0 != Drives);
for (Drive = 'Z'; 'A' <= Drive; Drive--)
if (0 == (Drives & (1 << (Drive - 'A'))))
break;
ASSERT('A' <= Drive);
MountPoint[4] = Drive;
//volpath_mount_dotest(MemfsDisk, 0, 0);
volpath_mount_dotest(MemfsDisk, 0, L"\\\\.\\m:");
volpath_mount_dotest(MemfsDisk, 0, MountPoint);
}
if (WinFspNetTests)
{
@ -193,6 +217,12 @@ static void volpath_mount_test(void)
void volpath_tests(void)
{
/*
* GetVolumePathName is not reliable on WinFsp file systems
* when *not* using the MountManager and therefore disable
* this test when using a non-MountManager mount point.
*/
if (!NtfsTests && !OptMountPoint)
TEST(volpath_test);
/*