MCPcopy Create free account
hub / github.com/boostorg/beast / LLVMFuzzerTestOneInput

Function LLVMFuzzerTestOneInput

test/fuzz/websocket_server.cpp:11–46  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9#include <boost/beast/_experimental/test/stream.hpp>
10
11extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
12{
13 using namespace boost::beast;
14
15 error_code ec;
16 flat_buffer buffer;
17 net::io_context ioc;
18 test::stream remote{ioc};
19
20 websocket::stream<test::stream> ws{
21 ioc, string_view{reinterpret_cast<const char*>(data), size}};
22
23 ws.set_option(websocket::stream_base::decorator(
24 [](websocket::response_type& res)
25 {
26 res.set(http::field::server, "websocket-server-sync");
27 }));
28
29 websocket::permessage_deflate pd;
30 pd.server_enable = (size % 2) != 0;
31 pd.compLevel = static_cast<int>(size % 9);
32 ws.set_option(pd);
33
34 ws.next_layer().connect(remote);
35 ws.next_layer().close_remote();
36 ws.accept(ec);
37
38 if(!ec)
39 {
40 ws.read(buffer, ec);
41 ws.text(ws.got_text());
42 ws.write(buffer.data(), ec);
43 }
44
45 return 0;
46}

Callers

nothing calls this directly

Calls 7

set_optionMethod · 0.80
textMethod · 0.80
decoratorClass · 0.50
acceptMethod · 0.45
readMethod · 0.45
writeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected