mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-12 18:44:59 +01:00
New global variables were introduced in #11882 and not setting them causes: wallet/test/wallet_tests.cpp(638): error in "ListCoins": check wallet->CreateTransaction({recipient}, wtx, reservekey, fee, changePos, error, dummy) failed wallet/test/wallet_tests.cpp(679): error in "ListCoins": check list.begin()->second.size() == 2 failed [1 != 2] wallet/test/wallet_tests.cpp(686): error in "ListCoins": check available.size() == 2 failed [1 != 2] wallet/test/wallet_tests.cpp(705): error in "ListCoins": check list.begin()->second.size() == 2 failed [1 != 2] It's possible to reproduce the failure reliably by running: src/test/test_bitcoin --log_level=test_suite --run_test=wallet_tests/ListCoins Failures happen nondeterministically because boost test framework doesn't run tests in a specified order, and tests that run previously can set the global variables and mask the bug.
31 lines
941 B
C++
31 lines
941 B
C++
// Copyright (c) 2016-2017 The Bitcoin Core developers
|
|
// Distributed under the MIT software license, see the accompanying
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#include <wallet/test/wallet_test_fixture.h>
|
|
|
|
#include <rpc/server.h>
|
|
#include <wallet/db.h>
|
|
|
|
WalletTestingSetup::WalletTestingSetup(const std::string& chainName):
|
|
TestingSetup(chainName)
|
|
{
|
|
bitdb.MakeMock();
|
|
bool fFirstRun;
|
|
g_address_type = OUTPUT_TYPE_DEFAULT;
|
|
g_change_type = OUTPUT_TYPE_DEFAULT;
|
|
std::unique_ptr<CWalletDBWrapper> dbw(new CWalletDBWrapper(&bitdb, "wallet_test.dat"));
|
|
pwalletMain = MakeUnique<CWallet>(std::move(dbw));
|
|
pwalletMain->LoadWallet(fFirstRun);
|
|
RegisterValidationInterface(pwalletMain.get());
|
|
|
|
RegisterWalletRPCCommands(tableRPC);
|
|
}
|
|
|
|
WalletTestingSetup::~WalletTestingSetup()
|
|
{
|
|
UnregisterValidationInterface(pwalletMain.get());
|
|
|
|
bitdb.Flush(true);
|
|
bitdb.Reset();
|
|
}
|