Automated unit tests
This commit is contained in:
@@ -9,6 +9,8 @@ namespace UnitTests
|
||||
{
|
||||
TEST_CLASS(SiaApi)
|
||||
{
|
||||
DAEMON_TEST()
|
||||
|
||||
private:
|
||||
const SiaHostConfig _hostConfig = { TEST_SERVER_AND_PORT, TEST_SERVER_VERSION };
|
||||
|
||||
@@ -19,4 +21,6 @@ namespace UnitTests
|
||||
Assert::IsTrue(api.GetServerVersion() == TEST_SERVER_VERSION);
|
||||
}
|
||||
};
|
||||
|
||||
Daemon SiaApi::_daemon;
|
||||
}
|
@@ -9,6 +9,8 @@ namespace UnitTests
|
||||
{
|
||||
TEST_CLASS(SiaCurl)
|
||||
{
|
||||
DAEMON_TEST()
|
||||
|
||||
public:
|
||||
TEST_METHOD(InvalidHostConfiguration)
|
||||
{
|
||||
@@ -69,6 +71,7 @@ namespace UnitTests
|
||||
SiaCurlError err = s.Get(L"~~~^**()Z&%$#daemon/version", result);
|
||||
Assert::IsTrue(err == SiaCurlError::InvalidRequestPath);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Daemon SiaCurl::_daemon;
|
||||
}
|
@@ -9,6 +9,8 @@ namespace UnitTests
|
||||
{
|
||||
TEST_CLASS(SiaWalletApi)
|
||||
{
|
||||
DAEMON_TEST()
|
||||
|
||||
private:
|
||||
CSiaApi _api = CSiaApi({ TEST_SERVER_AND_PORT, TEST_SERVER_VERSION });
|
||||
|
||||
@@ -40,4 +42,6 @@ namespace UnitTests
|
||||
Assert::IsTrue(wallet->GetLocked());
|
||||
}
|
||||
};
|
||||
|
||||
Daemon SiaWalletApi::_daemon;
|
||||
}
|
@@ -1,6 +1,70 @@
|
||||
#pragma once
|
||||
|
||||
#define TEST_SERVER_AND_PORT L"localhost", 9980
|
||||
#define TEST_SERVER_AND_PORT L"localhost", 19980
|
||||
#define TEST_SERVER_VERSION L"1.1.0"
|
||||
|
||||
using namespace Sia::Api;
|
||||
|
||||
class Daemon
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
void Start()
|
||||
{
|
||||
Cleanup();
|
||||
ZeroMemory(&si, sizeof(si));
|
||||
si.cb = sizeof(si);
|
||||
ZeroMemory(&pi, sizeof(pi));
|
||||
|
||||
String szCmdline = L"\"..\\..\\3rd-party\\Sia-v1.1.0-windows-amd64\\siad.exe\" -d .\\data --api-addr localhost:19980";
|
||||
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();\
|
||||
}
|
Reference in New Issue
Block a user