read_until.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 849 行 · 第 1/2 页

CPP
849
字号
        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 26);  s.reset(read_data, sizeof(read_data));  s.next_read_length(1);  ec = boost::system::error_code();  length = 0;  called = false;  sb1.consume(sb1.size());  boost::asio::async_read_until(s, sb1, 'Z',      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 26);  s.reset(read_data, sizeof(read_data));  s.next_read_length(10);  ec = boost::system::error_code();  length = 0;  called = false;  sb1.consume(sb1.size());  boost::asio::async_read_until(s, sb1, 'Z',      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 26);  s.reset(read_data, sizeof(read_data));  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, 'Z',      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(ec == boost::asio::error::not_found);  BOOST_CHECK(length == 0);  s.reset(read_data, sizeof(read_data));  s.next_read_length(1);  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, 'Z',      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(ec == boost::asio::error::not_found);  BOOST_CHECK(length == 0);  s.reset(read_data, sizeof(read_data));  s.next_read_length(10);  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, 'Z',      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(ec == boost::asio::error::not_found);  BOOST_CHECK(length == 0);  s.reset(read_data, sizeof(read_data));  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, 'Y',      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 25);  s.reset(read_data, sizeof(read_data));  s.next_read_length(1);  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, 'Y',      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 25);  s.reset(read_data, sizeof(read_data));  s.next_read_length(10);  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, 'Y',      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 25);}void test_string_async_read_until(){  boost::asio::io_service ios;  test_stream s(ios);  boost::asio::streambuf sb1;  boost::asio::streambuf sb2(25);  boost::system::error_code ec;  std::size_t length;  bool called;  s.reset(read_data, sizeof(read_data));  ec = boost::system::error_code();  length = 0;  called = false;  sb1.consume(sb1.size());  boost::asio::async_read_until(s, sb1, "XYZ",      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 26);  s.reset(read_data, sizeof(read_data));  s.next_read_length(1);  ec = boost::system::error_code();  length = 0;  called = false;  sb1.consume(sb1.size());  boost::asio::async_read_until(s, sb1, "XYZ",      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 26);  s.reset(read_data, sizeof(read_data));  s.next_read_length(10);  ec = boost::system::error_code();  length = 0;  called = false;  sb1.consume(sb1.size());  boost::asio::async_read_until(s, sb1, "XYZ",      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 26);  s.reset(read_data, sizeof(read_data));  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, "XYZ",      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(ec == boost::asio::error::not_found);  BOOST_CHECK(length == 0);  s.reset(read_data, sizeof(read_data));  s.next_read_length(1);  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, "XYZ",      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(ec == boost::asio::error::not_found);  BOOST_CHECK(length == 0);  s.reset(read_data, sizeof(read_data));  s.next_read_length(10);  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, "XYZ",      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(ec == boost::asio::error::not_found);  BOOST_CHECK(length == 0);  s.reset(read_data, sizeof(read_data));  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, "WXY",      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 25);  s.reset(read_data, sizeof(read_data));  s.next_read_length(1);  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, "WXY",      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 25);  s.reset(read_data, sizeof(read_data));  s.next_read_length(10);  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, "WXY",      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 25);}void test_match_condition_async_read_until(){  boost::asio::io_service ios;  test_stream s(ios);  boost::asio::streambuf sb1;  boost::asio::streambuf sb2(25);  boost::system::error_code ec;  std::size_t length;  bool called;  s.reset(read_data, sizeof(read_data));  ec = boost::system::error_code();  length = 0;  called = false;  sb1.consume(sb1.size());  boost::asio::async_read_until(s, sb1, match_char('Z'),      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 26);  s.reset(read_data, sizeof(read_data));  s.next_read_length(1);  ec = boost::system::error_code();  length = 0;  called = false;  sb1.consume(sb1.size());  boost::asio::async_read_until(s, sb1, match_char('Z'),      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 26);  s.reset(read_data, sizeof(read_data));  s.next_read_length(10);  ec = boost::system::error_code();  length = 0;  called = false;  sb1.consume(sb1.size());  boost::asio::async_read_until(s, sb1, match_char('Z'),      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 26);  s.reset(read_data, sizeof(read_data));  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, match_char('Z'),      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(ec == boost::asio::error::not_found);  BOOST_CHECK(length == 0);  s.reset(read_data, sizeof(read_data));  s.next_read_length(1);  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, match_char('Z'),      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(ec == boost::asio::error::not_found);  BOOST_CHECK(length == 0);  s.reset(read_data, sizeof(read_data));  s.next_read_length(10);  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, match_char('Z'),      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(ec == boost::asio::error::not_found);  BOOST_CHECK(length == 0);  s.reset(read_data, sizeof(read_data));  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, match_char('Y'),      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 25);  s.reset(read_data, sizeof(read_data));  s.next_read_length(1);  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, match_char('Y'),      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 25);  s.reset(read_data, sizeof(read_data));  s.next_read_length(10);  ec = boost::system::error_code();  length = 0;  called = false;  sb2.consume(sb2.size());  boost::asio::async_read_until(s, sb2, match_char('Y'),      boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,        boost::asio::placeholders::bytes_transferred, &length, &called));  ios.reset();  ios.run();  BOOST_CHECK(called);  BOOST_CHECK(!ec);  BOOST_CHECK(length == 25);}test_suite* init_unit_test_suite(int, char*[]){  test_suite* test = BOOST_TEST_SUITE("read_until");  test->add(BOOST_TEST_CASE(&test_char_read_until));  test->add(BOOST_TEST_CASE(&test_string_read_until));  test->add(BOOST_TEST_CASE(&test_match_condition_read_until));  test->add(BOOST_TEST_CASE(&test_char_async_read_until));  test->add(BOOST_TEST_CASE(&test_string_async_read_until));  test->add(BOOST_TEST_CASE(&test_match_condition_async_read_until));  return test;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?