]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/beast/test/beast/http/serializer.cpp
2 // Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 // Official repository: https://github.com/boostorg/beast
10 // Test that header file is self-contained.
11 #include <boost/beast/http/serializer.hpp>
13 #include <boost/beast/http/string_body.hpp>
14 #include <boost/beast/unit_test/suite.hpp>
20 class serializer_test
: public beast::unit_test::suite
29 using const_buffers_type
=
30 boost::asio::const_buffer
;
32 template<bool isRequest
, class Fields
>
33 writer(message
<isRequest
, const_body
, Fields
> const&);
38 boost::optional
<std::pair
<const_buffers_type
, bool>>
49 using const_buffers_type
=
50 boost::asio::const_buffer
;
52 template<bool isRequest
, class Fields
>
53 writer(message
<isRequest
, mutable_body
, Fields
>&);
58 boost::optional
<std::pair
<const_buffers_type
, bool>>
63 BOOST_STATIC_ASSERT(std::is_const
< serializer
<
64 true, const_body
>::value_type
>::value
);
66 BOOST_STATIC_ASSERT(! std::is_const
<serializer
<
67 true, mutable_body
>::value_type
>::value
);
69 BOOST_STATIC_ASSERT(std::is_constructible
<
70 serializer
<true, const_body
>,
71 message
<true, const_body
>&>::value
);
73 BOOST_STATIC_ASSERT(std::is_constructible
<
74 serializer
<true, const_body
>,
75 message
<true, const_body
> const&>::value
);
77 BOOST_STATIC_ASSERT(std::is_constructible
<
78 serializer
<true, mutable_body
>,
79 message
<true, mutable_body
>&>::value
);
81 BOOST_STATIC_ASSERT(! std::is_constructible
<
82 serializer
<true, mutable_body
>,
83 message
<true, mutable_body
> const&>::value
);
89 template<class ConstBufferSequence
>
91 operator()(error_code
&,
92 ConstBufferSequence
const& buffers
)
94 size
= boost::asio::buffer_size(buffers
);
101 auto const limit
= 30;
104 response
<string_body
> res
;
105 res
.body().append(1000, '*');
106 serializer
<false, string_body
> sr
{res
};
111 BEAST_EXPECT(visit
.size
<= limit
);
112 sr
.consume(visit
.size
);
125 BEAST_DEFINE_TESTSUITE(beast
,http
,serializer
);