From 728c1b3402101b41405b5c5ec2b38c51563e7c82 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Tue, 25 Oct 2016 11:38:26 -0700 Subject: [PATCH] tst: winfsp-tests: add/remove network shares from memfs_start/memfs_stop to properly support test file system --- tst/winfsp-tests/memfs-test.c | 3 +++ tst/winfsp-tests/winfsp-tests.c | 19 +++++++++++++------ tst/winfsp-tests/winfsp-tests.h | 3 +++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/tst/winfsp-tests/memfs-test.c b/tst/winfsp-tests/memfs-test.c index 193cea2e..c7d87498 100644 --- a/tst/winfsp-tests/memfs-test.c +++ b/tst/winfsp-tests/memfs-test.c @@ -11,6 +11,7 @@ void *memfs_start_ex(ULONG Flags, ULONG FileInfoTimeout) { if (-1 == Flags) { + AddNetShareIfNeeded(); memfs_running = 1; return 0; } @@ -38,6 +39,7 @@ void *memfs_start_ex(ULONG Flags, ULONG FileInfoTimeout) Result = MemfsStart(Memfs); ASSERT(NT_SUCCESS(Result)); + AddNetShareIfNeeded(); memfs_running = 1; return Memfs; @@ -50,6 +52,7 @@ void *memfs_start(ULONG Flags) void memfs_stop(void *data) { + RemoveNetShareIfNeeded(); memfs_running = 0; if (0 == data) diff --git a/tst/winfsp-tests/winfsp-tests.c b/tst/winfsp-tests/winfsp-tests.c index b315e6d9..c33d69db 100644 --- a/tst/winfsp-tests/winfsp-tests.c +++ b/tst/winfsp-tests/winfsp-tests.c @@ -227,8 +227,11 @@ static VOID DisableBackupRestorePrivileges(VOID) CloseHandle(Token); } -static VOID AddNetworkShare(VOID) +VOID AddNetShareIfNeeded(VOID) { + if (!OptShareName) + return; + SHARE_INFO_2 ShareInfo = { 0 }; NET_API_STATUS NetStatus; @@ -244,6 +247,14 @@ static VOID AddNetworkShare(VOID) ABORT("cannot add network share"); } +VOID RemoveNetShareIfNeeded(VOID) +{ + if (!OptShareName) + return; + + NetShareDel(0, OptShareName, 0); +} + static void abort_handler(int sig) { DWORD Error = GetLastError(); @@ -348,9 +359,6 @@ int main(int argc, char *argv[]) DisableBackupRestorePrivileges(); - if (OptShareName) - AddNetworkShare(); - myrandseed = (unsigned)time(0); tlib_run_tests(argc, argv); @@ -360,6 +368,5 @@ int main(int argc, char *argv[]) static void exiting(void) { OutputDebugStringA("winfsp-tests: exiting\n"); - if (OptShareName) - NetShareDel(0, OptShareName, 0); + RemoveNetShareIfNeeded(); } diff --git a/tst/winfsp-tests/winfsp-tests.h b/tst/winfsp-tests/winfsp-tests.h index c1d9da30..6ad1ff24 100644 --- a/tst/winfsp-tests/winfsp-tests.h +++ b/tst/winfsp-tests/winfsp-tests.h @@ -17,6 +17,9 @@ HANDLE HookCreateFileW( DWORD dwFlagsAndAttributes, HANDLE hTemplateFile); +VOID AddNetShareIfNeeded(VOID); +VOID RemoveNetShareIfNeeded(VOID); + extern int NtfsTests; extern int WinFspDiskTests; extern int WinFspNetTests;