sys: IRP_MJ_DIRECTORY_CONTROL: testing

This commit is contained in:
Bill Zissimopoulos 2016-03-30 16:20:42 -07:00
parent a1c0c58dc2
commit fdb74e60ee

View File

@ -13,7 +13,7 @@ extern int NtfsTests;
extern int WinFspDiskTests; extern int WinFspDiskTests;
extern int WinFspNetTests; extern int WinFspNetTests;
void querydir_dotest(ULONG Flags, PWSTR Prefix, ULONG FileInfoTimeout) void querydir_dotest(ULONG Flags, PWSTR Prefix, ULONG FileInfoTimeout, ULONG SleepTimeout)
{ {
void *memfs = memfs_start_ex(Flags, FileInfoTimeout); void *memfs = memfs_start_ex(Flags, FileInfoTimeout);
@ -79,6 +79,9 @@ void querydir_dotest(ULONG Flags, PWSTR Prefix, ULONG FileInfoTimeout)
FileCount++; FileCount++;
FileTotal += ul; FileTotal += ul;
if (0 < SleepTimeout && 5 == FileCount)
Sleep(SleepTimeout);
} while (FindNextFileW(Handle, &FindData)); } while (FindNextFileW(Handle, &FindData));
ASSERT(ERROR_NO_MORE_FILES == GetLastError()); ASSERT(ERROR_NO_MORE_FILES == GetLastError());
@ -107,6 +110,9 @@ void querydir_dotest(ULONG Flags, PWSTR Prefix, ULONG FileInfoTimeout)
FileCount++; FileCount++;
FileTotal += ul; FileTotal += ul;
if (0 < SleepTimeout && 5 == FileCount)
Sleep(SleepTimeout);
} while (FindNextFileW(Handle, &FindData)); } while (FindNextFileW(Handle, &FindData));
ASSERT(ERROR_NO_MORE_FILES == GetLastError()); ASSERT(ERROR_NO_MORE_FILES == GetLastError());
@ -136,6 +142,9 @@ void querydir_dotest(ULONG Flags, PWSTR Prefix, ULONG FileInfoTimeout)
FileCount++; FileCount++;
FileTotal += ul; FileTotal += ul;
if (0 < SleepTimeout && 5 == FileCount)
Sleep(SleepTimeout);
} while (FindNextFileW(Handle, &FindData)); } while (FindNextFileW(Handle, &FindData));
ASSERT(ERROR_NO_MORE_FILES == GetLastError()); ASSERT(ERROR_NO_MORE_FILES == GetLastError());
@ -190,21 +199,34 @@ void querydir_test(void)
{ {
WCHAR DirBuf[MAX_PATH] = L"\\\\?\\"; WCHAR DirBuf[MAX_PATH] = L"\\\\?\\";
GetCurrentDirectoryW(MAX_PATH - 4, DirBuf + 4); GetCurrentDirectoryW(MAX_PATH - 4, DirBuf + 4);
querydir_dotest(-1, DirBuf, 0); querydir_dotest(-1, DirBuf, 0, 0);
} }
if (WinFspDiskTests) if (WinFspDiskTests)
{ {
querydir_dotest(MemfsDisk, 0, 0); querydir_dotest(MemfsDisk, 0, 0, 0);
querydir_dotest(MemfsDisk, 0, 1000); querydir_dotest(MemfsDisk, 0, 1000, 0);
} }
if (WinFspNetTests) if (WinFspNetTests)
{ {
querydir_dotest(MemfsNet, L"\\\\memfs\\share", 0); querydir_dotest(MemfsNet, L"\\\\memfs\\share", 0, 0);
querydir_dotest(MemfsNet, L"\\\\memfs\\share", 1000); querydir_dotest(MemfsNet, L"\\\\memfs\\share", 1000, 0);
}
}
void querydir_expire_cache_test(void)
{
if (WinFspDiskTests)
{
querydir_dotest(MemfsDisk, 0, 500, 750);
}
if (WinFspNetTests)
{
querydir_dotest(MemfsNet, L"\\\\memfs\\share", 500, 750);
} }
} }
void dirctl_tests(void) void dirctl_tests(void)
{ {
TEST(querydir_test); TEST(querydir_test);
TEST(querydir_expire_cache_test);
} }