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

Function test_3_arg_vector_buffers_async_read

test/read.cpp:2672–2740  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2670}
2671
2672void 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));

Callers

nothing calls this directly

Calls 9

bufferFunction · 0.85
async_readFunction · 0.85
lazy_handlerClass · 0.85
restartMethod · 0.80
bindFunction · 0.50
resetMethod · 0.45
runMethod · 0.45
check_buffersMethod · 0.45
next_read_lengthMethod · 0.45

Tested by

no test coverage detected