Add idle ping suspend test

close #1599
This commit is contained in:
Vinnie Falco
2019-05-04 08:23:40 -07:00
parent 18befa5f8c
commit 6be11913a0
2 changed files with 49 additions and 0 deletions

View File

@ -1,3 +1,9 @@
Version 255:
* Add idle ping suspend test
--------------------------------------------------------------------------------
Version 254:
* Fix data race in test::stream::connect

View File

@ -10,8 +10,11 @@
// Test that header file is self-contained.
#include <boost/beast/websocket/stream.hpp>
#include <boost/beast/_experimental/test/tcp.hpp>
#include "test.hpp"
#include <boost/asio/ip/tcp.hpp>
#include <boost/asio/io_context.hpp>
#include <boost/asio/strand.hpp>
@ -366,6 +369,46 @@ public:
BEAST_EXPECT(count == 3);
});
// suspend idle ping
{
using socket_type =
net::basic_stream_socket<
net::ip::tcp,
net::executor>;
net::io_context ioc;
stream<socket_type> ws1(ioc);
stream<socket_type> ws2(ioc);
ws1.set_option(stream_base::timeout{
stream_base::none(),
std::chrono::seconds(0),
true});
test::connect(
ws1.next_layer(),
ws2.next_layer());
ws1.async_handshake("localhost", "/",
[](error_code){});
ws2.async_accept([](error_code){});
ioc.run();
ioc.restart();
flat_buffer b1;
auto mb = b1.prepare(65536);
std::memset(mb.data(), 0, mb.size());
b1.commit(65536);
ws1.async_write(b1.data(),
[&](error_code, std::size_t){});
BEAST_EXPECT(
ws1.impl_->wr_block.is_locked());
ws1.async_read_some(net::mutable_buffer{},
[&](error_code, std::size_t){});
ioc.run();
ioc.restart();
flat_buffer b2;
ws2.async_read(b2,
[&](error_code, std::size_t){});
ioc.run();
}
//);
{
echo_server es{log, kind::async};
net::io_context ioc;