Browse Source

locks: don't lock cs_wallet before making rpc calls

0.13
Cory Fields 9 years ago
parent
commit
605433ffb5
  1. 39
      src/test/rpc_wallet_tests.cpp

39
src/test/rpc_wallet_tests.cpp

@ -27,8 +27,6 @@ BOOST_FIXTURE_TEST_SUITE(rpc_wallet_tests, TestingSetup)
BOOST_AUTO_TEST_CASE(rpc_addmultisig) BOOST_AUTO_TEST_CASE(rpc_addmultisig)
{ {
LOCK(pwalletMain->cs_wallet);
rpcfn_type addmultisig = tableRPC["addmultisigaddress"]->actor; rpcfn_type addmultisig = tableRPC["addmultisigaddress"]->actor;
// old, 65-byte-long: // old, 65-byte-long:
@ -68,25 +66,28 @@ BOOST_AUTO_TEST_CASE(rpc_wallet)
{ {
// Test RPC calls for various wallet statistics // Test RPC calls for various wallet statistics
UniValue r; UniValue r;
CPubKey demoPubkey;
LOCK2(cs_main, pwalletMain->cs_wallet); CBitcoinAddress demoAddress;
CPubKey demoPubkey = pwalletMain->GenerateNewKey();
CBitcoinAddress demoAddress = CBitcoinAddress(CTxDestination(demoPubkey.GetID()));
UniValue retValue; UniValue retValue;
string strAccount = "walletDemoAccount"; string strAccount = "walletDemoAccount";
string strPurpose = "receive"; CBitcoinAddress setaccountDemoAddress;
BOOST_CHECK_NO_THROW({ /*Initialize Wallet with an account */ {
CWalletDB walletdb(pwalletMain->strWalletFile); LOCK(pwalletMain->cs_wallet);
CAccount account;
account.vchPubKey = demoPubkey; demoPubkey = pwalletMain->GenerateNewKey();
pwalletMain->SetAddressBook(account.vchPubKey.GetID(), strAccount, strPurpose); demoAddress = CBitcoinAddress(CTxDestination(demoPubkey.GetID()));
walletdb.WriteAccount(strAccount, account); string strPurpose = "receive";
}); BOOST_CHECK_NO_THROW({ /*Initialize Wallet with an account */
CWalletDB walletdb(pwalletMain->strWalletFile);
CPubKey setaccountDemoPubkey = pwalletMain->GenerateNewKey(); CAccount account;
CBitcoinAddress setaccountDemoAddress = CBitcoinAddress(CTxDestination(setaccountDemoPubkey.GetID())); account.vchPubKey = demoPubkey;
pwalletMain->SetAddressBook(account.vchPubKey.GetID(), strAccount, strPurpose);
walletdb.WriteAccount(strAccount, account);
});
CPubKey setaccountDemoPubkey = pwalletMain->GenerateNewKey();
setaccountDemoAddress = CBitcoinAddress(CTxDestination(setaccountDemoPubkey.GetID()));
}
/********************************* /*********************************
* setaccount * setaccount
*********************************/ *********************************/

Loading…
Cancel
Save