mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
wallet, test: Be able to always swap BDB endianness
This commit is contained in:
parent
0b753156ce
commit
d51fbab4b3
5 changed files with 12 additions and 1 deletions
|
@ -53,6 +53,7 @@ void DummyWalletInit::AddWalletOptions(ArgsManager& argsman) const
|
||||||
"-walletrejectlongchains",
|
"-walletrejectlongchains",
|
||||||
"-walletcrosschain",
|
"-walletcrosschain",
|
||||||
"-unsafesqlitesync",
|
"-unsafesqlitesync",
|
||||||
|
"-swapbdbendian",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -87,8 +87,9 @@ void WalletInit::AddWalletOptions(ArgsManager& argsman) const
|
||||||
argsman.AddArg("-dblogsize=<n>", strprintf("Flush wallet database activity from memory to disk log every <n> megabytes (default: %u)", DatabaseOptions().max_log_mb), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::WALLET_DEBUG_TEST);
|
argsman.AddArg("-dblogsize=<n>", strprintf("Flush wallet database activity from memory to disk log every <n> megabytes (default: %u)", DatabaseOptions().max_log_mb), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::WALLET_DEBUG_TEST);
|
||||||
argsman.AddArg("-flushwallet", strprintf("Run a thread to flush wallet periodically (default: %u)", DEFAULT_FLUSHWALLET), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::WALLET_DEBUG_TEST);
|
argsman.AddArg("-flushwallet", strprintf("Run a thread to flush wallet periodically (default: %u)", DEFAULT_FLUSHWALLET), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::WALLET_DEBUG_TEST);
|
||||||
argsman.AddArg("-privdb", strprintf("Sets the DB_PRIVATE flag in the wallet db environment (default: %u)", !DatabaseOptions().use_shared_memory), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::WALLET_DEBUG_TEST);
|
argsman.AddArg("-privdb", strprintf("Sets the DB_PRIVATE flag in the wallet db environment (default: %u)", !DatabaseOptions().use_shared_memory), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::WALLET_DEBUG_TEST);
|
||||||
|
argsman.AddArg("-swapbdbendian", "Swaps the internal endianness of BDB wallet databases (default: false)", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::WALLET_DEBUG_TEST);
|
||||||
#else
|
#else
|
||||||
argsman.AddHiddenArgs({"-dblogsize", "-flushwallet", "-privdb"});
|
argsman.AddHiddenArgs({"-dblogsize", "-flushwallet", "-privdb", "-swapbdbendian"});
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_SQLITE
|
#ifdef USE_SQLITE
|
||||||
|
|
|
@ -375,7 +375,12 @@ std::shared_ptr<CWallet> CreateWallet(WalletContext& context, const std::string&
|
||||||
uint64_t wallet_creation_flags = options.create_flags;
|
uint64_t wallet_creation_flags = options.create_flags;
|
||||||
const SecureString& passphrase = options.create_passphrase;
|
const SecureString& passphrase = options.create_passphrase;
|
||||||
|
|
||||||
|
ArgsManager& args = *Assert(context.args);
|
||||||
|
|
||||||
if (wallet_creation_flags & WALLET_FLAG_DESCRIPTORS) options.require_format = DatabaseFormat::SQLITE;
|
if (wallet_creation_flags & WALLET_FLAG_DESCRIPTORS) options.require_format = DatabaseFormat::SQLITE;
|
||||||
|
else if (args.GetBoolArg("-swapbdbendian", false)) {
|
||||||
|
options.require_format = DatabaseFormat::BERKELEY_SWAP;
|
||||||
|
}
|
||||||
|
|
||||||
// Indicate that the wallet is actually supposed to be blank and not just blank to make it encrypted
|
// Indicate that the wallet is actually supposed to be blank and not just blank to make it encrypted
|
||||||
bool create_blank = (wallet_creation_flags & WALLET_FLAG_BLANK_WALLET);
|
bool create_blank = (wallet_creation_flags & WALLET_FLAG_BLANK_WALLET);
|
||||||
|
|
|
@ -193,6 +193,7 @@ BASE_SCRIPTS = [
|
||||||
'wallet_txn_doublespend.py --mineblock',
|
'wallet_txn_doublespend.py --mineblock',
|
||||||
'tool_wallet.py --legacy-wallet',
|
'tool_wallet.py --legacy-wallet',
|
||||||
'tool_wallet.py --legacy-wallet --bdbro',
|
'tool_wallet.py --legacy-wallet --bdbro',
|
||||||
|
'tool_wallet.py --legacy-wallet --bdbro --swap-bdb-endian',
|
||||||
'tool_wallet.py --descriptors',
|
'tool_wallet.py --descriptors',
|
||||||
'tool_signet_miner.py --legacy-wallet',
|
'tool_signet_miner.py --legacy-wallet',
|
||||||
'tool_signet_miner.py --descriptors',
|
'tool_signet_miner.py --descriptors',
|
||||||
|
|
|
@ -24,11 +24,14 @@ class ToolWalletTest(BitcoinTestFramework):
|
||||||
def add_options(self, parser):
|
def add_options(self, parser):
|
||||||
self.add_wallet_options(parser)
|
self.add_wallet_options(parser)
|
||||||
parser.add_argument("--bdbro", action="store_true", help="Use the BerkeleyRO internal parser when dumping a Berkeley DB wallet file")
|
parser.add_argument("--bdbro", action="store_true", help="Use the BerkeleyRO internal parser when dumping a Berkeley DB wallet file")
|
||||||
|
parser.add_argument("--swap-bdb-endian", action="store_true",help="When making Legacy BDB wallets, always make then byte swapped internally")
|
||||||
|
|
||||||
def set_test_params(self):
|
def set_test_params(self):
|
||||||
self.num_nodes = 1
|
self.num_nodes = 1
|
||||||
self.setup_clean_chain = True
|
self.setup_clean_chain = True
|
||||||
self.rpc_timeout = 120
|
self.rpc_timeout = 120
|
||||||
|
if self.options.swap_bdb_endian:
|
||||||
|
self.extra_args = [["-swapbdbendian"]]
|
||||||
|
|
||||||
def skip_test_if_missing_module(self):
|
def skip_test_if_missing_module(self):
|
||||||
self.skip_if_no_wallet()
|
self.skip_if_no_wallet()
|
||||||
|
|
Loading…
Add table
Reference in a new issue