📄 write.cpp
字号:
BOOST_CHECK(!error); s.reset(); error = boost::system::error_code(); bytes_transferred = boost::asio::write(s, buffers, boost::asio::transfer_at_least(42), error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write(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(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write(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(); bytes_transferred = boost::asio::write(s, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write(s, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write(s, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); bytes_transferred = boost::asio::write(s, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write(s, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write(s, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(buffers, sizeof(write_data))); BOOST_CHECK(!error);}void async_write_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_write(){ boost::asio::io_service ios; test_stream s(ios); boost::asio::const_buffers_1 buffers = boost::asio::buffer(write_data, sizeof(write_data)); s.reset(); bool called = false; boost::asio::async_write(s, buffers, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); s.next_write_length(1); called = false; boost::asio::async_write(s, buffers, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); s.next_write_length(10); called = false; boost::asio::async_write(s, buffers, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data)));}void test_4_arg_async_write(){ boost::asio::io_service ios; test_stream s(ios); boost::asio::const_buffers_1 buffers = boost::asio::buffer(write_data, sizeof(write_data)); s.reset(); bool called = false; boost::asio::async_write(s, buffers, boost::asio::transfer_all(), boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); s.next_write_length(1); called = false; boost::asio::async_write(s, buffers, boost::asio::transfer_all(), boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); s.next_write_length(10); called = false; boost::asio::async_write(s, buffers, boost::asio::transfer_all(), boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); called = false; boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1), boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); s.next_write_length(1); called = false; boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1), boost::bind(async_write_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(); s.next_write_length(10); called = false; boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1), boost::bind(async_write_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(); called = false; boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10), boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); s.next_write_length(1); called = false; boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10), boost::bind(async_write_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(); s.next_write_length(10); called = false; boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10), boost::bind(async_write_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(); called = false; boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42), boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); s.next_write_length(1); called = false; boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42), boost::bind(async_write_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(); s.next_write_length(10); called = false; boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42), boost::bind(async_write_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(); called = false; boost::asio::async_write(s, buffers, old_style_transfer_all, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); s.next_write_length(1); called = false; boost::asio::async_write(s, buffers, old_style_transfer_all, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); s.next_write_length(10); called = false; boost::asio::async_write(s, buffers, old_style_transfer_all, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); called = false; boost::asio::async_write(s, buffers, short_transfer, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); s.next_write_length(1); called = false; boost::asio::async_write(s, buffers, short_transfer, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data))); s.reset(); s.next_write_length(10); called = false; boost::asio::async_write(s, buffers, short_transfer, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(buffers, sizeof(write_data)));}test_suite* init_unit_test_suite(int, char*[]){ test_suite* test = BOOST_TEST_SUITE("write"); test->add(BOOST_TEST_CASE(&test_2_arg_write)); test->add(BOOST_TEST_CASE(&test_3_arg_write)); test->add(BOOST_TEST_CASE(&test_4_arg_write)); test->add(BOOST_TEST_CASE(&test_3_arg_async_write)); test->add(BOOST_TEST_CASE(&test_4_arg_async_write)); return test;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -