1
0

Automated unit tests

This commit is contained in:
Scott E. Graves
2017-02-03 22:28:01 -06:00
parent cdaaafdb50
commit 232e71e57c
4 changed files with 78 additions and 3 deletions

View File

@@ -9,6 +9,8 @@ namespace UnitTests
{ {
TEST_CLASS(SiaApi) TEST_CLASS(SiaApi)
{ {
DAEMON_TEST()
private: private:
const SiaHostConfig _hostConfig = { TEST_SERVER_AND_PORT, TEST_SERVER_VERSION }; const SiaHostConfig _hostConfig = { TEST_SERVER_AND_PORT, TEST_SERVER_VERSION };
@@ -19,4 +21,6 @@ namespace UnitTests
Assert::IsTrue(api.GetServerVersion() == TEST_SERVER_VERSION); Assert::IsTrue(api.GetServerVersion() == TEST_SERVER_VERSION);
} }
}; };
Daemon SiaApi::_daemon;
} }

View File

@@ -9,6 +9,8 @@ namespace UnitTests
{ {
TEST_CLASS(SiaCurl) TEST_CLASS(SiaCurl)
{ {
DAEMON_TEST()
public: public:
TEST_METHOD(InvalidHostConfiguration) TEST_METHOD(InvalidHostConfiguration)
{ {
@@ -69,6 +71,7 @@ namespace UnitTests
SiaCurlError err = s.Get(L"~~~^**()Z&%$#daemon/version", result); SiaCurlError err = s.Get(L"~~~^**()Z&%$#daemon/version", result);
Assert::IsTrue(err == SiaCurlError::InvalidRequestPath); Assert::IsTrue(err == SiaCurlError::InvalidRequestPath);
} }
}; };
Daemon SiaCurl::_daemon;
} }

View File

@@ -9,6 +9,8 @@ namespace UnitTests
{ {
TEST_CLASS(SiaWalletApi) TEST_CLASS(SiaWalletApi)
{ {
DAEMON_TEST()
private: private:
CSiaApi _api = CSiaApi({ TEST_SERVER_AND_PORT, TEST_SERVER_VERSION }); CSiaApi _api = CSiaApi({ TEST_SERVER_AND_PORT, TEST_SERVER_VERSION });
@@ -40,4 +42,6 @@ namespace UnitTests
Assert::IsTrue(wallet->GetLocked()); Assert::IsTrue(wallet->GetLocked());
} }
}; };
Daemon SiaWalletApi::_daemon;
} }

View File

@@ -1,6 +1,70 @@
#pragma once #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" #define TEST_SERVER_VERSION L"1.1.0"
using namespace Sia::Api; 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();\
}