MCPcopy Create free account
hub / github.com/boostorg/asio / test_4_arg_dynamic_string_async_read

Function test_4_arg_dynamic_string_async_read

test/read.cpp:4291–4668  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4289}
4290
4291void test_4_arg_dynamic_string_async_read()
4292{
4293 namespace bindns = std;
4294 using bindns::placeholders::_1;
4295 using bindns::placeholders::_2;
4296
4297 boost::asio::io_context ioc;
4298 test_stream s(ioc);
4299 std::string data;
4300 boost::asio::dynamic_string_buffer<char, std::string::traits_type,
4301 std::string::allocator_type> sb
4302 = boost::asio::dynamic_buffer(data, sizeof(read_data));
4303
4304 s.reset(read_data, sizeof(read_data));
4305 sb.consume(sb.size());
4306 bool called = false;
4307 boost::asio::async_read(s, sb, boost::asio::transfer_all(),
4308 bindns::bind(async_read_handler,
4309 _1, _2, sizeof(read_data), &called));
4310 ioc.restart();
4311 ioc.run();
4312 BOOST_ASIO_CHECK(called);
4313 BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
4314 BOOST_ASIO_CHECK(s.check_buffers(sb.data(0, sb.size()), sizeof(read_data)));
4315
4316 s.reset(read_data, sizeof(read_data));
4317 s.next_read_length(1);
4318 sb.consume(sb.size());
4319 called = false;
4320 boost::asio::async_read(s, sb, boost::asio::transfer_all(),
4321 bindns::bind(async_read_handler,
4322 _1, _2, sizeof(read_data), &called));
4323 ioc.restart();
4324 ioc.run();
4325 BOOST_ASIO_CHECK(called);
4326 BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
4327 BOOST_ASIO_CHECK(s.check_buffers(sb.data(0, sb.size()), sizeof(read_data)));
4328
4329 s.reset(read_data, sizeof(read_data));
4330 s.next_read_length(10);
4331 sb.consume(sb.size());
4332 called = false;
4333 boost::asio::async_read(s, sb, boost::asio::transfer_all(),
4334 bindns::bind(async_read_handler,
4335 _1, _2, sizeof(read_data), &called));
4336 ioc.restart();
4337 ioc.run();
4338 BOOST_ASIO_CHECK(called);
4339 BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
4340 BOOST_ASIO_CHECK(s.check_buffers(sb.data(0, sb.size()), sizeof(read_data)));
4341
4342 s.reset(read_data, sizeof(read_data));
4343 sb.consume(sb.size());
4344 called = false;
4345 boost::asio::async_read(s, sb, boost::asio::transfer_at_least(1),
4346 bindns::bind(async_read_handler,
4347 _1, _2, sizeof(read_data), &called));
4348 ioc.restart();

Callers

nothing calls this directly

Calls 15

async_readFunction · 0.85
transfer_at_leastFunction · 0.85
transfer_exactlyFunction · 0.85
lazy_handlerClass · 0.85
restartMethod · 0.80
short_transferClass · 0.70
transfer_allClass · 0.50
bindFunction · 0.50
resetMethod · 0.45
consumeMethod · 0.45
sizeMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected