MCPcopy Create free account
hub / github.com/ElementsProject/elements / FUZZ_TARGET

Function FUZZ_TARGET

src/test/fuzz/checkqueue.cpp:36–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34} // namespace
35
36FUZZ_TARGET(checkqueue)
37{
38 FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
39
40 const unsigned int batch_size = fuzzed_data_provider.ConsumeIntegralInRange<unsigned int>(0, 1024);
41 CCheckQueue<DumbCheck> check_queue_1{batch_size};
42 CCheckQueue<DumbCheck> check_queue_2{batch_size};
43 std::vector<DumbCheck*> checks_1;
44 std::vector<DumbCheck*> checks_2;
45 const int size = fuzzed_data_provider.ConsumeIntegralInRange<int>(0, 1024);
46 for (int i = 0; i < size; ++i) {
47 const bool result = fuzzed_data_provider.ConsumeBool();
48 checks_1.emplace_back(new DumbCheck(result));
49 checks_2.emplace_back(new DumbCheck(result));
50 }
51 if (fuzzed_data_provider.ConsumeBool()) {
52 check_queue_1.Add(checks_1);
53 } else {
54 for (auto check : checks_1) delete check;
55 }
56 if (fuzzed_data_provider.ConsumeBool()) {
57 (void)check_queue_1.Wait();
58 }
59
60 CCheckQueueControl<DumbCheck> check_queue_control{&check_queue_2};
61 if (fuzzed_data_provider.ConsumeBool()) {
62 check_queue_control.Add(checks_2);
63 } else {
64 for (auto check : checks_2) delete check;
65 }
66 if (fuzzed_data_provider.ConsumeBool()) {
67 (void)check_queue_control.Wait();
68 }
69}

Callers

nothing calls this directly

Calls 6

ConsumeBoolMethod · 0.80
emplace_backMethod · 0.80
dataMethod · 0.45
sizeMethod · 0.45
AddMethod · 0.45
WaitMethod · 0.45

Tested by

no test coverage detected