| 2670 | } |
| 2671 | |
| 2672 | void test_3_arg_vector_buffers_async_read() |
| 2673 | { |
| 2674 | namespace bindns = std; |
| 2675 | using bindns::placeholders::_1; |
| 2676 | using bindns::placeholders::_2; |
| 2677 | |
| 2678 | boost::asio::io_context ioc; |
| 2679 | test_stream s(ioc); |
| 2680 | char read_buf[sizeof(read_data)]; |
| 2681 | std::vector<boost::asio::mutable_buffer> buffers; |
| 2682 | buffers.push_back(boost::asio::buffer(read_buf, 32)); |
| 2683 | buffers.push_back(boost::asio::buffer(read_buf, 39) + 32); |
| 2684 | buffers.push_back(boost::asio::buffer(read_buf) + 39); |
| 2685 | |
| 2686 | s.reset(read_data, sizeof(read_data)); |
| 2687 | memset(read_buf, 0, sizeof(read_buf)); |
| 2688 | bool called = false; |
| 2689 | boost::asio::async_read(s, buffers, |
| 2690 | bindns::bind(async_read_handler, |
| 2691 | _1, _2, sizeof(read_data), &called)); |
| 2692 | ioc.restart(); |
| 2693 | ioc.run(); |
| 2694 | BOOST_ASIO_CHECK(called); |
| 2695 | BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); |
| 2696 | |
| 2697 | s.reset(read_data, sizeof(read_data)); |
| 2698 | s.next_read_length(1); |
| 2699 | memset(read_buf, 0, sizeof(read_buf)); |
| 2700 | called = false; |
| 2701 | boost::asio::async_read(s, buffers, |
| 2702 | bindns::bind(async_read_handler, |
| 2703 | _1, _2, sizeof(read_data), &called)); |
| 2704 | ioc.restart(); |
| 2705 | ioc.run(); |
| 2706 | BOOST_ASIO_CHECK(called); |
| 2707 | BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); |
| 2708 | |
| 2709 | s.reset(read_data, sizeof(read_data)); |
| 2710 | s.next_read_length(10); |
| 2711 | memset(read_buf, 0, sizeof(read_buf)); |
| 2712 | called = false; |
| 2713 | boost::asio::async_read(s, buffers, |
| 2714 | bindns::bind(async_read_handler, |
| 2715 | _1, _2, sizeof(read_data), &called)); |
| 2716 | ioc.restart(); |
| 2717 | ioc.run(); |
| 2718 | BOOST_ASIO_CHECK(called); |
| 2719 | BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); |
| 2720 | |
| 2721 | s.reset(read_data, sizeof(read_data)); |
| 2722 | memset(read_buf, 0, sizeof(read_buf)); |
| 2723 | int i = boost::asio::async_read(s, buffers, archetypes::lazy_handler()); |
| 2724 | BOOST_ASIO_CHECK(i == 42); |
| 2725 | ioc.restart(); |
| 2726 | ioc.run(); |
| 2727 | BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); |
| 2728 | |
| 2729 | s.reset(read_data, sizeof(read_data)); |
nothing calls this directly
no test coverage detected