diff --git a/Makefile.am b/Makefile.am index f8318e9f..59be2466 100644 --- a/Makefile.am +++ b/Makefile.am @@ -86,13 +86,13 @@ test_libbitcoin_server_test_SOURCES = \ test/settings.cpp \ test/test.cpp \ test/test.hpp \ + test/mocks/blocks.cpp \ + test/mocks/blocks.hpp \ test/parsers/bitcoind_query.cpp \ test/parsers/bitcoind_target.cpp \ test/parsers/electrum_version.cpp \ test/parsers/native_query.cpp \ test/parsers/native_target.cpp \ - test/protocols/blocks.cpp \ - test/protocols/blocks.hpp \ test/protocols/bitcoind/bitcoind_rest.cpp \ test/protocols/bitcoind/bitcoind_rpc.cpp \ test/protocols/bitcoind/bitcoind_setup_fixture.cpp \ diff --git a/builds/msvc/vs2022/libbitcoin-server-test/libbitcoin-server-test.vcxproj b/builds/msvc/vs2022/libbitcoin-server-test/libbitcoin-server-test.vcxproj index 028e0e57..664c5f08 100644 --- a/builds/msvc/vs2022/libbitcoin-server-test/libbitcoin-server-test.vcxproj +++ b/builds/msvc/vs2022/libbitcoin-server-test/libbitcoin-server-test.vcxproj @@ -121,6 +121,9 @@ + + $(IntDir)test_mocks_blocks.obj + @@ -133,9 +136,6 @@ $(IntDir)test_protocols_bitcoind_bitcoind_setup_fixture.obj - - $(IntDir)test_protocols_blocks.obj - @@ -168,8 +168,8 @@ + - diff --git a/builds/msvc/vs2022/libbitcoin-server-test/libbitcoin-server-test.vcxproj.filters b/builds/msvc/vs2022/libbitcoin-server-test/libbitcoin-server-test.vcxproj.filters index 338ab17a..47a68fa3 100644 --- a/builds/msvc/vs2022/libbitcoin-server-test/libbitcoin-server-test.vcxproj.filters +++ b/builds/msvc/vs2022/libbitcoin-server-test/libbitcoin-server-test.vcxproj.filters @@ -10,21 +10,24 @@ {66A0E586-2E3A-448F-0000-000000000000} - + {66A0E586-2E3A-448F-0000-000000000001} - + {66A0E586-2E3A-448F-0000-000000000002} - + {66A0E586-2E3A-448F-0000-000000000003} - + {66A0E586-2E3A-448F-0000-000000000004} - + {66A0E586-2E3A-448F-0000-000000000005} + + {66A0E586-2E3A-448F-0000-000000000006} + @@ -36,6 +39,9 @@ src + + src\mocks + src\parsers @@ -60,9 +66,6 @@ src\protocols\bitcoind - - src\protocols - src\protocols\electrum @@ -131,12 +134,12 @@ + + src\mocks + src\protocols\bitcoind - - src\protocols - src\protocols\electrum diff --git a/builds/msvc/vs2026/libbitcoin-server-test/libbitcoin-server-test.vcxproj b/builds/msvc/vs2026/libbitcoin-server-test/libbitcoin-server-test.vcxproj index 6a146ce4..5211b21f 100644 --- a/builds/msvc/vs2026/libbitcoin-server-test/libbitcoin-server-test.vcxproj +++ b/builds/msvc/vs2026/libbitcoin-server-test/libbitcoin-server-test.vcxproj @@ -121,6 +121,9 @@ + + $(IntDir)test_mocks_blocks.obj + @@ -133,9 +136,6 @@ $(IntDir)test_protocols_bitcoind_bitcoind_setup_fixture.obj - - $(IntDir)test_protocols_blocks.obj - @@ -168,8 +168,8 @@ + - diff --git a/builds/msvc/vs2026/libbitcoin-server-test/libbitcoin-server-test.vcxproj.filters b/builds/msvc/vs2026/libbitcoin-server-test/libbitcoin-server-test.vcxproj.filters index 338ab17a..47a68fa3 100644 --- a/builds/msvc/vs2026/libbitcoin-server-test/libbitcoin-server-test.vcxproj.filters +++ b/builds/msvc/vs2026/libbitcoin-server-test/libbitcoin-server-test.vcxproj.filters @@ -10,21 +10,24 @@ {66A0E586-2E3A-448F-0000-000000000000} - + {66A0E586-2E3A-448F-0000-000000000001} - + {66A0E586-2E3A-448F-0000-000000000002} - + {66A0E586-2E3A-448F-0000-000000000003} - + {66A0E586-2E3A-448F-0000-000000000004} - + {66A0E586-2E3A-448F-0000-000000000005} + + {66A0E586-2E3A-448F-0000-000000000006} + @@ -36,6 +39,9 @@ src + + src\mocks + src\parsers @@ -60,9 +66,6 @@ src\protocols\bitcoind - - src\protocols - src\protocols\electrum @@ -131,12 +134,12 @@ + + src\mocks + src\protocols\bitcoind - - src\protocols - src\protocols\electrum diff --git a/include/bitcoin/server/sessions/session_server.hpp b/include/bitcoin/server/sessions/session_server.hpp index 2750bd4e..d874c790 100644 --- a/include/bitcoin/server/sessions/session_server.hpp +++ b/include/bitcoin/server/sessions/session_server.hpp @@ -94,11 +94,13 @@ class session_server template = true> inline void attach_rest(const channel_ptr&, const ptr&) NOEXCEPT{} - template inline void attach_rest(const channel_ptr& channel, const ptr& self) NOEXCEPT { - channel->template attach(self, this->options_)->start(); - attach_rest(channel, self); + if constexpr (!is_zero(sizeof...(Protocols))) + { + ((channel->template attach(self, + this->options_)->start(), void()), ...); + } } /// Overridden to set channel protocols. This allows the implementation to @@ -109,7 +111,7 @@ class session_server { using own = session_server; const auto self = this->template shared_from_base(); - attach_rest(channel, self); + attach_rest(channel, self); } protected: diff --git a/test/protocols/blocks.cpp b/test/mocks/blocks.cpp similarity index 98% rename from test/protocols/blocks.cpp rename to test/mocks/blocks.cpp index 04444bf3..5f753584 100644 --- a/test/protocols/blocks.cpp +++ b/test/mocks/blocks.cpp @@ -148,7 +148,7 @@ bool setup_three_block_unconfirmed_address_store(query_t& query) NOEXCEPT query.set(block3a, database::context{ 0, 3, 0 }, false, false); } -const block bogus_block10 +const block mock_block10 { header { @@ -261,12 +261,12 @@ const block bogus_block10 } } }; -const block bogus_block11 +const block mock_block11 { header { 0x31323334, - bogus_block10.hash(), + mock_block10.hash(), hash_digest{ 0x11, 0xbb }, 0x41424344, 0x51525354, @@ -331,12 +331,12 @@ const block bogus_block11 } } }; -const block bogus_block12 +const block mock_block12 { header { 0x31323334, - bogus_block11.hash(), + mock_block11.hash(), hash_digest{ 0x12, 0xbb }, 0x41424344, 0x51525354, @@ -351,14 +351,14 @@ const block bogus_block12 { input { - point{ bogus_block11.transactions_ptr()->front()->hash(false), 0x03 }, + point{ mock_block11.transactions_ptr()->front()->hash(false), 0x03 }, script{}, witness{}, 0x08 }, input { - point{ bogus_block11.transactions_ptr()->front()->hash(false), 0x04 }, + point{ mock_block11.transactions_ptr()->front()->hash(false), 0x04 }, script{}, witness{}, 0x09 @@ -377,7 +377,7 @@ const block bogus_block12 } } }; -const block bogus_block +const block mock_block_a { header { diff --git a/test/protocols/blocks.hpp b/test/mocks/blocks.hpp similarity index 92% rename from test/protocols/blocks.hpp rename to test/mocks/blocks.hpp index 4d048e9d..69f51a37 100644 --- a/test/protocols/blocks.hpp +++ b/test/mocks/blocks.hpp @@ -16,8 +16,8 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -#ifndef LIBBITCOIN_SERVER_TEST_PROTOCOLS_BLOCKS -#define LIBBITCOIN_SERVER_TEST_PROTOCOLS_BLOCKS +#ifndef LIBBITCOIN_SERVER_TEST_MOCKS_BLOCKS +#define LIBBITCOIN_SERVER_TEST_MOCKS_BLOCKS #include "../test.hpp" @@ -84,11 +84,11 @@ extern const system::chain::block block6; extern const system::chain::block block7; extern const system::chain::block block8; extern const system::chain::block block9; -extern const system::chain::block bogus_block10; -extern const system::chain::block bogus_block11; -extern const system::chain::block bogus_block12; +extern const system::chain::block mock_block10; +extern const system::chain::block mock_block11; +extern const system::chain::block mock_block12; -extern const system::chain::block bogus_block; +extern const system::chain::block mock_block_a; extern const system::chain::block block1a; extern const system::chain::block block2a; extern const system::chain::block block3a; diff --git a/test/protocols/bitcoind/bitcoind_setup_fixture.cpp b/test/protocols/bitcoind/bitcoind_setup_fixture.cpp index fc033e58..6178292c 100644 --- a/test/protocols/bitcoind/bitcoind_setup_fixture.cpp +++ b/test/protocols/bitcoind/bitcoind_setup_fixture.cpp @@ -17,7 +17,7 @@ * along with this program. If not, see . */ #include "../../test.hpp" -#include "../blocks.hpp" +#include "../../mocks/blocks.hpp" #include "bitcoind_setup_fixture.hpp" #include diff --git a/test/protocols/bitcoind/bitcoind_setup_fixture.hpp b/test/protocols/bitcoind/bitcoind_setup_fixture.hpp index e9b348d7..1d8104ad 100644 --- a/test/protocols/bitcoind/bitcoind_setup_fixture.hpp +++ b/test/protocols/bitcoind/bitcoind_setup_fixture.hpp @@ -20,7 +20,7 @@ #define LIBBITCOIN_SERVER_TEST_PROTOCOLS_BITCOIND_BITCOIND #include "../../test.hpp" -#include "../blocks.hpp" +#include "../../mocks/blocks.hpp" #define BITCOIND_ENDPOINT "127.0.0.1:65000" diff --git a/test/protocols/electrum/electrum_addresses.cpp b/test/protocols/electrum/electrum_addresses.cpp index 6fa6fbde..1444615e 100644 --- a/test/protocols/electrum/electrum_addresses.cpp +++ b/test/protocols/electrum/electrum_addresses.cpp @@ -75,9 +75,9 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_get_balance__confirmed_and_unc BOOST_REQUIRE(handshake(electrum::version::v1_0)); // Add one confirmed p2sh/p2kh block and one unconfirmed. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":905,"method":"blockchain.address.get_balance","params":["%1%"]})" "\n"; const auto response = get((boost::format(request) % found_address).str()); @@ -86,11 +86,11 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_get_balance__confirmed_and_unc const auto& result = response.at("result").as_object(); REQUIRE_NO_THROW_TRUE(result.at("confirmed").is_int64()); REQUIRE_NO_THROW_TRUE(result.at("unconfirmed").is_int64()); - BOOST_REQUIRE_EQUAL(result.at("confirmed").as_int64(), 0x09); // bogus_block10 + BOOST_REQUIRE_EQUAL(result.at("confirmed").as_int64(), 0x09); // mock_block10 // Currently unconfirmed ALWAYS returns zero (no graph to order conflicts). BOOST_REQUIRE_EQUAL(result.at("unconfirmed").as_int64(), 0x00); - ////BOOST_REQUIRE_EQUAL(result.at("unconfirmed").as_int64(), 0x10 + 0x11 + 0x12); // bogus_block11 + ////BOOST_REQUIRE_EQUAL(result.at("unconfirmed").as_int64(), 0x10 + 0x11 + 0x12); // mock_block11 } // blockchain.address.get_history @@ -134,10 +134,10 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_get_history__confirmed_and_unc BOOST_REQUIRE(handshake(electrum::version::v1_0)); // Add one confirmed p2sh/p2kh block and one unconfirmed (mirrors the get_balance confirmed test). - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":1006,"method":"blockchain.address.get_history","params":["%1%"]})" "\n"; const auto response = get((boost::format(request) % found_address).str()); @@ -146,7 +146,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_get_history__confirmed_and_unc const auto& history = response.at("result").as_array(); BOOST_REQUIRE_EQUAL(history.size(), 3u); - const auto hash1 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); + const auto hash1 = test::mock_block10.transactions_ptr()->at(1)->hash(false); const auto& tx1 = history.at(0).as_object(); REQUIRE_NO_THROW_TRUE(tx1.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx1.at("tx_hash").is_string()); @@ -154,7 +154,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_get_history__confirmed_and_unc BOOST_REQUIRE_EQUAL(tx1.at("height").as_int64(), 10); BOOST_REQUIRE_EQUAL(tx1.at("tx_hash").as_string(), encode_hash(hash1)); - const auto hash2 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); + const auto hash2 = test::mock_block11.transactions_ptr()->at(0)->hash(false); const auto& tx2 = history.at(1).as_object(); REQUIRE_NO_THROW_TRUE(tx2.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx2.at("tx_hash").is_string()); @@ -162,7 +162,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_get_history__confirmed_and_unc BOOST_REQUIRE_EQUAL(tx2.at("height").as_int64(), 0); // rooted BOOST_REQUIRE_EQUAL(tx2.at("tx_hash").as_string(), encode_hash(hash2)); - const auto hash3 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + const auto hash3 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto& tx3 = history.at(2).as_object(); REQUIRE_NO_THROW_TRUE(tx3.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx3.at("tx_hash").is_string()); @@ -212,10 +212,10 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_get_mempool__confirmed_and_unc BOOST_REQUIRE(handshake(electrum::version::v1_0)); // Add one confirmed p2sh/p2kh block and one unconfirmed (mirrors the get_balance confirmed test). - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":1006,"method":"blockchain.address.get_mempool","params":["%1%"]})" "\n"; const auto response = get((boost::format(request) % found_address).str()); @@ -224,7 +224,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_get_mempool__confirmed_and_unc const auto& history = response.at("result").as_array(); BOOST_REQUIRE_EQUAL(history.size(), 2u); - const auto hash1 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); + const auto hash1 = test::mock_block11.transactions_ptr()->at(0)->hash(false); const auto& tx1 = history.at(0).as_object(); REQUIRE_NO_THROW_TRUE(tx1.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx1.at("tx_hash").is_string()); @@ -232,7 +232,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_get_mempool__confirmed_and_unc BOOST_REQUIRE_EQUAL(tx1.at("height").as_int64(), 0); // rooted BOOST_REQUIRE_EQUAL(tx1.at("tx_hash").as_string(), encode_hash(hash1)); - const auto hash2 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + const auto hash2 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto& tx2 = history.at(1).as_object(); REQUIRE_NO_THROW_TRUE(tx2.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx2.at("tx_hash").is_string()); @@ -282,10 +282,10 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_list_unspent__confirmed_and_un BOOST_REQUIRE(handshake(electrum::version::v1_0)); // Add one confirmed p2sh/p2kh block and one unconfirmed (mirrors the get_balance confirmed test). - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":1006,"method":"blockchain.address.listunspent","params":["%1%"]})" "\n"; const auto response = get((boost::format(request) % found_address).str()); @@ -294,21 +294,21 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_list_unspent__confirmed_and_un const auto& unspent = response.at("result").as_array(); BOOST_REQUIRE_EQUAL(unspent.size(), 4u); - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); const auto& tx1 = unspent.at(0).as_object(); BOOST_REQUIRE_EQUAL(tx1.at("tx_hash").as_string(), encode_hash(hash10)); BOOST_REQUIRE_EQUAL(tx1.at("tx_pos").as_int64(), 0); // tx.output.index(0) BOOST_REQUIRE_EQUAL(tx1.at("height").as_int64(), 10); // confirmed BOOST_REQUIRE_EQUAL(tx1.at("value").as_int64(), 0x09); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); const auto& tx2 = unspent.at(1).as_object(); BOOST_REQUIRE_EQUAL(tx2.at("tx_hash").as_string(), encode_hash(hash11)); BOOST_REQUIRE_EQUAL(tx2.at("tx_pos").as_int64(), 0); // tx.output.index(0) BOOST_REQUIRE_EQUAL(tx2.at("height").as_int64(), 0); // unconfirmed BOOST_REQUIRE_EQUAL(tx2.at("value").as_int64(), 0x10); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto& tx4 = unspent.at(2).as_object(); BOOST_REQUIRE_EQUAL(tx4.at("tx_hash").as_string(), encode_hash(hash12)); BOOST_REQUIRE_EQUAL(tx4.at("tx_pos").as_int64(), 0); // tx.output.index(0) diff --git a/test/protocols/electrum/electrum_headers.cpp b/test/protocols/electrum/electrum_headers.cpp index e4948855..da999f14 100644 --- a/test/protocols/electrum/electrum_headers.cpp +++ b/test/protocols/electrum/electrum_headers.cpp @@ -54,11 +54,11 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_number_of_blocks_subscribe__notificati REQUIRE_NO_THROW_TRUE(response.at("result").is_int64()); BOOST_REQUIRE_EQUAL(response.at("result").as_int64(), 9); - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block11.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block11.hash()), true)); // Trigger node chaser events to electrum event subscriber. notify(node::chase::organized, { 10_u32 }); @@ -646,11 +646,11 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_headers_subscribe__notifications__expe BOOST_REQUIRE_EQUAL(result.at("height").as_int64(), 9); BOOST_REQUIRE_EQUAL(result.at("hex").as_string(), encode_base16(test::header9_data)); - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block11.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block11.hash()), true)); // Trigger node chaser events to electrum event subscriber. notify(node::chase::organized, { 10_u32 }); @@ -669,7 +669,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_headers_subscribe__notifications__expe REQUIRE_NO_THROW_TRUE(header1.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(header1.at("hex").is_string()); BOOST_CHECK_EQUAL(header1.at("height").as_int64(), 10); - BOOST_CHECK_EQUAL(header1.at("hex").as_string(), encode_base16(test::bogus_block10.header().to_data())); + BOOST_CHECK_EQUAL(header1.at("hex").as_string(), encode_base16(test::mock_block10.header().to_data())); const auto notification2 = receive(); REQUIRE_NO_THROW_TRUE(notification2.at("method").is_string()); @@ -684,7 +684,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_headers_subscribe__notifications__expe REQUIRE_NO_THROW_TRUE(header2.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(header2.at("hex").is_string()); BOOST_CHECK_EQUAL(header2.at("height").as_int64(), 11); - BOOST_CHECK_EQUAL(header2.at("hex").as_string(), encode_base16(test::bogus_block11.header().to_data())); + BOOST_CHECK_EQUAL(header2.at("hex").as_string(), encode_base16(test::mock_block11.header().to_data())); } BOOST_AUTO_TEST_SUITE_END() diff --git a/test/protocols/electrum/electrum_outpoints.cpp b/test/protocols/electrum/electrum_outpoints.cpp index 4004adbf..eb631aed 100644 --- a/test/protocols/electrum/electrum_outpoints.cpp +++ b/test/protocols/electrum/electrum_outpoints.cpp @@ -87,10 +87,10 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_utxo_get_address__p2kh__expected) BOOST_REQUIRE(handshake(electrum::version::v1_0)); // Add a confirmed p2sh/p2kh block. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), false)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), false)); - const auto hash = test::bogus_block10.transactions_ptr()->at(1)->hash(false); + const auto hash = test::mock_block10.transactions_ptr()->at(1)->hash(false); const auto request = R"({"id":901,"method":"blockchain.utxo.get_address","params":["%1%",0]})" "\n"; const auto response = get((boost::format(request) % encode_hash(hash)).str()); REQUIRE_NO_THROW_TRUE(response.at("result").is_string()); @@ -104,10 +104,10 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_utxo_get_address__p2sh__expected) BOOST_REQUIRE(handshake(electrum::version::v1_0)); // Add a confirmed p2sh/p2kh block. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), false)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), false)); - const auto hash = test::bogus_block10.transactions_ptr()->at(1)->hash(false); + const auto hash = test::mock_block10.transactions_ptr()->at(1)->hash(false); const auto request = R"({"id":901,"method":"blockchain.utxo.get_address","params":["%1%",1]})" "\n"; const auto response = get((boost::format(request) % encode_hash(hash)).str()); REQUIRE_NO_THROW_TRUE(response.at("result").is_string()); @@ -181,15 +181,15 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_outpoint_get_status__confirmed_spent__ { BOOST_REQUIRE(handshake(electrum::version::v1_7)); - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto hash1 = test::block1.transactions_ptr()->at(0)->hash(false); const auto request = R"({"id":1107,"method":"blockchain.outpoint.get_status","params":["%1%",0]})" "\n"; const auto response = get((boost::format(request) % encode_hash(hash1)).str()); REQUIRE_NO_THROW_TRUE(response.at("result").is_object()); - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); const auto& history = response.at("result").as_object(); REQUIRE_NO_THROW_TRUE(history.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(history.at("spender_height").is_int64()); @@ -291,15 +291,15 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_outpoint_subscribe__one_spender__expec { BOOST_REQUIRE(handshake(electrum::version::v1_7)); - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto hash1 = test::block1.transactions_ptr()->at(0)->hash(false); const auto request = R"({"id":1107,"method":"blockchain.outpoint.subscribe","params":["%1%",0]})" "\n"; const auto response = get((boost::format(request) % encode_hash(hash1)).str()); REQUIRE_NO_THROW_TRUE(response.at("result").is_object()); - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); const auto& history = response.at("result").as_object(); REQUIRE_NO_THROW_TRUE(history.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(history.at("spender_height").is_int64()); diff --git a/test/protocols/electrum/electrum_scripthash.cpp b/test/protocols/electrum/electrum_scripthash.cpp index 112f2c56..44dc29a4 100644 --- a/test/protocols/electrum/electrum_scripthash.cpp +++ b/test/protocols/electrum/electrum_scripthash.cpp @@ -89,9 +89,9 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_get_balance__confirmed_and_ BOOST_REQUIRE(handshake(electrum::version::v1_1)); // Add one confirmed p2sh/p2kh block and one unconfirmed. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":905,"method":"blockchain.scripthash.get_balance","params":["%1%"]})" "\n"; const auto response = get((boost::format(request) % found_scripthash).str()); @@ -100,11 +100,11 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_get_balance__confirmed_and_ const auto& result = response.at("result").as_object(); REQUIRE_NO_THROW_TRUE(result.at("confirmed").is_int64()); REQUIRE_NO_THROW_TRUE(result.at("unconfirmed").is_int64()); - BOOST_REQUIRE_EQUAL(result.at("confirmed").as_int64(), 0x09); // bogus_block10 + BOOST_REQUIRE_EQUAL(result.at("confirmed").as_int64(), 0x09); // mock_block10 // Currently unconfirmed ALWAYS returns zero (no graph to order conflicts). BOOST_REQUIRE_EQUAL(result.at("unconfirmed").as_int64(), 0x00); - ////BOOST_REQUIRE_EQUAL(result.at("unconfirmed").as_int64(), 0x10 + 0x11 + 0x12); // bogus_block11 + ////BOOST_REQUIRE_EQUAL(result.at("unconfirmed").as_int64(), 0x10 + 0x11 + 0x12); // mock_block11 } // blockchain.scripthash.get_history @@ -160,10 +160,10 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_get_history__confirmed_and_ BOOST_REQUIRE(handshake(electrum::version::v1_1)); // Add one confirmed p2sh/p2kh block and one unconfirmed (mirrors the get_balance confirmed test). - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":1006,"method":"blockchain.scripthash.get_history","params":["%1%"]})" "\n"; const auto response = get((boost::format(request) % found_scripthash).str()); @@ -172,7 +172,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_get_history__confirmed_and_ const auto& history = response.at("result").as_array(); BOOST_REQUIRE_EQUAL(history.size(), 3u); - const auto hash1 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); + const auto hash1 = test::mock_block10.transactions_ptr()->at(1)->hash(false); const auto& tx1 = history.at(0).as_object(); REQUIRE_NO_THROW_TRUE(tx1.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx1.at("tx_hash").is_string()); @@ -180,7 +180,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_get_history__confirmed_and_ BOOST_REQUIRE_EQUAL(tx1.at("height").as_int64(), 10); BOOST_REQUIRE_EQUAL(tx1.at("tx_hash").as_string(), encode_hash(hash1)); - const auto hash2 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); + const auto hash2 = test::mock_block11.transactions_ptr()->at(0)->hash(false); const auto& tx2 = history.at(1).as_object(); REQUIRE_NO_THROW_TRUE(tx2.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx2.at("tx_hash").is_string()); @@ -188,7 +188,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_get_history__confirmed_and_ BOOST_REQUIRE_EQUAL(tx2.at("height").as_int64(), 0); // rooted BOOST_REQUIRE_EQUAL(tx2.at("tx_hash").as_string(), encode_hash(hash2)); - const auto hash3 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + const auto hash3 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto& tx3 = history.at(2).as_object(); REQUIRE_NO_THROW_TRUE(tx3.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx3.at("tx_hash").is_string()); @@ -250,10 +250,10 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_get_mempool__confirmed_and_ BOOST_REQUIRE(handshake(electrum::version::v1_1)); // Add one confirmed p2sh/p2kh block and one unconfirmed (mirrors the get_balance confirmed test). - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":1006,"method":"blockchain.scripthash.get_mempool","params":["%1%"]})" "\n"; const auto response = get((boost::format(request) % found_scripthash).str()); @@ -262,7 +262,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_get_mempool__confirmed_and_ const auto& history = response.at("result").as_array(); BOOST_REQUIRE_EQUAL(history.size(), 2u); - const auto hash1 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); + const auto hash1 = test::mock_block11.transactions_ptr()->at(0)->hash(false); const auto& tx1 = history.at(0).as_object(); REQUIRE_NO_THROW_TRUE(tx1.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx1.at("tx_hash").is_string()); @@ -270,7 +270,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_get_mempool__confirmed_and_ BOOST_REQUIRE_EQUAL(tx1.at("height").as_int64(), 0); // rooted BOOST_REQUIRE_EQUAL(tx1.at("tx_hash").as_string(), encode_hash(hash1)); - const auto hash2 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + const auto hash2 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto& tx2 = history.at(1).as_object(); REQUIRE_NO_THROW_TRUE(tx2.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx2.at("tx_hash").is_string()); @@ -332,10 +332,10 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_list_unspent__confirmed_and BOOST_REQUIRE(handshake(electrum::version::v1_1)); // Add one confirmed p2sh/p2kh block and one unconfirmed (mirrors the get_balance confirmed test). - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":1006,"method":"blockchain.scripthash.listunspent","params":["%1%"]})" "\n"; const auto response = get((boost::format(request) % found_scripthash).str()); @@ -344,21 +344,21 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_list_unspent__confirmed_and const auto& unspent = response.at("result").as_array(); BOOST_REQUIRE_EQUAL(unspent.size(), 4u); - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); const auto& tx1 = unspent.at(0).as_object(); BOOST_REQUIRE_EQUAL(tx1.at("tx_hash").as_string(), encode_hash(hash10)); BOOST_REQUIRE_EQUAL(tx1.at("tx_pos").as_int64(), 0); // tx.output.index(0) BOOST_REQUIRE_EQUAL(tx1.at("height").as_int64(), 10); // confirmed BOOST_REQUIRE_EQUAL(tx1.at("value").as_int64(), 0x09); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); const auto& tx2 = unspent.at(1).as_object(); BOOST_REQUIRE_EQUAL(tx2.at("tx_hash").as_string(), encode_hash(hash11)); BOOST_REQUIRE_EQUAL(tx2.at("tx_pos").as_int64(), 0); // tx.output.index(0) BOOST_REQUIRE_EQUAL(tx2.at("height").as_int64(), 0); // unconfirmed BOOST_REQUIRE_EQUAL(tx2.at("value").as_int64(), 0x10); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto& tx4 = unspent.at(2).as_object(); BOOST_REQUIRE_EQUAL(tx4.at("tx_hash").as_string(), encode_hash(hash12)); BOOST_REQUIRE_EQUAL(tx4.at("tx_pos").as_int64(), 0); // tx.output.index(0) diff --git a/test/protocols/electrum/electrum_scriptpubkey.cpp b/test/protocols/electrum/electrum_scriptpubkey.cpp index 3064c061..cc8c152b 100644 --- a/test/protocols/electrum/electrum_scriptpubkey.cpp +++ b/test/protocols/electrum/electrum_scriptpubkey.cpp @@ -89,9 +89,9 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_get_balance__confirmed_an BOOST_REQUIRE(handshake(electrum::version::v1_7)); // Add one confirmed p2sh/p2kh block and one unconfirmed. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":905,"method":"blockchain.scriptpubkey.get_balance","params":["%1%"]})" "\n"; const auto response = get((boost::format(request) % found_script).str()); @@ -100,11 +100,11 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_get_balance__confirmed_an const auto& result = response.at("result").as_object(); REQUIRE_NO_THROW_TRUE(result.at("confirmed").is_int64()); REQUIRE_NO_THROW_TRUE(result.at("unconfirmed").is_int64()); - BOOST_REQUIRE_EQUAL(result.at("confirmed").as_int64(), 0x09); // bogus_block10 + BOOST_REQUIRE_EQUAL(result.at("confirmed").as_int64(), 0x09); // mock_block10 // Currently unconfirmed ALWAYS returns zero (no graph to order conflicts). BOOST_REQUIRE_EQUAL(result.at("unconfirmed").as_int64(), 0x00); - ////BOOST_REQUIRE_EQUAL(result.at("unconfirmed").as_int64(), 0x10 + 0x11 + 0x12); // bogus_block11 + ////BOOST_REQUIRE_EQUAL(result.at("unconfirmed").as_int64(), 0x10 + 0x11 + 0x12); // mock_block11 } // blockchain.scriptpubkey.get_history @@ -160,10 +160,10 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_get_history__confirmed_an BOOST_REQUIRE(handshake(electrum::version::v1_7)); // Add one confirmed p2sh/p2kh block and one unconfirmed (mirrors the get_balance confirmed test). - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":1006,"method":"blockchain.scriptpubkey.get_history","params":["%1%"]})" "\n"; const auto response = get((boost::format(request) % found_script).str()); @@ -172,7 +172,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_get_history__confirmed_an const auto& history = response.at("result").as_array(); BOOST_REQUIRE_EQUAL(history.size(), 3u); - const auto hash1 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); + const auto hash1 = test::mock_block10.transactions_ptr()->at(1)->hash(false); const auto& tx1 = history.at(0).as_object(); REQUIRE_NO_THROW_TRUE(tx1.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx1.at("tx_hash").is_string()); @@ -180,7 +180,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_get_history__confirmed_an BOOST_REQUIRE_EQUAL(tx1.at("height").as_int64(), 10); BOOST_REQUIRE_EQUAL(tx1.at("tx_hash").as_string(), encode_hash(hash1)); - const auto hash2 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); + const auto hash2 = test::mock_block11.transactions_ptr()->at(0)->hash(false); const auto& tx2 = history.at(1).as_object(); REQUIRE_NO_THROW_TRUE(tx2.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx2.at("tx_hash").is_string()); @@ -188,7 +188,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_get_history__confirmed_an BOOST_REQUIRE_EQUAL(tx2.at("height").as_int64(), 0); // rooted BOOST_REQUIRE_EQUAL(tx2.at("tx_hash").as_string(), encode_hash(hash2)); - const auto hash3 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + const auto hash3 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto& tx3 = history.at(2).as_object(); REQUIRE_NO_THROW_TRUE(tx3.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx3.at("tx_hash").is_string()); @@ -250,10 +250,10 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_get_mempool__confirmed_an BOOST_REQUIRE(handshake(electrum::version::v1_7)); // Add one confirmed p2sh/p2kh block and one unconfirmed (mirrors the get_balance confirmed test). - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":1006,"method":"blockchain.scriptpubkey.get_mempool","params":["%1%"]})" "\n"; const auto response = get((boost::format(request) % found_script).str()); @@ -262,14 +262,14 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_get_mempool__confirmed_an const auto& history = response.at("result").as_array(); BOOST_REQUIRE_EQUAL(history.size(), 2u); - const auto hash1 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); + const auto hash1 = test::mock_block11.transactions_ptr()->at(0)->hash(false); const auto& tx1 = history.at(0).as_object(); REQUIRE_NO_THROW_TRUE(tx1.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx1.at("tx_hash").is_string()); BOOST_REQUIRE_EQUAL(tx1.at("fee").as_int64(), floored_subtract(5'000'000'000 + 5'000'000'000, 0x10 + 0x11 + 0x12 + 0x13 + 0x14)); BOOST_REQUIRE_EQUAL(tx1.at("tx_hash").as_string(), encode_hash(hash1)); - const auto hash2 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + const auto hash2 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto& tx2 = history.at(1).as_object(); REQUIRE_NO_THROW_TRUE(tx2.at("height").is_int64()); REQUIRE_NO_THROW_TRUE(tx2.at("tx_hash").is_string()); @@ -331,10 +331,10 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_list_unspent__confirmed_a BOOST_REQUIRE(handshake(electrum::version::v1_7)); // Add one confirmed p2sh/p2kh block and one unconfirmed (mirrors the get_balance confirmed test). - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":1006,"method":"blockchain.scriptpubkey.listunspent","params":["%1%"]})" "\n"; const auto response = get((boost::format(request) % found_script).str()); @@ -343,21 +343,21 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_list_unspent__confirmed_a const auto& unspent = response.at("result").as_array(); BOOST_REQUIRE_EQUAL(unspent.size(), 4u); - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); const auto& tx1 = unspent.at(0).as_object(); BOOST_REQUIRE_EQUAL(tx1.at("tx_hash").as_string(), encode_hash(hash10)); BOOST_REQUIRE_EQUAL(tx1.at("tx_pos").as_int64(), 0); // tx.output.index(0) BOOST_REQUIRE_EQUAL(tx1.at("height").as_int64(), 10); // confirmed BOOST_REQUIRE_EQUAL(tx1.at("value").as_int64(), 0x09); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); const auto& tx2 = unspent.at(1).as_object(); BOOST_REQUIRE_EQUAL(tx2.at("tx_hash").as_string(), encode_hash(hash11)); BOOST_REQUIRE_EQUAL(tx2.at("tx_pos").as_int64(), 0); // tx.output.index(0) BOOST_REQUIRE_EQUAL(tx2.at("height").as_int64(), 0); // unconfirmed BOOST_REQUIRE_EQUAL(tx2.at("value").as_int64(), 0x10); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto& tx4 = unspent.at(2).as_object(); BOOST_REQUIRE_EQUAL(tx4.at("tx_hash").as_string(), encode_hash(hash12)); BOOST_REQUIRE_EQUAL(tx4.at("tx_pos").as_int64(), 0); // tx.output.index(0) diff --git a/test/protocols/electrum/electrum_setup_fixture.cpp b/test/protocols/electrum/electrum_setup_fixture.cpp index 9a10cc5f..590ab760 100644 --- a/test/protocols/electrum/electrum_setup_fixture.cpp +++ b/test/protocols/electrum/electrum_setup_fixture.cpp @@ -17,7 +17,7 @@ * along with this program. If not, see . */ #include "../../test.hpp" -#include "../blocks.hpp" +#include "../../mocks/blocks.hpp" #include "electrum_setup_fixture.hpp" #include #include diff --git a/test/protocols/electrum/electrum_setup_fixture.hpp b/test/protocols/electrum/electrum_setup_fixture.hpp index e7ec7ca7..2db26ef1 100644 --- a/test/protocols/electrum/electrum_setup_fixture.hpp +++ b/test/protocols/electrum/electrum_setup_fixture.hpp @@ -20,7 +20,7 @@ #define LIBBITCOIN_SERVER_TEST_PROTOCOLS_ELECTRUM_ELECTRUM #include "../../test.hpp" -#include "../blocks.hpp" +#include "../../mocks/blocks.hpp" #define ELECTRUM_ENDPOINT "127.0.0.1:65000" diff --git a/test/protocols/electrum/electrum_subscribe.cpp b/test/protocols/electrum/electrum_subscribe.cpp index 109220fa..bb650297 100644 --- a/test/protocols/electrum/electrum_subscribe.cpp +++ b/test/protocols/electrum/electrum_subscribe.cpp @@ -84,14 +84,14 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_subscribe__initialization__exp // This validates the hash accumulator copy in get_scripthash_history() and incorporates // confirmed, rooted and unrooted transactions, duplicates, and sort. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); - - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); + + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto expected_initial = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -110,14 +110,14 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_subscribe__repeat_call__idempo BOOST_REQUIRE(handshake(electrum::version::v1_0)); // This validates cursor/midstate consistency. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); - - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); + + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto expected_initial = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -147,15 +147,15 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_subscribe__progressive__expect BOOST_REQUIRE(handshake(electrum::version::v1_0)); // This validates cursor/midstate consistency. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); // Confirming block 10 also makes block 11 to rooted. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto expected_confirm10 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -169,7 +169,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_subscribe__progressive__expect BOOST_REQUIRE_EQUAL(response1.at("result").as_string(), expected_confirm10); // Confirming block 11 also makes block 12 rooted. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block11.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block11.hash()), true)); const auto expected_confirm11 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -182,7 +182,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_subscribe__progressive__expect BOOST_REQUIRE_EQUAL(response2.at("result").as_string(), expected_confirm11); // Confirming block 12 only makes block 12 confirmed. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block12.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block12.hash()), true)); const auto expected_confirm12 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -200,15 +200,15 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_subscribe__progressive_notify_ BOOST_REQUIRE(handshake(electrum::version::v1_0)); // This validates cursor/midstate consistency. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); // Confirming block 10 also makes block 11 to rooted. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto expected_confirm10 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -222,7 +222,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_subscribe__progressive_notify_ BOOST_REQUIRE_EQUAL(response1.at("result").as_string(), expected_confirm10); // Confirming block 11 also makes block 12 rooted. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block11.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block11.hash()), true)); const auto expected_confirm11 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -246,7 +246,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_address_subscribe__progressive_notify_ BOOST_REQUIRE_EQUAL(params1.at(1).as_string(), expected_confirm11); // Confirming block 12 only makes block 12 confirmed. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block12.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block12.hash()), true)); const auto expected_confirm12 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -321,14 +321,14 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_subscribe__initialization__ // This validates the hash accumulator copy in get_scripthash_history() and incorporates // confirmed, rooted and unrooted transactions, duplicates, and sort. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); - - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); + + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto expected_initial = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -347,14 +347,14 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_subscribe__repeat_call__ide BOOST_REQUIRE(handshake(electrum::version::v1_1)); // This validates cursor/midstate consistency. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); - - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); + + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto expected_initial = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -384,15 +384,15 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_subscribe__progressive__exp BOOST_REQUIRE(handshake(electrum::version::v1_1)); // This validates cursor/midstate consistency. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); // Confirming block 10 also makes block 11 to rooted. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto expected_confirm10 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -406,7 +406,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_subscribe__progressive__exp BOOST_REQUIRE_EQUAL(response1.at("result").as_string(), expected_confirm10); // Confirming block 11 also makes block 12 rooted. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block11.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block11.hash()), true)); const auto expected_confirm11 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -419,7 +419,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_subscribe__progressive__exp BOOST_REQUIRE_EQUAL(response2.at("result").as_string(), expected_confirm11); // Confirming block 12 only makes block 12 confirmed. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block12.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block12.hash()), true)); const auto expected_confirm12 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -437,15 +437,15 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_subscribe__progressive_noti BOOST_REQUIRE(handshake(electrum::version::v1_1)); // This validates cursor/midstate consistency. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); // Confirming block 10 also makes block 11 to rooted. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto expected_confirm10 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -459,7 +459,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_subscribe__progressive_noti BOOST_REQUIRE_EQUAL(response1.at("result").as_string(), expected_confirm10); // Confirming block 11 also makes block 12 rooted. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block11.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block11.hash()), true)); const auto expected_confirm11 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -483,7 +483,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scripthash_subscribe__progressive_noti BOOST_REQUIRE_EQUAL(params1.at(1).as_string(), expected_confirm11); // Confirming block 12 only makes block 12 confirmed. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block12.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block12.hash()), true)); const auto expected_confirm12 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -617,14 +617,14 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_subscribe__initialization // This validates the hash accumulator copy in get_scripthash_history() and incorporates // confirmed, rooted and unrooted transactions, duplicates, and sort. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); - - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); + + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto expected_initial = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -643,14 +643,14 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_subscribe__repeat_call__i BOOST_REQUIRE(handshake(electrum::version::v1_7)); // This validates cursor/midstate consistency. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); - - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); + + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); const auto expected_initial = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -680,15 +680,15 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_subscribe__progressive__e BOOST_REQUIRE(handshake(electrum::version::v1_7)); // This validates cursor/midstate consistency. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); // Confirming block 10 also makes block 11 to rooted. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto expected_confirm10 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -702,7 +702,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_subscribe__progressive__e BOOST_REQUIRE_EQUAL(response1.at("result").as_string(), expected_confirm10); // Confirming block 11 also makes block 12 rooted. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block11.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block11.hash()), true)); const auto expected_confirm11 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -715,7 +715,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_subscribe__progressive__e BOOST_REQUIRE_EQUAL(response2.at("result").as_string(), expected_confirm11); // Confirming block 12 only makes block 12 confirmed. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block12.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block12.hash()), true)); const auto expected_confirm12 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -733,15 +733,15 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_subscribe__progressive_no BOOST_REQUIRE(handshake(electrum::version::v1_7)); // This validates cursor/midstate consistency. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); - const auto hash10 = test::bogus_block10.transactions_ptr()->at(1)->hash(false); - const auto hash11 = test::bogus_block11.transactions_ptr()->at(0)->hash(false); - const auto hash12 = test::bogus_block12.transactions_ptr()->at(0)->hash(false); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); + const auto hash10 = test::mock_block10.transactions_ptr()->at(1)->hash(false); + const auto hash11 = test::mock_block11.transactions_ptr()->at(0)->hash(false); + const auto hash12 = test::mock_block12.transactions_ptr()->at(0)->hash(false); // Confirming block 10 also makes block 11 to rooted. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto expected_confirm10 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -755,7 +755,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_subscribe__progressive_no BOOST_REQUIRE_EQUAL(response1.at("result").as_string(), expected_confirm10); // Confirming block 11 also makes block 12 rooted. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block11.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block11.hash()), true)); const auto expected_confirm11 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + @@ -779,7 +779,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_scriptpubkey_subscribe__progressive_no BOOST_REQUIRE_EQUAL(params1.at(1).as_string(), expected_confirm11); // Confirming block 12 only makes block 12 confirmed. - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block12.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block12.hash()), true)); const auto expected_confirm12 = encode_base16(sha256_hash ( encode_hash(hash10) + ":10:" + diff --git a/test/protocols/electrum/electrum_transactions.cpp b/test/protocols/electrum/electrum_transactions.cpp index 7f72798e..5a0708ac 100644 --- a/test/protocols/electrum/electrum_transactions.cpp +++ b/test/protocols/electrum/electrum_transactions.cpp @@ -17,7 +17,6 @@ * along with this program. If not, see . */ #include "../../test.hpp" -#include "../blocks.hpp" #include "electrum_setup_fixture.hpp" #include @@ -359,7 +358,7 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_transaction_get_merkle__mutiple_txs_bl { BOOST_REQUIRE(handshake(electrum::version::v1_4)); - const auto& txs = *test::bogus_block10.transactions_ptr(); + const auto& txs = *test::mock_block10.transactions_ptr(); const auto& tx0 = *txs.at(0); const auto& tx1 = *txs.at(1); const auto& tx2 = *txs.at(2); @@ -368,8 +367,8 @@ BOOST_AUTO_TEST_CASE(electrum__blockchain_transaction_get_merkle__mutiple_txs_bl const auto tx2_hash = tx2.hash(false); // Add a confirmed multi-tx block. - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); const auto request = R"({"id":104,"method":"blockchain.transaction.get_merkle","params":["%1%",10]})" "\n"; const auto response = get((boost::format(request) % encode_hash(tx1_hash)).str()); diff --git a/test/protocols/native/native_block.cpp b/test/protocols/native/native_block.cpp index b9bd0cfb..3f37a7a8 100644 --- a/test/protocols/native/native_block.cpp +++ b/test/protocols/native/native_block.cpp @@ -143,18 +143,18 @@ BOOST_AUTO_TEST_CASE(native__ws_top_subscribe__progressive_notify__expected) { BOOST_REQUIRE(!ws_upgrade()); - BOOST_REQUIRE(query_.set(test::bogus_block10, database::context{ 0, 10, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block11, database::context{ 0, 11, 0 }, false, false)); - BOOST_REQUIRE(query_.set(test::bogus_block12, database::context{ 0, 12, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block10, database::context{ 0, 10, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block11, database::context{ 0, 11, 0 }, false, false)); + BOOST_REQUIRE(query_.set(test::mock_block12, database::context{ 0, 12, 0 }, false, false)); const auto response = ws_get_json("/v1/top/subscribe?format=json"); BOOST_REQUIRE(response.is_int64()); BOOST_REQUIRE_EQUAL(response.as_int64(), 9); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block10.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block10.hash()), true)); BOOST_REQUIRE_EQUAL(ws_get_text("/v1/top/subscribe?format=text"), "0a"); - BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::bogus_block11.hash()), true)); + BOOST_REQUIRE(query_.push_confirmed(query_.to_header(test::mock_block11.hash()), true)); notify(node::chase::organized, node::header_t{ 11 }); BOOST_REQUIRE_EQUAL(to_string(ws_receive()), "0b"); diff --git a/test/protocols/native/native_setup_fixture.cpp b/test/protocols/native/native_setup_fixture.cpp index c532ed55..438e9d68 100644 --- a/test/protocols/native/native_setup_fixture.cpp +++ b/test/protocols/native/native_setup_fixture.cpp @@ -17,7 +17,7 @@ * along with this program. If not, see . */ #include "../../test.hpp" -#include "../blocks.hpp" +#include "../../mocks/blocks.hpp" #include "native_setup_fixture.hpp" #include diff --git a/test/protocols/native/native_setup_fixture.hpp b/test/protocols/native/native_setup_fixture.hpp index d0707efa..1ad234bb 100644 --- a/test/protocols/native/native_setup_fixture.hpp +++ b/test/protocols/native/native_setup_fixture.hpp @@ -20,7 +20,7 @@ #define LIBBITCOIN_SERVER_TEST_PROTOCOLS_NATIVE_NATIVE #include "../../test.hpp" -#include "../blocks.hpp" +#include "../../mocks/blocks.hpp" #define NATIVE_ENDPOINT "127.0.0.1:65001"