diff --git a/src/test/fuzz/dbwrapper.cpp b/src/test/fuzz/dbwrapper.cpp index 13fff136aee..31ada986097 100644 --- a/src/test/fuzz/dbwrapper.cpp +++ b/src/test/fuzz/dbwrapper.cpp @@ -152,6 +152,22 @@ void VerifyIterator(CDBWrapper& dbw, const Oracle& oracle, assert(oracle_it == oracle.end()); } +/** Build randomized DBParams from the fuzz input, shared by all targets. */ +DBParams ConsumeDBParams(FuzzedDataProvider& provider, leveldb::Env* testing_env, + bool obfuscate, DBOptions options = {}) +{ + return DBParams{ + .path = "dbwrapper_fuzz", + .cache_bytes = provider.ConsumeIntegralInRange(64 << 10, 1_MiB), + .obfuscate = obfuscate, + .options = options, + .testing_env = testing_env, + .max_file_size = provider.ConsumeBool() + ? DBWRAPPER_MAX_FILE_SIZE + : provider.ConsumeIntegralInRange(1_MiB, 4_MiB), + }; +} + template void TestDbWrapper(FuzzedDataProvider& provider, leveldb::Env* testing_env, @@ -164,16 +180,7 @@ void TestDbWrapper(FuzzedDataProvider& provider, const bool obfuscate{provider.ConsumeBool()}; const auto make_db{[&](DBOptions options = {}) { - return std::make_unique(DBParams{ - .path = "dbwrapper_fuzz", - .cache_bytes = provider.ConsumeIntegralInRange(64 << 10, 1_MiB), - .obfuscate = obfuscate, - .options = options, - .testing_env = testing_env, - .max_file_size = provider.ConsumeBool() - ? DBWRAPPER_MAX_FILE_SIZE - : provider.ConsumeIntegralInRange(1_MiB, 4_MiB), - }); + return std::make_unique(ConsumeDBParams(provider, testing_env, obfuscate, options)); }}; std::unique_ptr dbw{make_db()};