diff options
Diffstat (limited to '3rdparty/asio/src/tests/unit/is_read_buffered.cpp')
-rw-r--r-- | 3rdparty/asio/src/tests/unit/is_read_buffered.cpp | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/3rdparty/asio/src/tests/unit/is_read_buffered.cpp b/3rdparty/asio/src/tests/unit/is_read_buffered.cpp new file mode 100644 index 00000000000..151e483a020 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/is_read_buffered.cpp @@ -0,0 +1,129 @@ +// +// is_read_buffered.cpp +// ~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/is_read_buffered.hpp" + +#include "asio/buffered_read_stream.hpp" +#include "asio/buffered_write_stream.hpp" +#include "asio/io_context.hpp" +#include "asio/ip/tcp.hpp" +#include "unit_test.hpp" + +using namespace std; // For memcmp, memcpy and memset. + +class test_stream +{ +public: + typedef asio::io_context io_context_type; + + typedef test_stream lowest_layer_type; + + typedef io_context_type::executor_type executor_type; + + test_stream(asio::io_context& io_context) + : io_context_(io_context) + { + } + + io_context_type& io_context() + { + return io_context_; + } + + lowest_layer_type& lowest_layer() + { + return *this; + } + + template <typename Const_Buffers> + size_t write(const Const_Buffers&) + { + return 0; + } + + template <typename Const_Buffers> + size_t write(const Const_Buffers&, asio::error_code& ec) + { + ec = asio::error_code(); + return 0; + } + + template <typename Const_Buffers, typename Handler> + void async_write(const Const_Buffers&, Handler handler) + { + asio::error_code error; + asio::post(io_context_, + asio::detail::bind_handler(handler, error, 0)); + } + + template <typename Mutable_Buffers> + size_t read(const Mutable_Buffers&) + { + return 0; + } + + template <typename Mutable_Buffers> + size_t read(const Mutable_Buffers&, asio::error_code& ec) + { + ec = asio::error_code(); + return 0; + } + + template <typename Mutable_Buffers, typename Handler> + void async_read(const Mutable_Buffers&, Handler handler) + { + asio::error_code error; + asio::post(io_context_, + asio::detail::bind_handler(handler, error, 0)); + } + +private: + io_context_type& io_context_; +}; + +void is_read_buffered_test() +{ + ASIO_CHECK(!asio::is_read_buffered< + asio::ip::tcp::socket>::value); + + ASIO_CHECK(!!asio::is_read_buffered< + asio::buffered_read_stream< + asio::ip::tcp::socket> >::value); + + ASIO_CHECK(!asio::is_read_buffered< + asio::buffered_write_stream< + asio::ip::tcp::socket> >::value); + + ASIO_CHECK(!!asio::is_read_buffered< + asio::buffered_stream<asio::ip::tcp::socket> >::value); + + ASIO_CHECK(!asio::is_read_buffered<test_stream>::value); + + ASIO_CHECK(!!asio::is_read_buffered< + asio::buffered_read_stream<test_stream> >::value); + + ASIO_CHECK(!asio::is_read_buffered< + asio::buffered_write_stream<test_stream> >::value); + + ASIO_CHECK(!!asio::is_read_buffered< + asio::buffered_stream<test_stream> >::value); +} + +ASIO_TEST_SUITE +( + "is_read_buffered", + ASIO_TEST_CASE(is_read_buffered_test) +) |