winfsp-tests: create_test

This commit is contained in:
Bill Zissimopoulos 2016-01-20 22:06:32 -08:00
parent 8d9a998c35
commit 9eb7d58336

View File

@ -15,6 +15,7 @@ void create_dotest(ULONG Flags, PWSTR Prefix)
void *memfs = memfs_start(Flags); void *memfs = memfs_start(Flags);
HANDLE Handle; HANDLE Handle;
BOOLEAN Success;
WCHAR FilePath[MAX_PATH]; WCHAR FilePath[MAX_PATH];
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\file0", StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\file0",
@ -45,7 +46,6 @@ void create_dotest(ULONG Flags, PWSTR Prefix)
ASSERT(INVALID_HANDLE_VALUE == Handle); ASSERT(INVALID_HANDLE_VALUE == Handle);
ASSERT(ERROR_FILE_NOT_FOUND == GetLastError()); ASSERT(ERROR_FILE_NOT_FOUND == GetLastError());
#if 0
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\dir1", StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\dir1",
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs)); Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));
@ -63,6 +63,22 @@ void create_dotest(ULONG Flags, PWSTR Prefix)
ASSERT(INVALID_HANDLE_VALUE != Handle); ASSERT(INVALID_HANDLE_VALUE != Handle);
CloseHandle(Handle); CloseHandle(Handle);
{
/* attempt to DELETE_ON_CLOSE a non-empty directory! */
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\dir1",
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));
Handle = CreateFileW(FilePath,
GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_DELETE_ON_CLOSE, 0);
ASSERT(INVALID_HANDLE_VALUE != Handle);
CloseHandle(Handle);
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\dir1\\file2",
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));
}
Handle = CreateFileW(FilePath, Handle = CreateFileW(FilePath,
GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, 0); GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, 0);
ASSERT(INVALID_HANDLE_VALUE != Handle); ASSERT(INVALID_HANDLE_VALUE != Handle);
@ -82,7 +98,6 @@ void create_dotest(ULONG Flags, PWSTR Prefix)
FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_DELETE_ON_CLOSE, 0); FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_DELETE_ON_CLOSE, 0);
ASSERT(INVALID_HANDLE_VALUE == Handle); ASSERT(INVALID_HANDLE_VALUE == Handle);
ASSERT(ERROR_FILE_NOT_FOUND == GetLastError()); ASSERT(ERROR_FILE_NOT_FOUND == GetLastError());
#endif
memfs_stop(memfs); memfs_stop(memfs);
} }