]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/asio/test/buffer.cpp
5 // Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
7 // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
11 // Disable autolinking for unit tests.
12 #if !defined(BOOST_ALL_NO_LIB)
13 #define BOOST_ALL_NO_LIB 1
14 #endif // !defined(BOOST_ALL_NO_LIB)
16 // Test that header file is self-contained.
17 #include <boost/asio/buffer.hpp>
19 #include "unit_test.hpp"
21 #if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
22 # include <boost/array.hpp>
23 #endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
25 #if defined(BOOST_ASIO_HAS_STD_ARRAY)
27 #endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
29 //------------------------------------------------------------------------------
31 // buffer_compile test
32 // ~~~~~~~~~~~~~~~~~~~
33 // The following test checks that all overloads of the buffer function compile
34 // and link correctly. Runtime failures are ignored.
36 namespace buffer_compile
{
38 using namespace boost::asio
;
45 const char const_raw_data
[1024] = "";
46 void* void_ptr_data
= raw_data
;
47 const void* const_void_ptr_data
= const_raw_data
;
48 #if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
49 boost::array
<char, 1024> array_data
;
50 const boost::array
<char, 1024>& const_array_data_1
= array_data
;
51 boost::array
<const char, 1024> const_array_data_2
= { { 0 } };
52 #endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
53 #if defined(BOOST_ASIO_HAS_STD_ARRAY)
54 std::array
<char, 1024> std_array_data
;
55 const std::array
<char, 1024>& const_std_array_data_1
= std_array_data
;
56 std::array
<const char, 1024> const_std_array_data_2
= { { 0 } };
57 #endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
58 std::vector
<char> vector_data(1024);
59 const std::vector
<char>& const_vector_data
= vector_data
;
60 const std::string
string_data(1024, ' ');
61 std::vector
<mutable_buffer
> mutable_buffer_sequence
;
62 std::vector
<const_buffer
> const_buffer_sequence
;
64 // mutable_buffer constructors.
67 mutable_buffer
mb2(void_ptr_data
, 1024);
68 mutable_buffer
mb3(mb1
);
70 // mutable_buffer operators.
75 // mutable_buffers_1 constructors.
77 mutable_buffers_1
mbc1(mb1
);
78 mutable_buffers_1
mbc2(mbc1
);
80 // mutable_buffers_1 functions.
82 mutable_buffers_1::const_iterator iter1
= mbc1
.begin();
84 mutable_buffers_1::const_iterator iter2
= mbc1
.end();
87 // const_buffer constructors.
90 const_buffer
cb2(const_void_ptr_data
, 1024);
91 const_buffer
cb3(cb1
);
92 const_buffer
cb4(mb1
);
94 // const_buffer operators.
99 // const_buffers_1 constructors.
101 const_buffers_1
cbc1(cb1
);
102 const_buffers_1
cbc2(cbc1
);
104 // const_buffers_1 functions.
106 const_buffers_1::const_iterator iter3
= cbc1
.begin();
108 const_buffers_1::const_iterator iter4
= cbc1
.end();
111 // buffer_size function overloads.
113 std::size_t size1
= buffer_size(mb1
);
115 std::size_t size2
= buffer_size(cb1
);
117 std::size_t size3
= buffer_size(mbc1
);
119 std::size_t size4
= buffer_size(cbc1
);
121 std::size_t size5
= buffer_size(mutable_buffer_sequence
);
123 std::size_t size6
= buffer_size(const_buffer_sequence
);
126 // buffer_cast function overloads.
128 void* ptr1
= buffer_cast
<void*>(mb1
);
130 const void* ptr2
= buffer_cast
<const void*>(cb1
);
133 // buffer function overloads.
136 mb1
= buffer(mb2
, 128);
138 cb1
= buffer(cb2
, 128);
139 mb1
= buffer(void_ptr_data
, 1024);
140 cb1
= buffer(const_void_ptr_data
, 1024);
141 mb1
= buffer(raw_data
);
142 mb1
= buffer(raw_data
, 1024);
143 cb1
= buffer(const_raw_data
);
144 cb1
= buffer(const_raw_data
, 1024);
145 #if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
146 mb1
= buffer(array_data
);
147 mb1
= buffer(array_data
, 1024);
148 cb1
= buffer(const_array_data_1
);
149 cb1
= buffer(const_array_data_1
, 1024);
150 cb1
= buffer(const_array_data_2
);
151 cb1
= buffer(const_array_data_2
, 1024);
152 #endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
153 #if defined(BOOST_ASIO_HAS_STD_ARRAY)
154 mb1
= buffer(std_array_data
);
155 mb1
= buffer(std_array_data
, 1024);
156 cb1
= buffer(const_std_array_data_1
);
157 cb1
= buffer(const_std_array_data_1
, 1024);
158 cb1
= buffer(const_std_array_data_2
);
159 cb1
= buffer(const_std_array_data_2
, 1024);
160 #endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
161 mb1
= buffer(vector_data
);
162 mb1
= buffer(vector_data
, 1024);
163 cb1
= buffer(const_vector_data
);
164 cb1
= buffer(const_vector_data
, 1024);
165 cb1
= buffer(string_data
);
166 cb1
= buffer(string_data
, 1024);
168 // buffer_copy function overloads.
170 std::size_t size7
= buffer_copy(mb1
, cb2
);
172 std::size_t size8
= buffer_copy(mb1
, cbc2
);
174 std::size_t size9
= buffer_copy(mb1
, mb2
);
176 std::size_t size10
= buffer_copy(mb1
, mbc2
);
178 std::size_t size11
= buffer_copy(mb1
, const_buffer_sequence
);
180 std::size_t size12
= buffer_copy(mbc1
, cb2
);
182 std::size_t size13
= buffer_copy(mbc1
, cbc2
);
184 std::size_t size14
= buffer_copy(mbc1
, mb2
);
186 std::size_t size15
= buffer_copy(mbc1
, mbc2
);
188 std::size_t size16
= buffer_copy(mbc1
, const_buffer_sequence
);
190 std::size_t size17
= buffer_copy(mutable_buffer_sequence
, cb2
);
192 std::size_t size18
= buffer_copy(mutable_buffer_sequence
, cbc2
);
194 std::size_t size19
= buffer_copy(mutable_buffer_sequence
, mb2
);
196 std::size_t size20
= buffer_copy(mutable_buffer_sequence
, mbc2
);
198 std::size_t size21
= buffer_copy(
199 mutable_buffer_sequence
, const_buffer_sequence
);
201 std::size_t size22
= buffer_copy(mb1
, cb2
, 128);
203 std::size_t size23
= buffer_copy(mb1
, cbc2
, 128);
205 std::size_t size24
= buffer_copy(mb1
, mb2
, 128);
207 std::size_t size25
= buffer_copy(mb1
, mbc2
, 128);
209 std::size_t size26
= buffer_copy(mb1
, const_buffer_sequence
, 128);
211 std::size_t size27
= buffer_copy(mbc1
, cb2
, 128);
213 std::size_t size28
= buffer_copy(mbc1
, cbc2
, 128);
215 std::size_t size29
= buffer_copy(mbc1
, mb2
, 128);
217 std::size_t size30
= buffer_copy(mbc1
, mbc2
, 128);
219 std::size_t size31
= buffer_copy(mbc1
, const_buffer_sequence
, 128);
221 std::size_t size32
= buffer_copy(mutable_buffer_sequence
, cb2
, 128);
223 std::size_t size33
= buffer_copy(mutable_buffer_sequence
, cbc2
, 128);
225 std::size_t size34
= buffer_copy(mutable_buffer_sequence
, mb2
, 128);
227 std::size_t size35
= buffer_copy(mutable_buffer_sequence
, mbc2
, 128);
229 std::size_t size36
= buffer_copy(
230 mutable_buffer_sequence
, const_buffer_sequence
, 128);
233 catch (std::exception
&)
238 } // namespace buffer_compile
240 //------------------------------------------------------------------------------
242 BOOST_ASIO_TEST_SUITE
245 BOOST_ASIO_COMPILE_TEST_CASE(buffer_compile::test
)