![]() |
Bitcoin Core 31.99.0
P2P Digital Currency
|
#include <dbwrapper.h>#include <compat/byteswap.h>#include <random.h>#include <sync.h>#include <test/fuzz/FuzzedDataProvider.h>#include <test/fuzz/fuzz.h>#include <test/fuzz/util.h>#include <test/util/random.h>#include <test/util/setup_common.h>#include <util/byte_units.h>#include <util/check.h>#include <util/threadpool.h>#include <leveldb/env.h>#include <leveldb/helpers/memenv/memenv.h>#include <algorithm>#include <cassert>#include <cstdint>#include <deque>#include <functional>#include <future>#include <latch>#include <map>#include <memory>#include <numeric>#include <optional>#include <set>#include <span>#include <string>#include <tuple>#include <vector>Go to the source code of this file.
Enumerations | |
| enum class | ReadOp { Read , Exists , IteratorSeek } |
Functions | |
| TestDbWrapper (provider, &det_env, [&] { det_env.DrainWork();}, [&] { return det_env.RunOne();}, false) | |
| TestDbWrapper (provider, memenv.get(), [] {}, [] { return false;}, true) | |
| SeedRandomStateForTest (SeedRand::ZEROS) | |
| keys | reserve (num_entries) |
| for (size_t start{0};start< num_entries;start+=SEED_BATCH_SIZE) | |
| while (provider.ConsumeBool() &&det_env.RunOne()) | |
| queries | reserve (num_queries) |
| std::vector< std::function< void()> > | tasks (MAX_READ_WORKERS) |
| start_latch | arrive_and_wait () |
| det_env | DrainWork () |
| for (auto &fut :futures) fut.get() | |
Variables | |
| const auto | memenv {std::unique_ptr<leveldb::Env>{leveldb::NewMemEnv(leveldb::Env::Default())}} |
| DeterministicEnv | det_env {memenv.get()} |
| FuzzedDataProvider | provider {buffer.data(), buffer.size()} |
| CDBWrapper | db {ConsumeDBParams(provider, &det_env, provider.ConsumeBool())} |
| const size_t | num_entries {provider.ConsumeIntegralInRange<size_t>(100, 5'000)} |
| std::vector< uint16_t > | keys |
| Oracle | oracle |
| constexpr size_t | SEED_BATCH_SIZE {400} |
| const size_t | num_queries {provider.ConsumeIntegralInRange<size_t>(1, 2'000)} |
| std::vector< std::tuple< ReadOp, uint16_t > > | queries |
| std::latch | start_latch {static_cast<ptrdiff_t>(MAX_READ_WORKERS + 1)} |
| FastRandomContext | rng {ConsumeUInt256(provider)} |
| auto | futures {*Assert(g_read_pool.Submit(std::move(tasks)))} |
|
strong |
| Enumerator | |
|---|---|
| Read | |
| Exists | |
| IteratorSeek | |
Definition at line 399 of file dbwrapper.cpp.
| start_latch arrive_and_wait | ( | ) |
| det_env DrainWork | ( | ) |
| for | ( | auto &fut :futures | ) |
| for | ( | ) |
| keys reserve | ( | num_entries | ) |
| queries reserve | ( | num_queries | ) |
| SeedRandomStateForTest | ( | SeedRand::ZEROS | ) |
| std::vector< std::function< void()> > tasks | ( | MAX_READ_WORKERS | ) |
| TestDbWrapper | ( | provider | , |
| & | det_env, | ||
| [&] { det_env.DrainWork();} | , | ||
| [&] { return det_env.RunOne();} | , | ||
| false | |||
| ) |
| TestDbWrapper | ( | provider | , |
| memenv. | get(), | ||
| [] {} | , | ||
| [] { return false;} | , | ||
| true | |||
| ) |
| while | ( | provider. | ConsumeBool) &&det_env.RunOne( | ) |
Definition at line 395 of file dbwrapper.cpp.
| CDBWrapper db {ConsumeDBParams(provider, &det_env, provider.ConsumeBool())} |
Definition at line 372 of file dbwrapper.cpp.
| DeterministicEnv det_env {memenv.get()} |
Definition at line 342 of file dbwrapper.cpp.
| auto futures {*Assert(g_read_pool.Submit(std::move(tasks)))} |
Definition at line 458 of file dbwrapper.cpp.
| std::vector<uint16_t> keys |
Definition at line 377 of file dbwrapper.cpp.
| const auto memenv {std::unique_ptr<leveldb::Env>{leveldb::NewMemEnv(leveldb::Env::Default())}} |
Definition at line 341 of file dbwrapper.cpp.
| const size_t num_entries {provider.ConsumeIntegralInRange<size_t>(100, 5'000)} |
Definition at line 376 of file dbwrapper.cpp.
| const size_t num_queries {provider.ConsumeIntegralInRange<size_t>(1, 2'000)} |
Definition at line 398 of file dbwrapper.cpp.
| Oracle oracle |
Definition at line 379 of file dbwrapper.cpp.
| FuzzedDataProvider provider {buffer.data(), buffer.size()} |
Definition at line 367 of file dbwrapper.cpp.
| std::vector<std::tuple<ReadOp, uint16_t> > queries |
Definition at line 400 of file dbwrapper.cpp.
Definition at line 414 of file dbwrapper.cpp.
|
constexpr |
Definition at line 380 of file dbwrapper.cpp.
| std::latch start_latch {static_cast<ptrdiff_t>(MAX_READ_WORKERS + 1)} |
Definition at line 412 of file dbwrapper.cpp.