| 1100 | } |
| 1101 | |
| 1102 | void test_3_arg_streambuf_read() |
| 1103 | { |
| 1104 | #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1) |
| 1105 | boost::asio::io_context ioc; |
| 1106 | test_stream s(ioc); |
| 1107 | boost::asio::streambuf sb(sizeof(read_data)); |
| 1108 | |
| 1109 | s.reset(read_data, sizeof(read_data)); |
| 1110 | sb.consume(sb.size()); |
| 1111 | size_t bytes_transferred = boost::asio::read(s, sb, |
| 1112 | boost::asio::transfer_all()); |
| 1113 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 1114 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 1115 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data))); |
| 1116 | |
| 1117 | s.reset(read_data, sizeof(read_data)); |
| 1118 | s.next_read_length(1); |
| 1119 | sb.consume(sb.size()); |
| 1120 | bytes_transferred = boost::asio::read(s, sb, |
| 1121 | boost::asio::transfer_all()); |
| 1122 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 1123 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 1124 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data))); |
| 1125 | |
| 1126 | s.reset(read_data, sizeof(read_data)); |
| 1127 | s.next_read_length(10); |
| 1128 | sb.consume(sb.size()); |
| 1129 | bytes_transferred = boost::asio::read(s, sb, |
| 1130 | boost::asio::transfer_all()); |
| 1131 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 1132 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 1133 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data))); |
| 1134 | |
| 1135 | s.reset(read_data, sizeof(read_data)); |
| 1136 | sb.consume(sb.size()); |
| 1137 | bytes_transferred = boost::asio::read(s, sb, |
| 1138 | boost::asio::transfer_at_least(1)); |
| 1139 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 1140 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 1141 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data))); |
| 1142 | |
| 1143 | s.reset(read_data, sizeof(read_data)); |
| 1144 | s.next_read_length(1); |
| 1145 | sb.consume(sb.size()); |
| 1146 | bytes_transferred = boost::asio::read(s, sb, |
| 1147 | boost::asio::transfer_at_least(1)); |
| 1148 | BOOST_ASIO_CHECK(bytes_transferred == 1); |
| 1149 | BOOST_ASIO_CHECK(sb.size() == 1); |
| 1150 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1)); |
| 1151 | |
| 1152 | s.reset(read_data, sizeof(read_data)); |
| 1153 | s.next_read_length(10); |
| 1154 | sb.consume(sb.size()); |
| 1155 | bytes_transferred = boost::asio::read(s, sb, |
| 1156 | boost::asio::transfer_at_least(1)); |
| 1157 | BOOST_ASIO_CHECK(bytes_transferred == 10); |
| 1158 | BOOST_ASIO_CHECK(sb.size() == 10); |
| 1159 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10)); |
nothing calls this directly
no test coverage detected