From ad9dafbaaafc2a5c5dd2ad76e3ed79052fd14268 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Sun, 6 Mar 2016 11:19:39 -0800 Subject: [PATCH] winfsp-tests: rdwr-test --- build/VStudio/testing/winfsp-tests.vcxproj | 1 + .../testing/winfsp-tests.vcxproj.filters | 3 ++ tst/winfsp-tests/memfs.cpp | 15 ++++--- tst/winfsp-tests/rdwr-test.c | 44 +++++++++++++++++++ tst/winfsp-tests/winfsp-tests.c | 1 + 5 files changed, 59 insertions(+), 5 deletions(-) create mode 100644 tst/winfsp-tests/rdwr-test.c diff --git a/build/VStudio/testing/winfsp-tests.vcxproj b/build/VStudio/testing/winfsp-tests.vcxproj index 085005b0..62f4b3f2 100644 --- a/build/VStudio/testing/winfsp-tests.vcxproj +++ b/build/VStudio/testing/winfsp-tests.vcxproj @@ -186,6 +186,7 @@ + diff --git a/build/VStudio/testing/winfsp-tests.vcxproj.filters b/build/VStudio/testing/winfsp-tests.vcxproj.filters index 27724262..5b5857fe 100644 --- a/build/VStudio/testing/winfsp-tests.vcxproj.filters +++ b/build/VStudio/testing/winfsp-tests.vcxproj.filters @@ -40,6 +40,9 @@ Source + + Source + diff --git a/tst/winfsp-tests/memfs.cpp b/tst/winfsp-tests/memfs.cpp index 72f9ea0e..18c3b68c 100644 --- a/tst/winfsp-tests/memfs.cpp +++ b/tst/winfsp-tests/memfs.cpp @@ -193,6 +193,11 @@ BOOLEAN MemfsFileNodeMapHasChild(MEMFS_FILE_NODE_MAP *FileNodeMap, MEMFS_FILE_NO return Result; } +static NTSTATUS SetFileSize(FSP_FILE_SYSTEM *FileSystem, + FSP_FSCTL_TRANSACT_REQ *Request, + PVOID FileNode0, UINT64 FileSize, + FSP_FSCTL_FILE_INFO *FileInfo); + static NTSTATUS GetVolumeInfo(FSP_FILE_SYSTEM *FileSystem, FSP_FSCTL_TRANSACT_REQ *Request, FSP_FSCTL_VOLUME_INFO *VolumeInfo) @@ -481,7 +486,7 @@ static NTSTATUS GetFileInfo(FSP_FILE_SYSTEM *FileSystem, return STATUS_SUCCESS; } -NTSTATUS SetBasicInfo(FSP_FILE_SYSTEM *FileSystem, +static NTSTATUS SetBasicInfo(FSP_FILE_SYSTEM *FileSystem, FSP_FSCTL_TRANSACT_REQ *Request, PVOID FileNode0, UINT32 FileAttributes, UINT64 CreationTime, UINT64 LastAccessTime, UINT64 LastWriteTime, @@ -503,7 +508,7 @@ NTSTATUS SetBasicInfo(FSP_FILE_SYSTEM *FileSystem, return STATUS_SUCCESS; } -NTSTATUS SetAllocationSize(FSP_FILE_SYSTEM *FileSystem, +static NTSTATUS SetAllocationSize(FSP_FILE_SYSTEM *FileSystem, FSP_FSCTL_TRANSACT_REQ *Request, PVOID FileNode0, UINT64 AllocationSize, FSP_FSCTL_FILE_INFO *FileInfo) @@ -533,7 +538,7 @@ NTSTATUS SetAllocationSize(FSP_FILE_SYSTEM *FileSystem, return STATUS_SUCCESS; } -NTSTATUS SetFileSize(FSP_FILE_SYSTEM *FileSystem, +static NTSTATUS SetFileSize(FSP_FILE_SYSTEM *FileSystem, FSP_FSCTL_TRANSACT_REQ *Request, PVOID FileNode0, UINT64 FileSize, FSP_FSCTL_FILE_INFO *FileInfo) @@ -563,7 +568,7 @@ NTSTATUS SetFileSize(FSP_FILE_SYSTEM *FileSystem, return STATUS_SUCCESS; } -NTSTATUS CanDelete(FSP_FILE_SYSTEM *FileSystem, +static NTSTATUS CanDelete(FSP_FILE_SYSTEM *FileSystem, FSP_FSCTL_TRANSACT_REQ *Request, PVOID FileNode0, PWSTR FileName) { @@ -578,7 +583,7 @@ NTSTATUS CanDelete(FSP_FILE_SYSTEM *FileSystem, return STATUS_SUCCESS; } -NTSTATUS Rename(FSP_FILE_SYSTEM *FileSystem, +static NTSTATUS Rename(FSP_FILE_SYSTEM *FileSystem, FSP_FSCTL_TRANSACT_REQ *Request, PVOID FileNode0, PWSTR FileName, PWSTR NewFileName, BOOLEAN ReplaceIfExists) diff --git a/tst/winfsp-tests/rdwr-test.c b/tst/winfsp-tests/rdwr-test.c new file mode 100644 index 00000000..9d759029 --- /dev/null +++ b/tst/winfsp-tests/rdwr-test.c @@ -0,0 +1,44 @@ +#include +#include +#include "memfs.h" + +void *memfs_start_ex(ULONG Flags, ULONG FileInfoTimeout); +void *memfs_start(ULONG Flags); +void memfs_stop(void *data); +PWSTR memfs_volumename(void *data); + +extern int NtfsTests; +extern int WinFspDiskTests; +extern int WinFspNetTests; + +void rdwr_noncached_dotest(ULONG Flags, PWSTR Prefix, ULONG FileInfoTimeout) +{ + void *memfs = memfs_start_ex(Flags, FileInfoTimeout); + + memfs_stop(memfs); +} + +void rdwr_noncached_test(void) +{ + if (NtfsTests) + { + WCHAR DirBuf[MAX_PATH] = L"\\\\?\\"; + GetCurrentDirectoryW(MAX_PATH - 4, DirBuf + 4); + rdwr_noncached_dotest(-1, DirBuf, 0); + } + if (WinFspDiskTests) + { + rdwr_noncached_dotest(MemfsDisk, 0, 0); + rdwr_noncached_dotest(MemfsDisk, 0, 1000); + } + if (WinFspNetTests) + { + rdwr_noncached_dotest(MemfsNet, L"\\\\memfs\\share", 0); + rdwr_noncached_dotest(MemfsNet, L"\\\\memfs\\share", 1000); + } +} + +void rdwr_tests(void) +{ + TEST(rdwr_noncached_test); +} diff --git a/tst/winfsp-tests/winfsp-tests.c b/tst/winfsp-tests/winfsp-tests.c index ea80d096..269585e1 100644 --- a/tst/winfsp-tests/winfsp-tests.c +++ b/tst/winfsp-tests/winfsp-tests.c @@ -13,6 +13,7 @@ int main(int argc, char *argv[]) TESTSUITE(create_tests); TESTSUITE(info_tests); TESTSUITE(security_tests); + TESTSUITE(rdwr_tests); tlib_run_tests(argc, argv); return 0;