Bitcoin Core
21.99.0
P2P Digital Currency
src
wallet
test
init_test_fixture.cpp
Go to the documentation of this file.
1
// Copyright (c) 2018-2020 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 <
fs.h
>
6
#include <
univalue.h
>
7
#include <
util/check.h
>
8
#include <
util/system.h
>
9
10
#include <
wallet/test/init_test_fixture.h
>
11
12
InitWalletDirTestingSetup::InitWalletDirTestingSetup
(
const
std::string& chainName) : BasicTestingSetup(chainName)
13
{
14
m_wallet_client
=
MakeWalletClient
(*
m_node
.
chain
, *
Assert
(
m_node
.
args
));
15
16
std::string sep;
17
sep += fs::path::preferred_separator;
18
19
m_datadir
=
GetDataDir
();
20
m_cwd
= fs::current_path();
21
22
m_walletdir_path_cases
[
"default"
] =
m_datadir
/
"wallets"
;
23
m_walletdir_path_cases
[
"custom"
] =
m_datadir
/
"my_wallets"
;
24
m_walletdir_path_cases
[
"nonexistent"
] =
m_datadir
/
"path_does_not_exist"
;
25
m_walletdir_path_cases
[
"file"
] =
m_datadir
/
"not_a_directory.dat"
;
26
m_walletdir_path_cases
[
"trailing"
] =
m_datadir
/
"wallets"
/ sep;
27
m_walletdir_path_cases
[
"trailing2"
] =
m_datadir
/
"wallets"
/ sep / sep;
28
29
fs::current_path(
m_datadir
);
30
m_walletdir_path_cases
[
"relative"
] =
"wallets"
;
31
32
fs::create_directories(
m_walletdir_path_cases
[
"default"
]);
33
fs::create_directories(
m_walletdir_path_cases
[
"custom"
]);
34
fs::create_directories(
m_walletdir_path_cases
[
"relative"
]);
35
std::ofstream
f(
m_walletdir_path_cases
[
"file"
].BOOST_FILESYSTEM_C_STR);
36
f.close();
37
}
38
39
InitWalletDirTestingSetup::~InitWalletDirTestingSetup
()
40
{
41
gArgs
.
LockSettings
([&](
util::Settings
& settings) {
42
settings.
forced_settings
.erase(
"walletdir"
);
43
});
44
fs::current_path(
m_cwd
);
45
}
46
47
void
InitWalletDirTestingSetup::SetWalletDir
(
const
fs::path& walletdir_path)
48
{
49
gArgs
.
ForceSetArg
(
"-walletdir"
, walletdir_path.string());
50
}
util::Settings
Stored settings.
Definition:
settings.h:31
check.h
InitWalletDirTestingSetup::InitWalletDirTestingSetup
InitWalletDirTestingSetup(const std::string &chainName=CBaseChainParams::MAIN)
Definition:
init_test_fixture.cpp:12
InitWalletDirTestingSetup::m_wallet_client
std::unique_ptr< interfaces::WalletClient > m_wallet_client
Definition:
init_test_fixture.h:22
m_node
NodeContext & m_node
Definition:
interfaces.cpp:660
NodeContext::chain
std::unique_ptr< interfaces::Chain > chain
Definition:
context.h:45
fs.h
ArgsManager::ForceSetArg
void ForceSetArg(const std::string &strArg, const std::string &strValue)
Definition:
system.cpp:501
fsbridge::ofstream
fs::ofstream ofstream
Definition:
fs.h:102
InitWalletDirTestingSetup::SetWalletDir
void SetWalletDir(const fs::path &walletdir_path)
Definition:
init_test_fixture.cpp:47
univalue.h
InitWalletDirTestingSetup::m_cwd
fs::path m_cwd
Definition:
init_test_fixture.h:20
GetDataDir
const fs::path & GetDataDir(bool fNetSpecific)
Definition:
system.cpp:720
InitWalletDirTestingSetup::m_datadir
fs::path m_datadir
Definition:
init_test_fixture.h:19
InitWalletDirTestingSetup::m_walletdir_path_cases
std::map< std::string, fs::path > m_walletdir_path_cases
Definition:
init_test_fixture.h:21
interfaces::MakeWalletClient
std::unique_ptr< WalletClient > MakeWalletClient(Chain &chain, ArgsManager &args)
Return implementation of ChainClient interface for a wallet client.
Definition:
interfaces.cpp:583
NodeContext::args
ArgsManager * args
Definition:
context.h:44
InitWalletDirTestingSetup::~InitWalletDirTestingSetup
~InitWalletDirTestingSetup()
Definition:
init_test_fixture.cpp:39
system.h
init_test_fixture.h
gArgs
ArgsManager gArgs
Definition:
system.cpp:77
util::Settings::forced_settings
std::map< std::string, SettingsValue > forced_settings
Map of setting name to forced setting value.
Definition:
settings.h:33
ArgsManager::LockSettings
void LockSettings(Fn &&fn)
Access settings with lock held.
Definition:
system.h:388
Assert
#define Assert(val)
Identity function.
Definition:
check.h:57
Generated on Thu Jan 21 2021 20:03:32 for Bitcoin Core by
1.8.13