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

Function test_3_arg_streambuf_async_read

test/read.cpp:2816–2887  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2814}
2815
2816void test_3_arg_streambuf_async_read()
2817{
2818#if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
2819 namespace bindns = std;
2820 using bindns::placeholders::_1;
2821 using bindns::placeholders::_2;
2822
2823 boost::asio::io_context ioc;
2824 test_stream s(ioc);
2825 boost::asio::streambuf sb(sizeof(read_data));
2826
2827 s.reset(read_data, sizeof(read_data));
2828 sb.consume(sb.size());
2829 bool called = false;
2830 boost::asio::async_read(s, sb,
2831 bindns::bind(async_read_handler,
2832 _1, _2, sizeof(read_data), &called));
2833 ioc.restart();
2834 ioc.run();
2835 BOOST_ASIO_CHECK(called);
2836 BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
2837 BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
2838
2839 s.reset(read_data, sizeof(read_data));
2840 s.next_read_length(1);
2841 sb.consume(sb.size());
2842 called = false;
2843 boost::asio::async_read(s, sb,
2844 bindns::bind(async_read_handler,
2845 _1, _2, sizeof(read_data), &called));
2846 ioc.restart();
2847 ioc.run();
2848 BOOST_ASIO_CHECK(called);
2849 BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
2850 BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
2851
2852 s.reset(read_data, sizeof(read_data));
2853 s.next_read_length(10);
2854 sb.consume(sb.size());
2855 called = false;
2856 boost::asio::async_read(s, sb,
2857 bindns::bind(async_read_handler,
2858 _1, _2, sizeof(read_data), &called));
2859 ioc.restart();
2860 ioc.run();
2861 BOOST_ASIO_CHECK(called);
2862 BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
2863 BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
2864
2865 s.reset(read_data, sizeof(read_data));
2866 sb.consume(sb.size());
2867 int i = boost::asio::async_read(s, sb, archetypes::lazy_handler());
2868 BOOST_ASIO_CHECK(i == 42);
2869 ioc.restart();
2870 ioc.run();
2871 BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
2872 BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
2873

Callers

nothing calls this directly

Calls 11

async_readFunction · 0.85
lazy_handlerClass · 0.85
restartMethod · 0.80
bindFunction · 0.50
resetMethod · 0.45
consumeMethod · 0.45
sizeMethod · 0.45
runMethod · 0.45
check_buffersMethod · 0.45
dataMethod · 0.45
next_read_lengthMethod · 0.45

Tested by

no test coverage detected