tst: winfsp-tests: add/remove network shares from memfs_start/memfs_stop to properly support test file system

This commit is contained in:
Bill Zissimopoulos 2016-10-25 11:38:26 -07:00
parent 8b31b1018b
commit 728c1b3402
3 changed files with 19 additions and 6 deletions

View File

@ -11,6 +11,7 @@ void *memfs_start_ex(ULONG Flags, ULONG FileInfoTimeout)
{ {
if (-1 == Flags) if (-1 == Flags)
{ {
AddNetShareIfNeeded();
memfs_running = 1; memfs_running = 1;
return 0; return 0;
} }
@ -38,6 +39,7 @@ void *memfs_start_ex(ULONG Flags, ULONG FileInfoTimeout)
Result = MemfsStart(Memfs); Result = MemfsStart(Memfs);
ASSERT(NT_SUCCESS(Result)); ASSERT(NT_SUCCESS(Result));
AddNetShareIfNeeded();
memfs_running = 1; memfs_running = 1;
return Memfs; return Memfs;
@ -50,6 +52,7 @@ void *memfs_start(ULONG Flags)
void memfs_stop(void *data) void memfs_stop(void *data)
{ {
RemoveNetShareIfNeeded();
memfs_running = 0; memfs_running = 0;
if (0 == data) if (0 == data)

View File

@ -227,8 +227,11 @@ static VOID DisableBackupRestorePrivileges(VOID)
CloseHandle(Token); CloseHandle(Token);
} }
static VOID AddNetworkShare(VOID) VOID AddNetShareIfNeeded(VOID)
{ {
if (!OptShareName)
return;
SHARE_INFO_2 ShareInfo = { 0 }; SHARE_INFO_2 ShareInfo = { 0 };
NET_API_STATUS NetStatus; NET_API_STATUS NetStatus;
@ -244,6 +247,14 @@ static VOID AddNetworkShare(VOID)
ABORT("cannot add network share"); ABORT("cannot add network share");
} }
VOID RemoveNetShareIfNeeded(VOID)
{
if (!OptShareName)
return;
NetShareDel(0, OptShareName, 0);
}
static void abort_handler(int sig) static void abort_handler(int sig)
{ {
DWORD Error = GetLastError(); DWORD Error = GetLastError();
@ -348,9 +359,6 @@ int main(int argc, char *argv[])
DisableBackupRestorePrivileges(); DisableBackupRestorePrivileges();
if (OptShareName)
AddNetworkShare();
myrandseed = (unsigned)time(0); myrandseed = (unsigned)time(0);
tlib_run_tests(argc, argv); tlib_run_tests(argc, argv);
@ -360,6 +368,5 @@ int main(int argc, char *argv[])
static void exiting(void) static void exiting(void)
{ {
OutputDebugStringA("winfsp-tests: exiting\n"); OutputDebugStringA("winfsp-tests: exiting\n");
if (OptShareName) RemoveNetShareIfNeeded();
NetShareDel(0, OptShareName, 0);
} }

View File

@ -17,6 +17,9 @@ HANDLE HookCreateFileW(
DWORD dwFlagsAndAttributes, DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile); HANDLE hTemplateFile);
VOID AddNetShareIfNeeded(VOID);
VOID RemoveNetShareIfNeeded(VOID);
extern int NtfsTests; extern int NtfsTests;
extern int WinFspDiskTests; extern int WinFspDiskTests;
extern int WinFspNetTests; extern int WinFspNetTests;