| 4289 | } |
| 4290 | |
| 4291 | void 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(); |
nothing calls this directly
no test coverage detected