mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-09-11 21:20:39 +02:00
fuzz: add coins_view_stacked fuzz harness to test concurrent leveldb reads
This commit is contained in:
@@ -449,3 +449,25 @@ FUZZ_TARGET(coins_view_overlay, .init = initialize_coins_view) EXCLUSIVE_LOCKS_R
|
||||
const auto reset_guard{coins_view_cache.StartFetching(block)};
|
||||
TestCoinsView(fuzzed_data_provider, coins_view_cache, &backend_cache);
|
||||
}
|
||||
|
||||
FUZZ_TARGET(coins_view_stacked, .init = initialize_coins_view) EXCLUSIVE_LOCKS_REQUIRED(!g_thread_pool_mutex)
|
||||
{
|
||||
SeedRandomStateForTest(SeedRand::ZEROS); // for SaltedTxidHasher
|
||||
StartPoolIfNeeded();
|
||||
FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()};
|
||||
auto db_params = DBParams{
|
||||
.path = "",
|
||||
.cache_bytes = 1_MiB,
|
||||
.memory_only = true,
|
||||
};
|
||||
CCoinsViewDB backend_base_coins_view{std::move(db_params), CoinsViewOptions{}};
|
||||
CCoinsViewCache backend_cache{&backend_base_coins_view, /*deterministic=*/true};
|
||||
TestCoinsView(fuzzed_data_provider, backend_cache, &backend_base_coins_view);
|
||||
CoinsViewOverlay coins_view_cache{&backend_cache, g_thread_pool, /*deterministic=*/true};
|
||||
CBlock block{BuildRandomBlock(fuzzed_data_provider, backend_base_coins_view)};
|
||||
{
|
||||
const auto reset_guard{coins_view_cache.StartFetching(block)};
|
||||
TestCoinsView(fuzzed_data_provider, coins_view_cache, &backend_cache);
|
||||
}
|
||||
TestCoinsView(fuzzed_data_provider, backend_cache, &backend_base_coins_view);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user