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)
{
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)

View File

@ -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();
}

View File

@ -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;