| 189 | } |
| 190 | |
| 191 | void test_streambuf_read_until_char() |
| 192 | { |
| 193 | #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1) |
| 194 | boost::asio::io_context ioc; |
| 195 | test_stream s(ioc); |
| 196 | boost::asio::streambuf sb1; |
| 197 | boost::asio::streambuf sb2(25); |
| 198 | boost::system::error_code ec; |
| 199 | |
| 200 | s.reset(read_data, sizeof(read_data)); |
| 201 | sb1.consume(sb1.size()); |
| 202 | std::size_t length = boost::asio::read_until(s, sb1, 'Z'); |
| 203 | BOOST_ASIO_CHECK(length == 26); |
| 204 | |
| 205 | s.reset(read_data, sizeof(read_data)); |
| 206 | s.next_read_length(1); |
| 207 | sb1.consume(sb1.size()); |
| 208 | length = boost::asio::read_until(s, sb1, 'Z'); |
| 209 | BOOST_ASIO_CHECK(length == 26); |
| 210 | |
| 211 | s.reset(read_data, sizeof(read_data)); |
| 212 | s.next_read_length(10); |
| 213 | sb1.consume(sb1.size()); |
| 214 | length = boost::asio::read_until(s, sb1, 'Z'); |
| 215 | BOOST_ASIO_CHECK(length == 26); |
| 216 | |
| 217 | s.reset(read_data, sizeof(read_data)); |
| 218 | sb1.consume(sb1.size()); |
| 219 | length = boost::asio::read_until(s, sb1, 'Z', ec); |
| 220 | BOOST_ASIO_CHECK(!ec); |
| 221 | BOOST_ASIO_CHECK(length == 26); |
| 222 | |
| 223 | s.reset(read_data, sizeof(read_data)); |
| 224 | s.next_read_length(1); |
| 225 | sb1.consume(sb1.size()); |
| 226 | length = boost::asio::read_until(s, sb1, 'Z', ec); |
| 227 | BOOST_ASIO_CHECK(!ec); |
| 228 | BOOST_ASIO_CHECK(length == 26); |
| 229 | |
| 230 | s.reset(read_data, sizeof(read_data)); |
| 231 | s.next_read_length(10); |
| 232 | sb1.consume(sb1.size()); |
| 233 | length = boost::asio::read_until(s, sb1, 'Z', ec); |
| 234 | BOOST_ASIO_CHECK(!ec); |
| 235 | BOOST_ASIO_CHECK(length == 26); |
| 236 | |
| 237 | s.reset(read_data, sizeof(read_data)); |
| 238 | sb2.consume(sb2.size()); |
| 239 | length = boost::asio::read_until(s, sb2, 'Z', ec); |
| 240 | BOOST_ASIO_CHECK(ec == boost::asio::error::not_found); |
| 241 | BOOST_ASIO_CHECK(length == 0); |
| 242 | |
| 243 | s.reset(read_data, sizeof(read_data)); |
| 244 | s.next_read_length(1); |
| 245 | sb2.consume(sb2.size()); |
| 246 | length = boost::asio::read_until(s, sb2, 'Z', ec); |
| 247 | BOOST_ASIO_CHECK(ec == boost::asio::error::not_found); |
| 248 | BOOST_ASIO_CHECK(length == 0); |
nothing calls this directly
no test coverage detected