MCPcopy Create free account
hub / github.com/OpenImageDebugger/OpenImageDebugger / TEST

Function TEST

tests/test_asio_transport.cpp:41–68  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39using namespace oid;
40
41TEST(AsioTransport, RoundTripBytes) {
42 asio::io_context server_ctx;
43 asio::ip::tcp::acceptor acceptor(
44 server_ctx,
45 asio::ip::tcp::endpoint(asio::ip::make_address("127.0.0.1"), 0));
46 const unsigned short port = acceptor.local_endpoint().port();
47
48 asio::ip::tcp::socket server_sock(server_ctx);
49 std::thread server([&acceptor, &server_sock] {
50 acceptor.accept(server_sock);
51 // Echo 4 bytes back after receiving 4.
52 std::array<std::byte, 4> buf{};
53 asio::read(server_sock, asio::buffer(buf));
54 asio::write(server_sock, asio::buffer(buf));
55 });
56
57 AsioTransport client("127.0.0.1", port);
58 const std::array<std::byte, 4> out{
59 std::byte{1}, std::byte{2}, std::byte{3}, std::byte{4}};
60 client.send(out);
61 std::array<std::byte, 4> in{};
62 std::size_t got = 0;
63 while (got < in.size()) {
64 got += client.receive(std::span{in}.subspan(got));
65 }
66 server.join();
67 EXPECT_EQ(in, out);
68}
69
70TEST(AsioTransport, HasDataFalseBeforeSend) {
71 asio::io_context server_ctx;

Callers

nothing calls this directly

Calls 8

portMethod · 0.80
acceptMethod · 0.80
set_timeoutMethod · 0.80
is_connectedMethod · 0.80
sendMethod · 0.45
sizeMethod · 0.45
receiveMethod · 0.45
has_dataMethod · 0.45

Tested by

no test coverage detected