From edf726a7278dd5c7a4a18136895200cca688f9e2 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Wed, 15 Feb 2017 11:28:57 -0600 Subject: [PATCH] Try to clean-up properly after unit tests --- .../data0/consensus/consensus.db | Bin 0 -> 65536 bytes .../data0/consensus/consensus.db.lock | 0 .../data0/host/host.db | Bin 0 -> 32768 bytes .../data0/host/host.db.lock | 0 .../data0/host/host.json | 152 ++++++++++++++++++ .../host/storagemanager/storagemanager.db | Bin 0 -> 32768 bytes .../storagemanager/storagemanager.db.lock | 0 .../host/storagemanager/storagemanager.json | 6 + .../data0/miner/miner.json | 91 +++++++++++ .../data0/renter/contractor.json | 56 +++++++ .../data0/renter/hostdb.json | 40 +++++ .../data0/transactionpool/transactionpool.db | Bin 0 -> 32768 bytes .../transactionpool/transactionpool.db.lock | 0 ...ed Backup Seed - 63AIQ4S4THCDEGDNFGHT.seed | 40 +++++ .../data0/wallet/wallet.json | 80 +++++++++ UnitTests/UnitTestConfig.cpp | 93 +++++++++++ UnitTests/UnitTestConfig.h | 54 ++----- UnitTests/UnitTests.vcxproj | 1 + UnitTests/UnitTests.vcxproj.filters | 3 + 19 files changed, 573 insertions(+), 43 deletions(-) create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/consensus/consensus.db create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/consensus/consensus.db.lock create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/host/host.db create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/host/host.db.lock create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/host/host.json create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/host/storagemanager/storagemanager.db create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/host/storagemanager/storagemanager.db.lock create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/host/storagemanager/storagemanager.json create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/miner/miner.json create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/renter/contractor.json create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/renter/hostdb.json create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/transactionpool/transactionpool.db create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/transactionpool/transactionpool.db.lock create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/wallet/Sia Wallet Encrypted Backup Seed - 63AIQ4S4THCDEGDNFGHT.seed create mode 100644 3rd-party/Sia-v1.1.0-windows-amd64/data0/wallet/wallet.json create mode 100644 UnitTests/UnitTestConfig.cpp diff --git a/3rd-party/Sia-v1.1.0-windows-amd64/data0/consensus/consensus.db b/3rd-party/Sia-v1.1.0-windows-amd64/data0/consensus/consensus.db new file mode 100644 index 0000000000000000000000000000000000000000..6e6531a3e1c9d619dbbc09840d7e295ce10c32b4 GIT binary patch literal 65536 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 literal 0 HcmV?d00001 diff --git a/3rd-party/Sia-v1.1.0-windows-amd64/data0/consensus/consensus.db.lock b/3rd-party/Sia-v1.1.0-windows-amd64/data0/consensus/consensus.db.lock new file mode 100644 index 0000000..e69de29 diff --git a/3rd-party/Sia-v1.1.0-windows-amd64/data0/host/host.db b/3rd-party/Sia-v1.1.0-windows-amd64/data0/host/host.db new file mode 100644 index 0000000000000000000000000000000000000000..b2e12d0d622dbd551e91352125df85198a69f56d GIT binary patch literal 32768 zcmeI&y-Fid6ae5D-5*d`?Y5k4w-8Y*Y!;L)v=CVWTWK-sAi7>UpL@TX@gz2|vA(^&+09oGAV7cs0RjXF5FkK+ z0D(CZ$mjQ~UHY8w0hCl(AwYlt0RjXF5FkK+009C7=0hO!{mlRKJV5?GANSW)5FkK+ z009C72oNAZfB=Caka>RQ|M?Pqo&!)KK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ efB*pk1PBlyK!5-N0t5&UAV7cs0Rja6zrYi2$t=16 literal 0 HcmV?d00001 diff --git a/3rd-party/Sia-v1.1.0-windows-amd64/data0/host/host.db.lock b/3rd-party/Sia-v1.1.0-windows-amd64/data0/host/host.db.lock new file mode 100644 index 0000000..e69de29 diff --git a/3rd-party/Sia-v1.1.0-windows-amd64/data0/host/host.json b/3rd-party/Sia-v1.1.0-windows-amd64/data0/host/host.json new file mode 100644 index 0000000..8afec42 --- /dev/null +++ b/3rd-party/Sia-v1.1.0-windows-amd64/data0/host/host.json @@ -0,0 +1,152 @@ +"Sia Host" +"0.5" +{ + "downloadcalls": 0, + "erroredcalls": 0, + "formcontractcalls": 0, + "renewcalls": 0, + "revisecalls": 0, + "recentrevisioncalls": 0, + "settingscalls": 0, + "unrecognizedcalls": 0, + "blockheight": 0, + "recentchange": [ + 137, + 234, + 215, + 246, + 113, + 128, + 162, + 143, + 91, + 45, + 234, + 33, + 63, + 219, + 182, + 103, + 59, + 145, + 74, + 121, + 1, + 55, + 90, + 120, + 3, + 53, + 73, + 51, + 126, + 197, + 218, + 192 + ], + "announced": false, + "autoaddress": "", + "financialmetrics": { + "contractcount": 0, + "contractcompensation": "0", + "potentialcontractcompensation": "0", + "lockedstoragecollateral": "0", + "lostrevenue": "0", + "loststoragecollateral": "0", + "potentialstoragerevenue": "0", + "riskedstoragecollateral": "0", + "storagerevenue": "0", + "transactionfeeexpenses": "0", + "downloadbandwidthrevenue": "0", + "potentialdownloadbandwidthrevenue": "0", + "potentialuploadbandwidthrevenue": "0", + "uploadbandwidthrevenue": "0" + }, + "publickey": { + "algorithm": "ed25519", + "key": "lTMXt28S5M5FkAwyMf8UCJF+ZEnfTjQLFCGs/4kJjJc=" + }, + "revisionnumber": 0, + "secretkey": [ + 147, + 23, + 32, + 167, + 207, + 22, + 186, + 70, + 141, + 121, + 52, + 206, + 29, + 57, + 207, + 229, + 254, + 217, + 236, + 113, + 25, + 235, + 127, + 25, + 112, + 255, + 168, + 1, + 130, + 120, + 26, + 142, + 149, + 51, + 23, + 183, + 111, + 18, + 228, + 206, + 69, + 144, + 12, + 50, + 49, + 255, + 20, + 8, + 145, + 126, + 100, + 73, + 223, + 78, + 52, + 11, + 20, + 33, + 172, + 255, + 137, + 9, + 140, + 151 + ], + "settings": { + "acceptingcontracts": false, + "maxdownloadbatchsize": 17825792, + "maxduration": 25920, + "maxrevisebatchsize": 17825792, + "netaddress": "", + "windowsize": 144, + "collateral": "115740740740", + "collateralbudget": "2000000000000000000000000000000", + "maxcollateral": "100000000000000000000000000000", + "mincontractprice": "20000000000000000000000000", + "mindownloadbandwidthprice": "250000000000000", + "minstorageprice": "115740740740", + "minuploadbandwidthprice": "10000000000000" + }, + "unlockhash": "000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" +} \ No newline at end of file diff --git a/3rd-party/Sia-v1.1.0-windows-amd64/data0/host/storagemanager/storagemanager.db b/3rd-party/Sia-v1.1.0-windows-amd64/data0/host/storagemanager/storagemanager.db new file mode 100644 index 0000000000000000000000000000000000000000..f053e4c4a99aae5d743b5af52582b9df200e753d GIT binary patch literal 32768 zcmeI(Jxc>I7y#h2ehz}VxVYRbQUpP85iAZaor+E_M?JKN6>44lA^tf3gN}-uNqg^5 z(7lx>@LrO;(4^0ndvirGEh|m^{n50CZ^ULL+bVw{=) z0RjXF5FkK+009C72oRVbfu&|Cf9?Nce;+GeZW^)wkN(#6>*xO0$!UyJ6Cgl<009C7 z2oNAZfB*pk^CJ-Z`&Kb+<@W()ik+s;{j(GsDeh8qp8NOpxL5bbkE6?{>b6ezel79C z-FjTzRO9N`LFr~poS&B|@{5Jt6uBIvSWl4;9bDAaO+D%jsL_fYl11)R!|N^O$aD>7AgpbZ-v?{ccVE-_V9L1v`7?!f*^!| z`T@kkN;@H4Ky3U1f)P>#QXE_twDlQp9=L>UlmkWnBM6PbR7- zdHX#eE%8Fald%0siDrp{>mNyNpBsrxF_LYs#LMd)FN$kuFB7gt_2q1s}0tg_000Iaga8Cl7 zzfZX%x84KLd;a&dEtW+90R#|0009ILKmY**5I_KdItu7{KQ8~Dm33_Xe@&t`|Nlq& zcg+9W>8izM);-rg{gpZx-1u~Ok^5N5eP7@C{bf8l@U}LyJuBO<%-_97bYEbje0I68 zy8Csequkd2^JxCfw~^(B-sz>r?%}S_C+9z$2o(YdAb +#include "UnitTestConfig.h" + +std::uint16_t Daemon::_iter = 0; + +Daemon::Daemon() +{ + _i = _iter++; + Cleanup(); +} + +Daemon::~Daemon() +{ + Stop(); + Cleanup(); +} + +BOOL Daemon::DirectoryExists(const String& path) +{ + DWORD dwAttrib = GetFileAttributes(path.c_str()); + return ((dwAttrib != INVALID_FILE_ATTRIBUTES) && (dwAttrib & FILE_ATTRIBUTE_DIRECTORY)); +} + +void Daemon::Cleanup() +{ + BOOL failed = TRUE; + String path; + path.resize(MAX_PATH + 1); + GetFullPathName((L"\"..\\..\\..\\..\\3rd-party\\Sia-v1.1.0-windows-amd64\\data" + std::to_wstring(_i)).c_str(), MAX_PATH, &path[0], nullptr); + while (failed) + { + PROCESS_INFORMATION pi2; + STARTUPINFO si2; + ZeroMemory(&si2, sizeof(si2)); + si2.cb = sizeof(si2); + ZeroMemory(&pi2, sizeof(pi2)); + + String szCmdline = L"cmd.exe /c del /s /q \"" + path + L"\""; + CreateProcess(nullptr, &szCmdline[0], nullptr, nullptr, FALSE, 0, nullptr, nullptr, &si2, &pi2); + if (!(failed = (pi2.hProcess == 0))) + { + WaitForSingleObject(pi2.hProcess, INFINITE); + + CloseHandle(pi2.hProcess); + CloseHandle(pi2.hThread); + } + + ZeroMemory(&si2, sizeof(si2)); + si2.cb = sizeof(si2); + ZeroMemory(&pi2, sizeof(pi2)); + + szCmdline = L"cmd.exe /c rd /s /q \"" + path + L"\""; + CreateProcess(nullptr, &szCmdline[0], nullptr, nullptr, FALSE, 0, nullptr, nullptr, &si2, &pi2); + if (!(failed = (pi2.hProcess == 0))) + { + WaitForSingleObject(pi2.hProcess, INFINITE); + + CloseHandle(pi2.hProcess); + CloseHandle(pi2.hThread); + } + Sleep(100); + } +} + +void Daemon::Start() +{ + String path; + path.resize(MAX_PATH + 1); + GetFullPathName(L"\"..\\..\\..\\..\\3rd-party\\Sia-v1.1.0-windows-amd64\\", MAX_PATH, &path[0], nullptr); + + String exec; + exec.resize(MAX_PATH + 1); + GetFullPathName(L"\"..\\..\\..\\..\\3rd-party\\Sia-v1.1.0-windows-amd64\\siad.exe", MAX_PATH, &exec[0], nullptr); + + String szCmdline = L" -d .\\data" + std::to_wstring(_i) + L" --api-addr " + String(TEST_SERVER_HOST) + L":" + std::to_wstring(TEST_SERVER_PORT) + L" --no-bootstrap"; + CreateProcess(exec.c_str(), &szCmdline[0], nullptr, nullptr, FALSE, 0, nullptr, path.c_str(), &si, &pi); +} + +void Daemon::Stop() +{ + if (pi.hProcess) + { + TerminateProcess(pi.hProcess, -1); + + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); + + ZeroMemory(&si, sizeof(si)); + si.cb = sizeof(si); + ZeroMemory(&pi, sizeof(pi)); + } +} \ No newline at end of file diff --git a/UnitTests/UnitTestConfig.h b/UnitTests/UnitTestConfig.h index 410ecb6..27034eb 100644 --- a/UnitTests/UnitTestConfig.h +++ b/UnitTests/UnitTestConfig.h @@ -10,58 +10,26 @@ using namespace Sia::Api; class Daemon { public: - ~Daemon() - { - Stop(); - } + Daemon(); + +public: + ~Daemon(); private: + static std::uint16_t _iter; + std::uint16_t _i; PROCESS_INFORMATION pi; STARTUPINFO si; private: - void Cleanup() - { - ZeroMemory(&si, sizeof(si)); - si.cb = sizeof(si); - ZeroMemory(&pi, sizeof(pi)); + BOOL DirectoryExists(const String& path); - 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)); - } + void Cleanup(); public: - void Start() - { - Cleanup(); + void Start(); - 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(); - } - } + void Stop(); }; #define DAEMON_TEST() \ @@ -80,4 +48,4 @@ public: } -#define DEFINE_DAEMON(class) Daemon class::_daemon \ No newline at end of file +#define DEFINE_DAEMON(class) Daemon class::_daemon; diff --git a/UnitTests/UnitTests.vcxproj b/UnitTests/UnitTests.vcxproj index c8db1be..841f870 100644 --- a/UnitTests/UnitTests.vcxproj +++ b/UnitTests/UnitTests.vcxproj @@ -182,6 +182,7 @@ Create + diff --git a/UnitTests/UnitTests.vcxproj.filters b/UnitTests/UnitTests.vcxproj.filters index 608a1a4..17ea9f3 100644 --- a/UnitTests/UnitTests.vcxproj.filters +++ b/UnitTests/UnitTests.vcxproj.filters @@ -44,5 +44,8 @@ Source Files + + Source Files + \ No newline at end of file