📄 read.cpp
字号:
BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read(s, buffers, boost::asio::transfer_at_least(42), error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read(s, buffers, boost::asio::transfer_at_least(42), error); BOOST_CHECK(bytes_transferred == 42); BOOST_CHECK(s.check(buffers, 42)); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read(s, buffers, boost::asio::transfer_at_least(42), error); BOOST_CHECK(bytes_transferred == 50); BOOST_CHECK(s.check(buffers, 50)); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); bytes_transferred = boost::asio::read(s, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read(s, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read(s, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); bytes_transferred = boost::asio::read(s, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read(s, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read(s, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(buffers, sizeof(read_data))); BOOST_CHECK(!error);}void async_read_handler(const boost::system::error_code& e, size_t bytes_transferred, size_t expected_bytes_transferred, bool* called){ *called = true; BOOST_CHECK(!e); BOOST_CHECK(bytes_transferred == expected_bytes_transferred);}void test_3_arg_async_read(){ boost::asio::io_service ios; test_stream s(ios); char read_buf[sizeof(read_data)]; boost::asio::mutable_buffers_1 buffers = boost::asio::buffer(read_buf, sizeof(read_buf)); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); bool called = false; boost::asio::async_read(s, buffers, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data)));}void test_4_arg_async_read(){ boost::asio::io_service ios; test_stream s(ios); char read_buf[sizeof(read_data)]; boost::asio::mutable_buffers_1 buffers = boost::asio::buffer(read_buf, sizeof(read_buf)); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); bool called = false; boost::asio::async_read(s, buffers, boost::asio::transfer_all(), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::asio::transfer_all(), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::asio::transfer_all(), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, 1, &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, 1)); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, 10, &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, 10)); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, 10, &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, 10)); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, 10, &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, 10)); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, 42, &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, 42)); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, 50, &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, 50)); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, old_style_transfer_all, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, old_style_transfer_all, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, old_style_transfer_all, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, short_transfer, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, short_transfer, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read(s, buffers, short_transfer, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(read_data)));}test_suite* init_unit_test_suite(int, char*[]){ test_suite* test = BOOST_TEST_SUITE("read"); test->add(BOOST_TEST_CASE(&test_2_arg_read)); test->add(BOOST_TEST_CASE(&test_3_arg_read)); test->add(BOOST_TEST_CASE(&test_4_arg_read)); test->add(BOOST_TEST_CASE(&test_3_arg_async_read)); test->add(BOOST_TEST_CASE(&test_4_arg_async_read)); return test;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -