Make auto_fragment a boolean option

This commit is contained in:
Vinnie Falco
2016-10-14 14:08:57 -04:00
parent 03642fb585
commit 90cec54524
12 changed files with 313 additions and 167 deletions
+24 -17
View File
@@ -149,7 +149,7 @@ public:
void testOptions()
{
stream<socket_type> ws(ios_);
ws.set_option(auto_fragment_size{2048});
ws.set_option(auto_fragment{true});
ws.set_option(decorate(identity{}));
ws.set_option(keep_alive{false});
ws.set_option(write_buffer_size{2048});
@@ -158,7 +158,7 @@ public:
ws.set_option(read_message_max{1 * 1024 * 1024});
try
{
ws.set_option(write_buffer_size{0});
ws.set_option(write_buffer_size{7});
fail();
}
catch(std::exception const&)
@@ -802,7 +802,7 @@ public:
using boost::asio::buffer;
static std::size_t constexpr limit = 200;
std::size_t n;
for(n = 0; n < limit; ++n)
for(n = 199; n < limit; ++n)
{
stream<test::fail_stream<socket_type>> ws(n, ios_);
auto const restart =
@@ -840,7 +840,7 @@ public:
ws.handshake("localhost", "/");
// send message
ws.set_option(auto_fragment_size(0));
ws.set_option(auto_fragment{false});
ws.set_option(message_type(opcode::text));
ws.write(sbuf("Hello"));
{
@@ -911,16 +911,18 @@ public:
ws.set_option(pong_callback{});
// send auto fragmented message
ws.set_option(auto_fragment_size(3));
ws.write(sbuf("Hello"));
ws.set_option(auto_fragment{true});
ws.set_option(write_buffer_size{8});
ws.write(sbuf("Now is the time for all good men"));
{
// receive echoed message
opcode op;
streambuf db;
ws.read(op, db);
BEAST_EXPECT(to_string(db.data()) == "Hello");
streambuf sb;
ws.read(op, sb);
BEAST_EXPECT(to_string(sb.data()) == "Now is the time for all good men");
}
ws.set_option(auto_fragment_size(0));
ws.set_option(auto_fragment{false});
ws.set_option(write_buffer_size{4096});
// send message with write buffer limit
{
@@ -1077,7 +1079,7 @@ public:
throw system_error{ec};
// send message
ws.set_option(auto_fragment_size(0));
ws.set_option(auto_fragment{false});
ws.set_option(message_type(opcode::text));
ws.async_write(sbuf("Hello"), do_yield[ec]);
if(ec)
@@ -1171,8 +1173,9 @@ public:
}
// send auto fragmented message
ws.set_option(auto_fragment_size(3));
ws.async_write(sbuf("Hello"), do_yield[ec]);
ws.set_option(auto_fragment{true});
ws.set_option(write_buffer_size{8});
ws.async_write(sbuf("Now is the time for all good men"), do_yield[ec]);
{
// receive echoed message
opcode op;
@@ -1180,9 +1183,10 @@ public:
ws.async_read(op, db, do_yield[ec]);
if(ec)
throw system_error{ec};
BEAST_EXPECT(to_string(db.data()) == "Hello");
BEAST_EXPECT(to_string(db.data()) == "Now is the time for all good men");
}
ws.set_option(auto_fragment_size(0));
ws.set_option(auto_fragment{false});
ws.set_option(write_buffer_size{4096});
// send message with mask buffer limit
{
@@ -1379,6 +1383,9 @@ public:
static_assert(! std::is_move_assignable<
stream<socket_type&>>::value, "");
log << "sizeof(websocket::stream) == " <<
sizeof(websocket::stream<boost::asio::ip::tcp::socket&>) << std::endl;
auto const any = endpoint_type{
address_type::from_string("127.0.0.1"), 0};
@@ -1391,13 +1398,13 @@ public:
{
sync_echo_server server(true, any);
auto const ep = server.local_endpoint();
//testInvokable1(ep);
testInvokable2(ep);
testInvokable3(ep);
testInvokable4(ep);
//testInvokable5(ep);
testSyncClient(ep);
testAsyncWriteFrame(ep);
yield_to_mf(ep, &stream_test::testAsyncClient);