aboutsummaryrefslogtreecommitdiff
path: root/src/test/fuzz/util.cpp
diff options
context:
space:
mode:
authorbrunoerg <brunoely.gc@gmail.com>2023-11-07 10:44:25 -0300
committerbrunoerg <brunoely.gc@gmail.com>2023-11-20 15:57:56 -0300
commit641dddf01812407d163520def83f5975413691e4 (patch)
treefc1f51d2c5e901627dff2456ab9e2edafd2f48f4 /src/test/fuzz/util.cpp
parent2e1833ca1341ab4dc92508a59181aa6c7c38db88 (diff)
downloadbitcoin-641dddf01812407d163520def83f5975413691e4.tar.xz
fuzz: create ConsumeCoins
Diffstat (limited to 'src/test/fuzz/util.cpp')
-rw-r--r--src/test/fuzz/util.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/fuzz/util.cpp b/src/test/fuzz/util.cpp
index 87ca2f6aed..4ce78d125a 100644
--- a/src/test/fuzz/util.cpp
+++ b/src/test/fuzz/util.cpp
@@ -164,6 +164,24 @@ uint32_t ConsumeSequence(FuzzedDataProvider& fuzzed_data_provider) noexcept
fuzzed_data_provider.ConsumeIntegral<uint32_t>();
}
+std::map<COutPoint, Coin> ConsumeCoins(FuzzedDataProvider& fuzzed_data_provider) noexcept
+{
+ std::map<COutPoint, Coin> coins;
+ LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
+ const std::optional<COutPoint> outpoint{ConsumeDeserializable<COutPoint>(fuzzed_data_provider)};
+ if (!outpoint) {
+ break;
+ }
+ const std::optional<Coin> coin{ConsumeDeserializable<Coin>(fuzzed_data_provider)};
+ if (!coin) {
+ break;
+ }
+ coins[*outpoint] = *coin;
+ }
+
+ return coins;
+}
+
CTxDestination ConsumeTxDestination(FuzzedDataProvider& fuzzed_data_provider) noexcept
{
CTxDestination tx_destination;