/** * @file winfsp-tests.h * * @copyright 2015-2016 Bill Zissimopoulos */ /* * This file is part of WinFsp. * * You can redistribute it and/or modify it under the terms of the GNU * General Public License version 3 as published by the Free Software * Foundation. * * Licensees holding a valid commercial license may use this file in * accordance with the commercial license agreement provided with the * software. */ #include #define ABORT(s)\ do\ {\ void tlib_printf(const char *fmt, ...);\ tlib_printf("ABORT: %s: %s\n", __func__, s);\ abort();\ } while (0,0) #define testalpha(c) ('a' <= ((c) | 0x20) && ((c) | 0x20) <= 'z') #define togglealpha(c) ((c) ^ 0x20) #if !defined(WINFSP_TESTS_NO_HOOKS) #define CreateFileW HookCreateFileW #define CloseHandle HookCloseHandle #define DeleteFileW HookDeleteFileW #define RemoveDirectoryW HookRemoveDirectoryW #endif HANDLE HookCreateFileW( LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile); BOOL HookCloseHandle( HANDLE hObject); BOOL HookDeleteFileW( LPCWSTR lpFileName); BOOL HookRemoveDirectoryW( LPCWSTR lpPathName); HANDLE ResilientCreateFileW( LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile); BOOL ResilientCloseHandle( HANDLE hObject); BOOL ResilientDeleteFileW( LPCWSTR lpFileName); typedef struct { BOOLEAN Disposition; } MY_FILE_DISPOSITION_INFO; void *memfs_start_ex(ULONG Flags, ULONG FileInfoTimeout); void *memfs_start(ULONG Flags); void memfs_stop(void *data); PWSTR memfs_volumename(void *data); int mywcscmp(PWSTR a, int alen, PWSTR b, int blen); int myrand(void); extern int NtfsTests; extern int WinFspDiskTests; extern int WinFspNetTests; extern BOOLEAN OptResilient; extern BOOLEAN OptCaseInsensitive; extern BOOLEAN OptCaseRandomize; extern WCHAR OptMountPointBuf[], *OptMountPoint; extern WCHAR OptShareNameBuf[], *OptShareName, *OptShareTarget; extern WCHAR OptShareComputer[]; extern ULONG OptSharePrefixLength; extern HANDLE OptNoTraverseToken; extern LUID OptNoTraverseLuid; extern int memfs_running;