| 2462 | } |
| 2463 | |
| 2464 | void test_3_arg_mutable_buffer_async_read() |
| 2465 | { |
| 2466 | namespace bindns = std; |
| 2467 | using bindns::placeholders::_1; |
| 2468 | using bindns::placeholders::_2; |
| 2469 | |
| 2470 | boost::asio::io_context ioc; |
| 2471 | test_stream s(ioc); |
| 2472 | char read_buf[sizeof(read_data)]; |
| 2473 | boost::asio::mutable_buffer buffers |
| 2474 | = boost::asio::buffer(read_buf, sizeof(read_buf)); |
| 2475 | |
| 2476 | s.reset(read_data, sizeof(read_data)); |
| 2477 | memset(read_buf, 0, sizeof(read_buf)); |
| 2478 | bool called = false; |
| 2479 | boost::asio::async_read(s, buffers, |
| 2480 | bindns::bind(async_read_handler, |
| 2481 | _1, _2, sizeof(read_data), &called)); |
| 2482 | ioc.restart(); |
| 2483 | ioc.run(); |
| 2484 | BOOST_ASIO_CHECK(called); |
| 2485 | BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); |
| 2486 | |
| 2487 | s.reset(read_data, sizeof(read_data)); |
| 2488 | s.next_read_length(1); |
| 2489 | memset(read_buf, 0, sizeof(read_buf)); |
| 2490 | called = false; |
| 2491 | boost::asio::async_read(s, buffers, |
| 2492 | bindns::bind(async_read_handler, |
| 2493 | _1, _2, sizeof(read_data), &called)); |
| 2494 | ioc.restart(); |
| 2495 | ioc.run(); |
| 2496 | BOOST_ASIO_CHECK(called); |
| 2497 | BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); |
| 2498 | |
| 2499 | s.reset(read_data, sizeof(read_data)); |
| 2500 | s.next_read_length(10); |
| 2501 | memset(read_buf, 0, sizeof(read_buf)); |
| 2502 | called = false; |
| 2503 | boost::asio::async_read(s, buffers, |
| 2504 | bindns::bind(async_read_handler, |
| 2505 | _1, _2, sizeof(read_data), &called)); |
| 2506 | ioc.restart(); |
| 2507 | ioc.run(); |
| 2508 | BOOST_ASIO_CHECK(called); |
| 2509 | BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); |
| 2510 | |
| 2511 | s.reset(read_data, sizeof(read_data)); |
| 2512 | memset(read_buf, 0, sizeof(read_buf)); |
| 2513 | int i = boost::asio::async_read(s, buffers, archetypes::lazy_handler()); |
| 2514 | BOOST_ASIO_CHECK(i == 42); |
| 2515 | ioc.restart(); |
| 2516 | ioc.run(); |
| 2517 | BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); |
| 2518 | |
| 2519 | s.reset(read_data, sizeof(read_data)); |
| 2520 | s.next_read_length(10); |
| 2521 | memset(read_buf, 0, sizeof(read_buf)); |
nothing calls this directly
no test coverage detected