mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-05-20 17:02:14 +02:00
fuzz: coins_view: correct an incorrect assertion
It is incorrect to assert that `cache.HaveCoin()` will always be `true` if `backend.HaveCoin()` is. The coin could well have been marked as spent in the cache but not yet flushed, in which case `cache.HaveCoin()` would return `false`. Note this was never hit because `exists_using_have_coin_in_backend` is currently never `true` (it's the default implementation of `CCoinsView`. However this might change if we were to add a target where the backend is a `CCoinsViewDB`.
This commit is contained in:
parent
a4ca497588
commit
c5f6b1db56
@ -155,8 +155,9 @@ FUZZ_TARGET(coins_view, .init = initialize_coins_view)
|
|||||||
}
|
}
|
||||||
assert((exists_using_access_coin && exists_using_have_coin_in_cache && exists_using_have_coin && exists_using_get_coin) ||
|
assert((exists_using_access_coin && exists_using_have_coin_in_cache && exists_using_have_coin && exists_using_get_coin) ||
|
||||||
(!exists_using_access_coin && !exists_using_have_coin_in_cache && !exists_using_have_coin && !exists_using_get_coin));
|
(!exists_using_access_coin && !exists_using_have_coin_in_cache && !exists_using_have_coin && !exists_using_get_coin));
|
||||||
|
// If HaveCoin on the backend is true, it must also be on the cache if the coin wasn't spent.
|
||||||
const bool exists_using_have_coin_in_backend = backend_coins_view.HaveCoin(random_out_point);
|
const bool exists_using_have_coin_in_backend = backend_coins_view.HaveCoin(random_out_point);
|
||||||
if (exists_using_have_coin_in_backend) {
|
if (!coin_using_access_coin.IsSpent() && exists_using_have_coin_in_backend) {
|
||||||
assert(exists_using_have_coin);
|
assert(exists_using_have_coin);
|
||||||
}
|
}
|
||||||
Coin coin_using_backend_get_coin;
|
Coin coin_using_backend_get_coin;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user