diff options
author | Bushstar <bushsolo@gmail.com> | 2020-03-10 07:42:31 +0000 |
---|---|---|
committer | Bushstar <bushsolo@gmail.com> | 2020-03-10 07:42:31 +0000 |
commit | 7486e2771e7b5d6fa84df6e954be76350c84e220 (patch) | |
tree | 3a2862309ce56cdd23397a769b0bf97cb58856ee /src/wallet/test/walletdb_tests.cpp | |
parent | 32def8d1c29e0855fe5429687acabd2f29119316 (diff) | |
download | bitcoin-7486e2771e7b5d6fa84df6e954be76350c84e220.tar.xz |
Tests: Unit test related to WalletDB ReadKeyValue
Diffstat (limited to 'src/wallet/test/walletdb_tests.cpp')
-rw-r--r-- | src/wallet/test/walletdb_tests.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/wallet/test/walletdb_tests.cpp b/src/wallet/test/walletdb_tests.cpp new file mode 100644 index 0000000000..a3859e2e4b --- /dev/null +++ b/src/wallet/test/walletdb_tests.cpp @@ -0,0 +1,29 @@ +// Copyright (c) 2012-2019 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 <test/util/setup_common.h> +#include <clientversion.h> +#include <streams.h> +#include <uint256.h> + +#include <boost/test/unit_test.hpp> + +BOOST_FIXTURE_TEST_SUITE(walletdb_tests, BasicTestingSetup) + +BOOST_AUTO_TEST_CASE(walletdb_readkeyvalue) +{ + /** + * When ReadKeyValue() reads from either a "key" or "wkey" it first reads the CDataStream steam into a + * CPrivKey or CWalletKey respectively and then reads a hash of the pubkey and privkey into a uint256. + * Wallets from 0.8 or before do not store the pubkey/privkey hash, trying to read the hash from old + * wallets throws an exception, for backwards compatibility this read is wrapped in a try block to + * silently fail. The test here makes sure the type of exception thrown from CDataStream::read() + * matches the type we expect, otherwise we need to update the "key"/"wkey" exception type caught. + */ + CDataStream ssValue(SER_DISK, CLIENT_VERSION); + uint256 dummy; + BOOST_CHECK_THROW(ssValue >> dummy, std::ios_base::failure); +} + +BOOST_AUTO_TEST_SUITE_END() |