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

Function test_streambuf_read_until_char

test/read_until.cpp:191–277  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

189}
190
191void 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);

Callers

nothing calls this directly

Calls 5

read_untilFunction · 0.85
resetMethod · 0.45
consumeMethod · 0.45
sizeMethod · 0.45
next_read_lengthMethod · 0.45

Tested by

no test coverage detected