diff options
| author | Pieter Wuille <[email protected]> | 2018-07-27 12:21:12 -0700 |
|---|---|---|
| committer | Pieter Wuille <[email protected]> | 2018-07-27 12:21:12 -0700 |
| commit | f6b7fc349ccf9cfbeb7e91e19c20e2a2fcc9026f (patch) | |
| tree | 4f5e3cb6933ef7399fb69d47b935b3ab24467c23 /src/test/descriptor_tests.cpp | |
| parent | Add experimental warning to scantxoutset (diff) | |
| download | discoin-f6b7fc349ccf9cfbeb7e91e19c20e2a2fcc9026f.tar.xz discoin-f6b7fc349ccf9cfbeb7e91e19c20e2a2fcc9026f.zip | |
Support h instead of ' in hardened descriptor paths
Diffstat (limited to 'src/test/descriptor_tests.cpp')
| -rw-r--r-- | src/test/descriptor_tests.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/test/descriptor_tests.cpp b/src/test/descriptor_tests.cpp index 6d0492e05..f189222be 100644 --- a/src/test/descriptor_tests.cpp +++ b/src/test/descriptor_tests.cpp @@ -28,13 +28,28 @@ constexpr int HARDENED = 2; // Derivation needs access to private keys constexpr int UNSOLVABLE = 4; // This descriptor is not expected to be solvable constexpr int SIGNABLE = 8; // We can sign with this descriptor (this is not true when actual BIP32 derivation is used, as that's not integrated in our signing code) +std::string MaybeUseHInsteadOfApostrophy(std::string ret) +{ + if (InsecureRandBool()) { + while (true) { + auto it = ret.find("'"); + if (it != std::string::npos) { + ret[it] = 'h'; + } else { + break; + } + } + } + return ret; +} + void Check(const std::string& prv, const std::string& pub, int flags, const std::vector<std::vector<std::string>>& scripts) { FlatSigningProvider keys_priv, keys_pub; // Check that parsing succeeds. - auto parse_priv = Parse(prv, keys_priv); - auto parse_pub = Parse(pub, keys_pub); + auto parse_priv = Parse(MaybeUseHInsteadOfApostrophy(prv), keys_priv); + auto parse_pub = Parse(MaybeUseHInsteadOfApostrophy(pub), keys_pub); BOOST_CHECK(parse_priv); BOOST_CHECK(parse_pub); |