aboutsummaryrefslogtreecommitdiff
path: root/src/test/fuzz/util.h
diff options
context:
space:
mode:
authorpracticalswift <practicalswift@users.noreply.github.com>2020-04-28 12:27:56 +0000
committerpracticalswift <practicalswift@users.noreply.github.com>2020-05-25 10:05:06 +0000
commitf9b22e3bdb54acb2f830b3ebbad47ff17dfb5781 (patch)
tree92fe0607d55de25c993027e29cba4e68413fc0f9 /src/test/fuzz/util.h
parent24f70290642c9c5108d3dc62dbe055f5d1bcff9d (diff)
downloadbitcoin-f9b22e3bdb54acb2f830b3ebbad47ff17dfb5781.tar.xz
tests: Add fuzzing harness for CCoinsViewCache
Diffstat (limited to 'src/test/fuzz/util.h')
-rw-r--r--src/test/fuzz/util.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/test/fuzz/util.h b/src/test/fuzz/util.h
index f72d9380eb..9d0fb02128 100644
--- a/src/test/fuzz/util.h
+++ b/src/test/fuzz/util.h
@@ -8,6 +8,7 @@
#include <amount.h>
#include <arith_uint256.h>
#include <attributes.h>
+#include <coins.h>
#include <consensus/consensus.h>
#include <primitives/transaction.h>
#include <script/script.h>
@@ -149,4 +150,15 @@ NODISCARD bool AdditionOverflow(const T i, const T j) noexcept
return std::numeric_limits<T>::max() - i < j;
}
+NODISCARD inline bool ContainsSpentInput(const CTransaction& tx, const CCoinsViewCache& inputs) noexcept
+{
+ for (const CTxIn& tx_in : tx.vin) {
+ const Coin& coin = inputs.AccessCoin(tx_in.prevout);
+ if (coin.IsSpent()) {
+ return true;
+ }
+ }
+ return false;
+}
+
#endif // BITCOIN_TEST_FUZZ_UTIL_H