1
0
This repository has been archived on 2025-07-27. You can view files and clone it, but cannot push or open issues or pull requests.
Files
siadrive/UnitTests/UnitTestConfig.h
Scott E. Graves 43b301f0bc More changes
2017-02-04 00:51:43 -06:00

83 lines
1.5 KiB
C++

#pragma once
#define TEST_SERVER_HOST L"localhost"
#define TEST_SERVER_PORT 11980
#define TEST_SERVER_AND_PORT TEST_SERVER_HOST, TEST_SERVER_PORT
#define TEST_SERVER_VERSION L"1.1.0"
using namespace Sia::Api;
class Daemon
{
public:
~Daemon()
{
Stop();
}
private:
PROCESS_INFORMATION pi;
STARTUPINFO si;
private:
void Cleanup()
{
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
String szCmdline = L"cmd.exe /c del /s /q .\\data";
CreateProcess(nullptr, &szCmdline[0], nullptr, nullptr, TRUE, 0, nullptr, nullptr, &si, &pi);
if (pi.hProcess)
{
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
}
public:
void Start()
{
Cleanup();
String szCmdline = L"\"..\\..\\3rd-party\\Sia-v1.1.0-windows-amd64\\siad.exe\" -d .\\data --api-addr " + String(TEST_SERVER_HOST) + L":" + std::to_wstring(TEST_SERVER_PORT) + L" --no-bootstrap";
CreateProcess(nullptr, &szCmdline[0], nullptr, nullptr, TRUE, 0, nullptr, nullptr, &si, &pi);
}
void Stop()
{
if (pi.hProcess)
{
TerminateProcess(pi.hProcess, 0);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
Cleanup();
}
}
};
#define DAEMON_TEST() \
private:\
static Daemon _daemon; \
\
public:\
TEST_CLASS_INITIALIZE(StartDaemon)\
{\
_daemon.Start();\
}\
\
TEST_CLASS_CLEANUP(StopDaemon)\
{\
_daemon.Stop();\
}
#define DEFINE_DAEMON(class) Daemon class::_daemon