mirror of
https://github.com/dashpay/dash.git
synced 2024-12-28 13:32:47 +01:00
Fix memory leak in wallet tests
This commit is contained in:
parent
f94f3e0df8
commit
6b03bfb840
@ -23,6 +23,8 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
std::vector<std::unique_ptr<CWalletTx>> wtxn;
|
||||||
|
|
||||||
typedef set<pair<const CWalletTx*,unsigned int> > CoinSet;
|
typedef set<pair<const CWalletTx*,unsigned int> > CoinSet;
|
||||||
|
|
||||||
BOOST_FIXTURE_TEST_SUITE(wallet_tests, WalletTestingSetup)
|
BOOST_FIXTURE_TEST_SUITE(wallet_tests, WalletTestingSetup)
|
||||||
@ -42,21 +44,21 @@ static void add_coin(const CAmount& nValue, int nAge = 6*24, bool fIsFromMe = fa
|
|||||||
// so stop vin being empty, and cache a non-zero Debit to fake out IsFromMe()
|
// so stop vin being empty, and cache a non-zero Debit to fake out IsFromMe()
|
||||||
tx.vin.resize(1);
|
tx.vin.resize(1);
|
||||||
}
|
}
|
||||||
CWalletTx* wtx = new CWalletTx(&wallet, MakeTransactionRef(std::move(tx)));
|
std::unique_ptr<CWalletTx> wtx(new CWalletTx(&wallet, MakeTransactionRef(std::move(tx))));
|
||||||
if (fIsFromMe)
|
if (fIsFromMe)
|
||||||
{
|
{
|
||||||
wtx->fDebitCached = true;
|
wtx->fDebitCached = true;
|
||||||
wtx->nDebitCached = 1;
|
wtx->nDebitCached = 1;
|
||||||
}
|
}
|
||||||
COutput output(wtx, nInput, nAge, true, true);
|
COutput output(wtx.get(), nInput, nAge, true, true);
|
||||||
vCoins.push_back(output);
|
vCoins.push_back(output);
|
||||||
|
wtxn.emplace_back(std::move(wtx));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void empty_wallet(void)
|
static void empty_wallet(void)
|
||||||
{
|
{
|
||||||
BOOST_FOREACH(COutput output, vCoins)
|
|
||||||
delete output.tx;
|
|
||||||
vCoins.clear();
|
vCoins.clear();
|
||||||
|
wtxn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool equal_sets(CoinSet a, CoinSet b)
|
static bool equal_sets(CoinSet a, CoinSet b)
|
||||||
@ -349,6 +351,8 @@ BOOST_AUTO_TEST_CASE(ApproximateBestSubset)
|
|||||||
BOOST_CHECK(wallet.SelectCoinsMinConf(1003 * COIN, 1, 6, 0, vCoins, setCoinsRet, nValueRet));
|
BOOST_CHECK(wallet.SelectCoinsMinConf(1003 * COIN, 1, 6, 0, vCoins, setCoinsRet, nValueRet));
|
||||||
BOOST_CHECK_EQUAL(nValueRet, 1003 * COIN);
|
BOOST_CHECK_EQUAL(nValueRet, 1003 * COIN);
|
||||||
BOOST_CHECK_EQUAL(setCoinsRet.size(), 2U);
|
BOOST_CHECK_EQUAL(setCoinsRet.size(), 2U);
|
||||||
|
|
||||||
|
empty_wallet();
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
Loading…
Reference in New Issue
Block a user