curl-fuzzer C++ reference
Loading...
Searching...
No Matches
multi_transfer_runner.h
Go to the documentation of this file.
1/*
2 * Copyright (C) Max Dymond, <cmeister2@gmail.com>, et al.
3 *
4 * SPDX-License-Identifier: curl
5 */
6
9
10#ifndef PROTO_FUZZER_MULTI_TRANSFER_RUNNER_H_
11#define PROTO_FUZZER_MULTI_TRANSFER_RUNNER_H_
12
13#include <cstddef>
14
15#include "curl_fuzzer.pb.h"
16
17namespace proto_fuzzer {
18
23 std::size_t configured_handles = 0;
25 std::size_t added_handles = 0;
27 std::size_t completion_messages = 0;
29 std::size_t info_read_notifications = 0;
31 std::size_t easy_done_notifications = 0;
33 std::size_t actions_consumed = 0;
35 std::size_t state_probe_handles = 0;
37 std::size_t opened_connections = 0;
39 bool watch_exhausted = false;
40};
41
42MultiTransferRunStats RunMultiTransferScenario(const curl::fuzzer::proto::Scenario& scenario);
43
44} // namespace proto_fuzzer
45
46#endif // PROTO_FUZZER_MULTI_TRANSFER_RUNNER_H_
MultiTransferRunStats RunMultiTransferScenario(const curl::fuzzer::proto::Scenario &scenario)
Drive two to four easy handles through one CURLM and one bounded in-process HTTP peer.
Observable lifecycle counts returned to focused unit tests.
std::size_t added_handles
Easy handles successfully added to the shared multi handle.
std::size_t state_probe_handles
Easy handles that received the complete closed state-probe setup.
std::size_t opened_connections
Peer sockets opened while serving the concurrent transfers.
std::size_t info_read_notifications
CURLMNOTIFY_INFO_READ notifications dispatched to the multi handle.
std::size_t easy_done_notifications
CURLMNOTIFY_EASY_DONE notifications dispatched to the multi handle.
std::size_t completion_messages
CURLMSG_DONE records consumed across all configured handles.
std::size_t configured_handles
Easy handles requested after runtime bounds are applied.
std::size_t actions_consumed
Ordered plan actions consumed, including intentional no-ops.
bool watch_exhausted
Socket readiness could not be represented in the fixed watch table.