| 34 | } // namespace |
| 35 | |
| 36 | FUZZ_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 | } |
nothing calls this directly
no test coverage detected