mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-09-11 21:20:39 +02:00
test: move parse_hd_keypath test to bip32_tests
ParseHDKeypath() lives in util/bip32, so its unit test belongs in bip32_tests rather than psbt_wallet_tests. Pure move, no changes to the test itself; subsequent commits extend it in its new home.
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
#include <key_io.h>
|
||||
#include <streams.h>
|
||||
#include <test/util/setup_common.h>
|
||||
#include <util/bip32.h>
|
||||
#include <util/strencodings.h>
|
||||
|
||||
#include <string>
|
||||
@@ -230,4 +231,78 @@ BOOST_AUTO_TEST_CASE(bip32_max_depth) {
|
||||
BOOST_CHECK(!pubkey_parent.Derive(pubkey_child, 0));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(parse_hd_keypath)
|
||||
{
|
||||
std::vector<uint32_t> keypath;
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("///////////////////////////", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1'/1", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("//////////////////////////'/", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("1///////////////////////////", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1'/", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("1/'//////////////////////////", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath(" ", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("0", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("O", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("0000'/0000'/0000'", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("0000,/0000,/0000,", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("01234", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("0x1234", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("1", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath(" 1", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("42", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m42", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("4294967295", keypath)); // 4294967295 == 0xFFFFFFFF (uint32_t max)
|
||||
BOOST_CHECK(!ParseHDKeypath("4294967296", keypath)); // 4294967296 == 0xFFFFFFFF (uint32_t max) + 1
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("n", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("n/", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("n/0", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0'", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m/0''", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0'/0'", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m/'0/0'", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0/0", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("n/0/0", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0/0/00", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m/0/0/f00", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0/0/000000000000000000000000000000000000000000000000000000000000000000000000000000000000", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m/1/1/111111111111111111111111111111111111111111111111111111111111111111111111111111111111", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0/00/0", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m/0'/00/'0", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/1/", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m/1//", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0/4294967295", keypath)); // 4294967295 == 0xFFFFFFFF (uint32_t max)
|
||||
BOOST_CHECK(!ParseHDKeypath("m/0/4294967296", keypath)); // 4294967296 == 0xFFFFFFFF (uint32_t max) + 1
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/4294967295", keypath)); // 4294967295 == 0xFFFFFFFF (uint32_t max)
|
||||
BOOST_CHECK(!ParseHDKeypath("m/4294967296", keypath)); // 4294967296 == 0xFFFFFFFF (uint32_t max) + 1
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
#include <key_io.h>
|
||||
#include <node/types.h>
|
||||
#include <util/bip32.h>
|
||||
#include <util/strencodings.h>
|
||||
#include <wallet/wallet.h>
|
||||
|
||||
@@ -79,79 +78,5 @@ BOOST_AUTO_TEST_CASE(psbt_updater_test)
|
||||
BOOST_CHECK(m_wallet.FillPSBT(psbtx, {.sign = true, .bip32_derivs = true}, complete));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(parse_hd_keypath)
|
||||
{
|
||||
std::vector<uint32_t> keypath;
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("///////////////////////////", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1'/1", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("//////////////////////////'/", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("1///////////////////////////", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1'/", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("1/'//////////////////////////", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath(" ", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("0", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("O", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("0000'/0000'/0000'", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("0000,/0000,/0000,", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("01234", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("0x1234", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("1", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath(" 1", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("42", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m42", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("4294967295", keypath)); // 4294967295 == 0xFFFFFFFF (uint32_t max)
|
||||
BOOST_CHECK(!ParseHDKeypath("4294967296", keypath)); // 4294967296 == 0xFFFFFFFF (uint32_t max) + 1
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("n", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("n/", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("n/0", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0'", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m/0''", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0'/0'", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m/'0/0'", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0/0", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("n/0/0", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0/0/00", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m/0/0/f00", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0/0/000000000000000000000000000000000000000000000000000000000000000000000000000000000000", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m/1/1/111111111111111111111111111111111111111111111111111111111111111111111111111111111111", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0/00/0", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m/0'/00/'0", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/1/", keypath));
|
||||
BOOST_CHECK(!ParseHDKeypath("m/1//", keypath));
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/0/4294967295", keypath)); // 4294967295 == 0xFFFFFFFF (uint32_t max)
|
||||
BOOST_CHECK(!ParseHDKeypath("m/0/4294967296", keypath)); // 4294967296 == 0xFFFFFFFF (uint32_t max) + 1
|
||||
|
||||
BOOST_CHECK(ParseHDKeypath("m/4294967295", keypath)); // 4294967295 == 0xFFFFFFFF (uint32_t max)
|
||||
BOOST_CHECK(!ParseHDKeypath("m/4294967296", keypath)); // 4294967296 == 0xFFFFFFFF (uint32_t max) + 1
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
} // namespace wallet
|
||||
|
||||
Reference in New Issue
Block a user