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

Function test_dynamic_string_read_until_string

test/read_until.cpp:279–366  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

277}
278
279void test_dynamic_string_read_until_string()
280{
281 boost::asio::io_context ioc;
282 test_stream s(ioc);
283 std::string data1, data2;
284 boost::asio::dynamic_string_buffer<char, std::string::traits_type,
285 std::string::allocator_type> sb1 = boost::asio::dynamic_buffer(data1);
286 boost::asio::dynamic_string_buffer<char, std::string::traits_type,
287 std::string::allocator_type> sb2 = boost::asio::dynamic_buffer(data2, 25);
288 boost::system::error_code ec;
289
290 s.reset(read_data, sizeof(read_data));
291 sb1.consume(sb1.size());
292 std::size_t length = boost::asio::read_until(s, sb1, "XYZ");
293 BOOST_ASIO_CHECK(length == 26);
294
295 s.reset(read_data, sizeof(read_data));
296 s.next_read_length(1);
297 sb1.consume(sb1.size());
298 length = boost::asio::read_until(s, sb1, "XYZ");
299 BOOST_ASIO_CHECK(length == 26);
300
301 s.reset(read_data, sizeof(read_data));
302 s.next_read_length(10);
303 sb1.consume(sb1.size());
304 length = boost::asio::read_until(s, sb1, "XYZ");
305 BOOST_ASIO_CHECK(length == 26);
306
307 s.reset(read_data, sizeof(read_data));
308 sb1.consume(sb1.size());
309 length = boost::asio::read_until(s, sb1, "XYZ", ec);
310 BOOST_ASIO_CHECK(!ec);
311 BOOST_ASIO_CHECK(length == 26);
312
313 s.reset(read_data, sizeof(read_data));
314 s.next_read_length(1);
315 sb1.consume(sb1.size());
316 length = boost::asio::read_until(s, sb1, "XYZ", ec);
317 BOOST_ASIO_CHECK(!ec);
318 BOOST_ASIO_CHECK(length == 26);
319
320 s.reset(read_data, sizeof(read_data));
321 s.next_read_length(10);
322 sb1.consume(sb1.size());
323 length = boost::asio::read_until(s, sb1, "XYZ", ec);
324 BOOST_ASIO_CHECK(!ec);
325 BOOST_ASIO_CHECK(length == 26);
326
327 s.reset(read_data, sizeof(read_data));
328 sb2.consume(sb2.size());
329 length = boost::asio::read_until(s, sb2, "XYZ", ec);
330 BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
331 BOOST_ASIO_CHECK(length == 0);
332
333 s.reset(read_data, sizeof(read_data));
334 s.next_read_length(1);
335 sb2.consume(sb2.size());
336 length = boost::asio::read_until(s, sb2, "XYZ", ec);

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