diff --git a/src/bench/wallet_loading.cpp b/src/bench/wallet_loading.cpp index 20997ff8927..09028acdb03 100644 --- a/src/bench/wallet_loading.cpp +++ b/src/bench/wallet_loading.cpp @@ -42,7 +42,12 @@ static void WalletLoadingDescriptors(benchmark::Bench& bench) // Setup the wallet // Loading the wallet will also create it uint64_t create_flags = WALLET_FLAG_DESCRIPTORS; - auto database = CreateMockableWalletDatabase(); + DatabaseStatus status; + DatabaseOptions options; + options.require_format = DatabaseFormat::SQLITE; + options.require_create = true; + bilingual_str error; + auto database = MakeWalletDatabase("", options, status, error); auto wallet = TestCreateWallet(std::move(database), context, create_flags); // Generate a bunch of transactions and addresses to put into the wallet @@ -50,18 +55,20 @@ static void WalletLoadingDescriptors(benchmark::Bench& bench) AddTx(*wallet); } - database = DuplicateMockDatabase(wallet->GetDatabase()); + options.require_create = false; + options.require_existing = true; - // reload the wallet for the actual benchmark + bench.epochs(5) + .setup([&] { + TestUnloadWallet(std::move(wallet)); + database = MakeWalletDatabase("", options, status, error); + }) + .run([&] { + wallet = TestLoadWallet(std::move(database), context); + }); + + // Cleanup TestUnloadWallet(std::move(wallet)); - - bench.epochs(5).run([&] { - wallet = TestLoadWallet(std::move(database), context); - - // Cleanup - database = DuplicateMockDatabase(wallet->GetDatabase()); - TestUnloadWallet(std::move(wallet)); - }); } BENCHMARK(WalletLoadingDescriptors);