| 2887 | } |
| 2888 | |
| 2889 | void test_4_arg_mutable_buffer_async_read() |
| 2890 | { |
| 2891 | namespace bindns = std; |
| 2892 | using bindns::placeholders::_1; |
| 2893 | using bindns::placeholders::_2; |
| 2894 | |
| 2895 | boost::asio::io_context ioc; |
| 2896 | test_stream s(ioc); |
| 2897 | char read_buf[sizeof(read_data)]; |
| 2898 | boost::asio::mutable_buffer buffers |
| 2899 | = boost::asio::buffer(read_buf, sizeof(read_buf)); |
| 2900 | |
| 2901 | s.reset(read_data, sizeof(read_data)); |
| 2902 | memset(read_buf, 0, sizeof(read_buf)); |
| 2903 | bool called = false; |
| 2904 | boost::asio::async_read(s, buffers, boost::asio::transfer_all(), |
| 2905 | bindns::bind(async_read_handler, |
| 2906 | _1, _2, sizeof(read_data), &called)); |
| 2907 | ioc.restart(); |
| 2908 | ioc.run(); |
| 2909 | BOOST_ASIO_CHECK(called); |
| 2910 | BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); |
| 2911 | |
| 2912 | s.reset(read_data, sizeof(read_data)); |
| 2913 | s.next_read_length(1); |
| 2914 | memset(read_buf, 0, sizeof(read_buf)); |
| 2915 | called = false; |
| 2916 | boost::asio::async_read(s, buffers, boost::asio::transfer_all(), |
| 2917 | bindns::bind(async_read_handler, |
| 2918 | _1, _2, sizeof(read_data), &called)); |
| 2919 | ioc.restart(); |
| 2920 | ioc.run(); |
| 2921 | BOOST_ASIO_CHECK(called); |
| 2922 | BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); |
| 2923 | |
| 2924 | s.reset(read_data, sizeof(read_data)); |
| 2925 | s.next_read_length(10); |
| 2926 | memset(read_buf, 0, sizeof(read_buf)); |
| 2927 | called = false; |
| 2928 | boost::asio::async_read(s, buffers, boost::asio::transfer_all(), |
| 2929 | bindns::bind(async_read_handler, |
| 2930 | _1, _2, sizeof(read_data), &called)); |
| 2931 | ioc.restart(); |
| 2932 | ioc.run(); |
| 2933 | BOOST_ASIO_CHECK(called); |
| 2934 | BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); |
| 2935 | |
| 2936 | s.reset(read_data, sizeof(read_data)); |
| 2937 | memset(read_buf, 0, sizeof(read_buf)); |
| 2938 | called = false; |
| 2939 | boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1), |
| 2940 | bindns::bind(async_read_handler, |
| 2941 | _1, _2, sizeof(read_data), &called)); |
| 2942 | ioc.restart(); |
| 2943 | ioc.run(); |
| 2944 | BOOST_ASIO_CHECK(called); |
| 2945 | BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); |
| 2946 |
nothing calls this directly
no test coverage detected