24 fs::path datadir{
"/var/empty/notexist"};
25 auto check_notexist{[](
const std::system_error& e) {
return e.code() == std::errc::no_such_file_or_directory; }};
26 auto check_address{[&](std::string address, std::string expect_address, std::string expect_error) {
27 if (expect_error.empty()) {
28 BOOST_CHECK_EXCEPTION(process->connect(datadir,
"test_bitcoin", address), std::system_error, check_notexist);
30 BOOST_CHECK_EXCEPTION(process->connect(datadir,
"test_bitcoin", address), std::invalid_argument,
HasReason(expect_error));
34 check_address(
"unix",
"unix:/var/empty/notexist/test_bitcoin.sock",
"");
35 check_address(
"unix:",
"unix:/var/empty/notexist/test_bitcoin.sock",
"");
36 check_address(
"unix:path.sock",
"unix:/var/empty/notexist/path.sock",
"");
37 check_address(
"unix:0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.sock",
38 "unix:/var/empty/notexist/0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.sock",
39 "Unix address path \"/var/empty/notexist/0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.sock\" exceeded maximum socket path length");
40 check_address(
"invalid",
"invalid",
"Unrecognized address 'invalid'");