Coverage Report

Created: 2026-04-29 19:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/tmp/bitcoin/src/wallet/test/walletdb_tests.cpp
Line
Count
Source
1
// Copyright (c) 2012-present The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#include <test/util/setup_common.h>
6
#include <clientversion.h>
7
#include <streams.h>
8
#include <uint256.h>
9
#include <wallet/test/util.h>
10
#include <wallet/wallet.h>
11
12
#include <boost/test/unit_test.hpp>
13
14
namespace wallet {
15
BOOST_FIXTURE_TEST_SUITE(walletdb_tests, BasicTestingSetup)
16
17
BOOST_AUTO_TEST_CASE(walletdb_readkeyvalue)
18
1
{
19
    /**
20
     * When ReadKeyValue() reads from either a "key" or "wkey" it first reads the DataStream into a
21
     * CPrivKey or CWalletKey respectively and then reads a hash of the pubkey and privkey into a uint256.
22
     * Wallets from 0.8 or before do not store the pubkey/privkey hash, trying to read the hash from old
23
     * wallets throws an exception, for backwards compatibility this read is wrapped in a try block to
24
     * silently fail. The test here makes sure the type of exception thrown from DataStream::read()
25
     * matches the type we expect, otherwise we need to update the "key"/"wkey" exception type caught.
26
     */
27
1
    DataStream ssValue{};
28
1
    uint256 dummy;
29
    BOOST_CHECK_THROW(ssValue >> dummy, std::ios_base::failure);
30
1
}
31
32
BOOST_AUTO_TEST_SUITE_END()
33
} // namespace wallet