Branch data Line data Source code
1 : : // Copyright (c) 2018-2022 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 <common/args.h>
6 : : #include <univalue.h>
7 : : #include <util/chaintype.h>
8 : : #include <util/check.h>
9 : : #include <util/fs.h>
10 : :
11 : : #include <fstream>
12 : : #include <string>
13 : :
14 : : #include <wallet/test/init_test_fixture.h>
15 : :
16 : : namespace wallet {
17 [ + - ]: 7 : InitWalletDirTestingSetup::InitWalletDirTestingSetup(const ChainType chainType) : BasicTestingSetup(chainType)
18 : : {
19 [ + - ]: 7 : m_wallet_loader = MakeWalletLoader(*m_node.chain, m_args);
20 : :
21 : 7 : const auto sep = fs::path::preferred_separator;
22 : :
23 [ + - ]: 7 : m_datadir = m_args.GetDataDirNet();
24 [ + - ]: 7 : m_cwd = fs::current_path();
25 : :
26 [ + - + - : 21 : m_walletdir_path_cases["default"] = m_datadir / "wallets";
+ - + - ]
27 [ + - + - : 21 : m_walletdir_path_cases["custom"] = m_datadir / "my_wallets";
+ - + - ]
28 [ + - + - : 21 : m_walletdir_path_cases["nonexistent"] = m_datadir / "path_does_not_exist";
+ - + - ]
29 [ + - + - : 21 : m_walletdir_path_cases["file"] = m_datadir / "not_a_directory.dat";
+ - + - ]
30 [ + - + - : 28 : m_walletdir_path_cases["trailing"] = (m_datadir / "wallets") + sep;
+ - + - +
- ]
31 [ + - + - : 35 : m_walletdir_path_cases["trailing2"] = (m_datadir / "wallets") + sep + sep;
+ - + - +
- + - ]
32 : :
33 [ + - ]: 7 : fs::current_path(m_datadir);
34 [ + - + - : 7 : m_walletdir_path_cases["relative"] = "wallets";
+ - ]
35 : :
36 [ + - + - : 7 : fs::create_directories(m_walletdir_path_cases["default"]);
+ - ]
37 [ + - + - : 7 : fs::create_directories(m_walletdir_path_cases["custom"]);
+ - ]
38 [ + - + - : 7 : fs::create_directories(m_walletdir_path_cases["relative"]);
+ - ]
39 [ + - + - : 14 : std::ofstream f{m_walletdir_path_cases["file"]};
+ - ]
40 [ + - ]: 7 : f.close();
41 [ + - ]: 14 : }
42 : :
43 : 7 : InitWalletDirTestingSetup::~InitWalletDirTestingSetup()
44 : : {
45 : 7 : fs::current_path(m_cwd);
46 : 21 : }
47 : :
48 : 7 : void InitWalletDirTestingSetup::SetWalletDir(const fs::path& walletdir_path)
49 : : {
50 [ + - + - ]: 14 : m_args.ForceSetArg("-walletdir", fs::PathToString(walletdir_path));
51 : 7 : }
52 : : } // namespace wallet
|