| 4668 | } |
| 4669 | |
| 4670 | void test_4_arg_streambuf_async_read() |
| 4671 | { |
| 4672 | #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1) |
| 4673 | namespace bindns = std; |
| 4674 | using bindns::placeholders::_1; |
| 4675 | using bindns::placeholders::_2; |
| 4676 | |
| 4677 | boost::asio::io_context ioc; |
| 4678 | test_stream s(ioc); |
| 4679 | boost::asio::streambuf sb(sizeof(read_data)); |
| 4680 | |
| 4681 | s.reset(read_data, sizeof(read_data)); |
| 4682 | sb.consume(sb.size()); |
| 4683 | bool called = false; |
| 4684 | boost::asio::async_read(s, sb, boost::asio::transfer_all(), |
| 4685 | bindns::bind(async_read_handler, |
| 4686 | _1, _2, sizeof(read_data), &called)); |
| 4687 | ioc.restart(); |
| 4688 | ioc.run(); |
| 4689 | BOOST_ASIO_CHECK(called); |
| 4690 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 4691 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data))); |
| 4692 | |
| 4693 | s.reset(read_data, sizeof(read_data)); |
| 4694 | s.next_read_length(1); |
| 4695 | sb.consume(sb.size()); |
| 4696 | called = false; |
| 4697 | boost::asio::async_read(s, sb, boost::asio::transfer_all(), |
| 4698 | bindns::bind(async_read_handler, |
| 4699 | _1, _2, sizeof(read_data), &called)); |
| 4700 | ioc.restart(); |
| 4701 | ioc.run(); |
| 4702 | BOOST_ASIO_CHECK(called); |
| 4703 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 4704 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data))); |
| 4705 | |
| 4706 | s.reset(read_data, sizeof(read_data)); |
| 4707 | s.next_read_length(10); |
| 4708 | sb.consume(sb.size()); |
| 4709 | called = false; |
| 4710 | boost::asio::async_read(s, sb, boost::asio::transfer_all(), |
| 4711 | bindns::bind(async_read_handler, |
| 4712 | _1, _2, sizeof(read_data), &called)); |
| 4713 | ioc.restart(); |
| 4714 | ioc.run(); |
| 4715 | BOOST_ASIO_CHECK(called); |
| 4716 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 4717 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data))); |
| 4718 | |
| 4719 | s.reset(read_data, sizeof(read_data)); |
| 4720 | sb.consume(sb.size()); |
| 4721 | called = false; |
| 4722 | boost::asio::async_read(s, sb, boost::asio::transfer_at_least(1), |
| 4723 | bindns::bind(async_read_handler, |
| 4724 | _1, _2, sizeof(read_data), &called)); |
| 4725 | ioc.restart(); |
| 4726 | ioc.run(); |
| 4727 | BOOST_ASIO_CHECK(called); |
nothing calls this directly
no test coverage detected