Browse Source

tests: move pwalletMain to wallet test fixture

Scope the variable instead of using an external global; this is how test
fixtures are intended to be used.

Followup to #11713.
0.16
Wladimir J. van der Laan 7 years ago
parent
commit
49bd6590fe
  1. 16
      src/wallet/test/accounting_tests.cpp
  2. 4
      src/wallet/test/wallet_test_fixture.cpp
  3. 4
      src/wallet/test/wallet_test_fixture.h
  4. 2
      src/wallet/test/wallet_tests.cpp

16
src/wallet/test/accounting_tests.cpp

@ -10,18 +10,16 @@
#include <boost/test/unit_test.hpp> #include <boost/test/unit_test.hpp>
extern std::unique_ptr<CWallet> pwalletMain;
BOOST_FIXTURE_TEST_SUITE(accounting_tests, WalletTestingSetup) BOOST_FIXTURE_TEST_SUITE(accounting_tests, WalletTestingSetup)
static void static void
GetResults(std::map<CAmount, CAccountingEntry>& results) GetResults(CWallet *wallet, std::map<CAmount, CAccountingEntry>& results)
{ {
std::list<CAccountingEntry> aes; std::list<CAccountingEntry> aes;
results.clear(); results.clear();
BOOST_CHECK(pwalletMain->ReorderTransactions() == DB_LOAD_OK); BOOST_CHECK(wallet->ReorderTransactions() == DB_LOAD_OK);
pwalletMain->ListAccountCreditDebit("", aes); wallet->ListAccountCreditDebit("", aes);
for (CAccountingEntry& ae : aes) for (CAccountingEntry& ae : aes)
{ {
results[ae.nOrderPos] = ae; results[ae.nOrderPos] = ae;
@ -54,7 +52,7 @@ BOOST_AUTO_TEST_CASE(acc_orderupgrade)
ae.strOtherAccount = "c"; ae.strOtherAccount = "c";
pwalletMain->AddAccountingEntry(ae); pwalletMain->AddAccountingEntry(ae);
GetResults(results); GetResults(pwalletMain.get(), results);
BOOST_CHECK(pwalletMain->nOrderPosNext == 3); BOOST_CHECK(pwalletMain->nOrderPosNext == 3);
BOOST_CHECK(2 == results.size()); BOOST_CHECK(2 == results.size());
@ -70,7 +68,7 @@ BOOST_AUTO_TEST_CASE(acc_orderupgrade)
ae.nOrderPos = pwalletMain->IncOrderPosNext(); ae.nOrderPos = pwalletMain->IncOrderPosNext();
pwalletMain->AddAccountingEntry(ae); pwalletMain->AddAccountingEntry(ae);
GetResults(results); GetResults(pwalletMain.get(), results);
BOOST_CHECK(results.size() == 3); BOOST_CHECK(results.size() == 3);
BOOST_CHECK(pwalletMain->nOrderPosNext == 4); BOOST_CHECK(pwalletMain->nOrderPosNext == 4);
@ -102,7 +100,7 @@ BOOST_AUTO_TEST_CASE(acc_orderupgrade)
vpwtx[2]->nTimeReceived = (unsigned int)1333333329; vpwtx[2]->nTimeReceived = (unsigned int)1333333329;
vpwtx[2]->nOrderPos = -1; vpwtx[2]->nOrderPos = -1;
GetResults(results); GetResults(pwalletMain.get(), results);
BOOST_CHECK(results.size() == 3); BOOST_CHECK(results.size() == 3);
BOOST_CHECK(pwalletMain->nOrderPosNext == 6); BOOST_CHECK(pwalletMain->nOrderPosNext == 6);
@ -120,7 +118,7 @@ BOOST_AUTO_TEST_CASE(acc_orderupgrade)
ae.nOrderPos = -1; ae.nOrderPos = -1;
pwalletMain->AddAccountingEntry(ae); pwalletMain->AddAccountingEntry(ae);
GetResults(results); GetResults(pwalletMain.get(), results);
BOOST_CHECK(results.size() == 4); BOOST_CHECK(results.size() == 4);
BOOST_CHECK(pwalletMain->nOrderPosNext == 7); BOOST_CHECK(pwalletMain->nOrderPosNext == 7);

4
src/wallet/test/wallet_test_fixture.cpp

@ -6,9 +6,6 @@
#include <rpc/server.h> #include <rpc/server.h>
#include <wallet/db.h> #include <wallet/db.h>
#include <wallet/wallet.h>
std::unique_ptr<CWallet> pwalletMain;
WalletTestingSetup::WalletTestingSetup(const std::string& chainName): WalletTestingSetup::WalletTestingSetup(const std::string& chainName):
TestingSetup(chainName) TestingSetup(chainName)
@ -27,7 +24,6 @@ WalletTestingSetup::WalletTestingSetup(const std::string& chainName):
WalletTestingSetup::~WalletTestingSetup() WalletTestingSetup::~WalletTestingSetup()
{ {
UnregisterValidationInterface(pwalletMain.get()); UnregisterValidationInterface(pwalletMain.get());
pwalletMain.reset();
bitdb.Flush(true); bitdb.Flush(true);
bitdb.Reset(); bitdb.Reset();

4
src/wallet/test/wallet_test_fixture.h

@ -7,11 +7,15 @@
#include <test/test_bitcoin.h> #include <test/test_bitcoin.h>
#include <wallet/wallet.h>
/** Testing setup and teardown for wallet. /** Testing setup and teardown for wallet.
*/ */
struct WalletTestingSetup: public TestingSetup { struct WalletTestingSetup: public TestingSetup {
explicit WalletTestingSetup(const std::string& chainName = CBaseChainParams::MAIN); explicit WalletTestingSetup(const std::string& chainName = CBaseChainParams::MAIN);
~WalletTestingSetup(); ~WalletTestingSetup();
std::unique_ptr<CWallet> pwalletMain;
}; };
#endif #endif

2
src/wallet/test/wallet_tests.cpp

@ -19,8 +19,6 @@
#include <boost/test/unit_test.hpp> #include <boost/test/unit_test.hpp>
#include <univalue.h> #include <univalue.h>
extern std::unique_ptr<CWallet> pwalletMain;
extern UniValue importmulti(const JSONRPCRequest& request); extern UniValue importmulti(const JSONRPCRequest& request);
extern UniValue dumpwallet(const JSONRPCRequest& request); extern UniValue dumpwallet(const JSONRPCRequest& request);
extern UniValue importwallet(const JSONRPCRequest& request); extern UniValue importwallet(const JSONRPCRequest& request);

Loading…
Cancel
Save