| 2162 | } |
| 2163 | |
| 2164 | void test_4_arg_streambuf_read() |
| 2165 | { |
| 2166 | #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1) |
| 2167 | boost::asio::io_context ioc; |
| 2168 | test_stream s(ioc); |
| 2169 | boost::asio::streambuf sb(sizeof(read_data)); |
| 2170 | |
| 2171 | s.reset(read_data, sizeof(read_data)); |
| 2172 | sb.consume(sb.size()); |
| 2173 | boost::system::error_code error; |
| 2174 | size_t bytes_transferred = boost::asio::read(s, sb, |
| 2175 | boost::asio::transfer_all(), error); |
| 2176 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 2177 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 2178 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data))); |
| 2179 | BOOST_ASIO_CHECK(!error); |
| 2180 | |
| 2181 | s.reset(read_data, sizeof(read_data)); |
| 2182 | s.next_read_length(1); |
| 2183 | sb.consume(sb.size()); |
| 2184 | error = boost::system::error_code(); |
| 2185 | bytes_transferred = boost::asio::read(s, sb, |
| 2186 | boost::asio::transfer_all(), error); |
| 2187 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 2188 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 2189 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data))); |
| 2190 | BOOST_ASIO_CHECK(!error); |
| 2191 | |
| 2192 | s.reset(read_data, sizeof(read_data)); |
| 2193 | s.next_read_length(10); |
| 2194 | sb.consume(sb.size()); |
| 2195 | error = boost::system::error_code(); |
| 2196 | bytes_transferred = boost::asio::read(s, sb, |
| 2197 | boost::asio::transfer_all(), error); |
| 2198 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 2199 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 2200 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data))); |
| 2201 | BOOST_ASIO_CHECK(!error); |
| 2202 | |
| 2203 | s.reset(read_data, sizeof(read_data)); |
| 2204 | sb.consume(sb.size()); |
| 2205 | error = boost::system::error_code(); |
| 2206 | bytes_transferred = boost::asio::read(s, sb, |
| 2207 | boost::asio::transfer_at_least(1), error); |
| 2208 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 2209 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 2210 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data))); |
| 2211 | BOOST_ASIO_CHECK(!error); |
| 2212 | |
| 2213 | s.reset(read_data, sizeof(read_data)); |
| 2214 | s.next_read_length(1); |
| 2215 | sb.consume(sb.size()); |
| 2216 | error = boost::system::error_code(); |
| 2217 | bytes_transferred = boost::asio::read(s, sb, |
| 2218 | boost::asio::transfer_at_least(1), error); |
| 2219 | BOOST_ASIO_CHECK(bytes_transferred == 1); |
| 2220 | BOOST_ASIO_CHECK(sb.size() == 1); |
| 2221 | BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1)); |
nothing calls this directly
no test coverage detected