aboutsummaryrefslogtreecommitdiff
path: root/src/test/fuzz/script.cpp
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2021-07-04 21:24:27 +0200
committerMarcoFalke <falke.marco@gmail.com>2021-07-04 21:30:50 +0200
commitfabf17056c1046c6ac7fa5d140125050b7a2b0e0 (patch)
tree57db01668b30fa7b97a43f64be95926d6e6340c0 /src/test/fuzz/script.cpp
parentfa42800a51919bb50a1000ac4f58847e6a7092a3 (diff)
downloadbitcoin-fabf17056c1046c6ac7fa5d140125050b7a2b0e0.tar.xz
fuzz: Move CTxDestination fuzzing to script fuzz target
No need to split it over several targets
Diffstat (limited to 'src/test/fuzz/script.cpp')
-rw-r--r--src/test/fuzz/script.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/test/fuzz/script.cpp b/src/test/fuzz/script.cpp
index 1d5f37d109..950ee45d1d 100644
--- a/src/test/fuzz/script.cpp
+++ b/src/test/fuzz/script.cpp
@@ -6,8 +6,10 @@
#include <compressor.h>
#include <core_io.h>
#include <core_memusage.h>
+#include <key_io.h>
#include <policy/policy.h>
#include <pubkey.h>
+#include <rpc/util.h>
#include <script/descriptor.h>
#include <script/interpreter.h>
#include <script/script.h>
@@ -188,9 +190,22 @@ FUZZ_TARGET_INIT(script, initialize_script)
fuzzed_data_provider.ConsumeBool() ?
DecodeDestination(fuzzed_data_provider.ConsumeRandomLengthString()) :
ConsumeTxDestination(fuzzed_data_provider)};
- const CTxDestination tx_destination_2 = ConsumeTxDestination(fuzzed_data_provider);
+ const CTxDestination tx_destination_2{ConsumeTxDestination(fuzzed_data_provider)};
+ const std::string encoded_dest{EncodeDestination(tx_destination_1)};
+ const UniValue json_dest{DescribeAddress(tx_destination_1)};
+ Assert(tx_destination_1 == DecodeDestination(encoded_dest));
+ (void)GetKeyForDestination(/* store */ {}, tx_destination_1);
+ const CScript dest{GetScriptForDestination(tx_destination_1)};
+ const bool valid{IsValidDestination(tx_destination_1)};
+ Assert(dest.empty() != valid);
+
+ Assert(valid == IsValidDestinationString(encoded_dest));
- (void)(tx_destination_1 == tx_destination_2);
(void)(tx_destination_1 < tx_destination_2);
+ if (tx_destination_1 == tx_destination_2) {
+ Assert(encoded_dest == EncodeDestination(tx_destination_2));
+ Assert(json_dest.write() == DescribeAddress(tx_destination_2).write());
+ Assert(dest == GetScriptForDestination(tx_destination_2));
+ }
}
}