mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-20 14:05:23 +01:00
Merge bitcoin/bitcoin#24104: fs: Make compatible with boost 1.78
dc5d6b0d47
fs: Make compatible with boost 1.78 (Andrew Chow) Pull request description: Boost 1.78 removed `operator+` in a way that breaks our usage of it in a subclass. A [proposed workaround](https://github.com/boostorg/filesystem/issues/223#issuecomment-1000230207) for this is to cast the argument to `boost::filesystem::path`, and this is backwards compatible with older versions of boost. Additionally, it appears that `fs::canonical` no longer removes trailing slashes. This was causing a test to fail. The solution is to explicitly remove the trailing separator in the one place that `fs::canonical` is used. Lastly, `fs::create_directories` now has an error message saying `create_directories` instead of `create_directory`. This caused wallet_multiwallet.py to fail. The error message check has been updated to be able accept either string. Fixes #23846 ACKs for top commit: ryanofsky: Code review ACKdc5d6b0d47
vincenzopalazzo: ACKdc5d6b0d47
Tree-SHA512: d4d8e7b49b8dfbf0ced9bfe9a2b3827841227fc755fc799f19159076b0ccf882432cc8b6ad93cdeda98fb58b942b9ba50a9e0a6b4f6b1e0097e80f1074ae5682
This commit is contained in:
commit
a541e5d519
3 changed files with 3 additions and 3 deletions
2
src/fs.h
2
src/fs.h
|
@ -88,7 +88,7 @@ static inline auto quoted(const std::string& s)
|
|||
// Allow safe path append operations.
|
||||
static inline path operator+(path p1, path p2)
|
||||
{
|
||||
p1 += std::move(p2);
|
||||
p1 += static_cast<boost::filesystem::path&&>(p2);
|
||||
return p1;
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ bool VerifyWallets(WalletContext& context)
|
|||
fs::path wallet_dir = fs::PathFromString(args.GetArg("-walletdir", ""));
|
||||
boost::system::error_code error;
|
||||
// The canonical path cleans the path, preventing >1 Berkeley environment instances for the same directory
|
||||
fs::path canonical_wallet_dir = fs::canonical(wallet_dir, error);
|
||||
fs::path canonical_wallet_dir = fs::canonical(wallet_dir, error).remove_trailing_separator();
|
||||
if (error || !fs::exists(wallet_dir)) {
|
||||
chain.initError(strprintf(_("Specified -walletdir \"%s\" does not exist"), fs::PathToString(wallet_dir)));
|
||||
return false;
|
||||
|
|
|
@ -141,7 +141,7 @@ class MultiWalletTest(BitcoinTestFramework):
|
|||
|
||||
# should raise rpc error if wallet path can't be created
|
||||
err_code = -4 if self.options.descriptors else -1
|
||||
assert_raises_rpc_error(err_code, "boost::filesystem::create_directory:", self.nodes[0].createwallet, "w8/bad")
|
||||
assert_raises_rpc_error(err_code, "boost::filesystem::create_director", self.nodes[0].createwallet, "w8/bad")
|
||||
|
||||
# check that all requested wallets were created
|
||||
self.stop_node(0)
|
||||
|
|
Loading…
Add table
Reference in a new issue