]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/asio/test/buffers_iterator.cpp
f210b5f6e5fcf752e5833d97a2c1701311175c62
2 // buffers_iterator.cpp
3 // ~~~~~~~~~~~~~~~~~~~~
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/buffers_iterator.hpp>
19 #include <boost/asio/buffer.hpp>
20 #include "unit_test.hpp"
22 #if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
23 # include <boost/array.hpp>
24 #endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
26 #if defined(BOOST_ASIO_HAS_STD_ARRAY)
28 #endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
30 //------------------------------------------------------------------------------
32 // buffers_iterator_compile test
33 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
34 // The following test checks that all operations on the buffers_iterator compile
35 // and link correctly. Runtime failures are ignored.
37 namespace buffers_iterator_compile
{
39 #if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
41 #elif defined(BOOST_ASIO_HAS_STD_ARRAY)
43 #endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
45 using namespace boost::asio
;
51 char data1
[16], data2
[16];
52 const char cdata1
[16] = "", cdata2
[16] = "";
53 mutable_buffers_1 mb1
= buffer(data1
);
54 array
<mutable_buffer
, 2> mb2
= {{ buffer(data1
), buffer(data2
) }};
55 std::vector
<mutable_buffer
> mb3
;
56 mb3
.push_back(buffer(data1
));
57 const_buffers_1 cb1
= buffer(cdata1
);
58 array
<const_buffer
, 2> cb2
= {{ buffer(cdata1
), buffer(cdata2
) }};
59 vector
<const_buffer
> cb3
;
60 cb3
.push_back(buffer(cdata1
));
63 // buffers_iterator constructors.
65 buffers_iterator
<mutable_buffers_1
, char> bi1
;
66 buffers_iterator
<mutable_buffers_1
, const char> bi2
;
67 buffers_iterator
<array
<mutable_buffer
, 2>, char> bi3
;
68 buffers_iterator
<array
<mutable_buffer
, 2>, const char> bi4
;
69 buffers_iterator
<vector
<mutable_buffer
>, char> bi5
;
70 buffers_iterator
<vector
<mutable_buffer
>, const char> bi6
;
71 buffers_iterator
<const_buffers_1
, char> bi7
;
72 buffers_iterator
<const_buffers_1
, const char> bi8
;
73 buffers_iterator
<array
<const_buffer
, 2>, char> bi9
;
74 buffers_iterator
<array
<const_buffer
, 2>, const char> bi10
;
75 buffers_iterator
<vector
<const_buffer
>, char> bi11
;
76 buffers_iterator
<vector
<const_buffer
>, const char> bi12
;
78 buffers_iterator
<mutable_buffers_1
, char> bi13(
79 buffers_iterator
<mutable_buffers_1
, char>::begin(mb1
));
80 buffers_iterator
<mutable_buffers_1
, const char> bi14(
81 buffers_iterator
<mutable_buffers_1
, const char>::begin(mb1
));
82 buffers_iterator
<array
<mutable_buffer
, 2>, char> bi15(
83 buffers_iterator
<array
<mutable_buffer
, 2>, char>::begin(mb2
));
84 buffers_iterator
<array
<mutable_buffer
, 2>, const char> bi16(
85 buffers_iterator
<array
<mutable_buffer
, 2>, const char>::begin(mb2
));
86 buffers_iterator
<vector
<mutable_buffer
>, char> bi17(
87 buffers_iterator
<vector
<mutable_buffer
>, char>::begin(mb3
));
88 buffers_iterator
<vector
<mutable_buffer
>, const char> bi18(
89 buffers_iterator
<vector
<mutable_buffer
>, const char>::begin(mb3
));
90 buffers_iterator
<const_buffers_1
, char> bi19(
91 buffers_iterator
<const_buffers_1
, char>::begin(cb1
));
92 buffers_iterator
<const_buffers_1
, const char> bi20(
93 buffers_iterator
<const_buffers_1
, const char>::begin(cb1
));
94 buffers_iterator
<array
<const_buffer
, 2>, char> bi21(
95 buffers_iterator
<array
<const_buffer
, 2>, char>::begin(cb2
));
96 buffers_iterator
<array
<const_buffer
, 2>, const char> bi22(
97 buffers_iterator
<array
<const_buffer
, 2>, const char>::begin(cb2
));
98 buffers_iterator
<vector
<const_buffer
>, char> bi23(
99 buffers_iterator
<vector
<const_buffer
>, char>::begin(cb3
));
100 buffers_iterator
<vector
<const_buffer
>, const char> bi24(
101 buffers_iterator
<vector
<const_buffer
>, const char>::begin(cb3
));
103 // buffers_iterator member functions.
105 bi1
= buffers_iterator
<mutable_buffers_1
, char>::begin(mb1
);
106 bi2
= buffers_iterator
<mutable_buffers_1
, const char>::begin(mb1
);
107 bi3
= buffers_iterator
<array
<mutable_buffer
, 2>, char>::begin(mb2
);
108 bi4
= buffers_iterator
<array
<mutable_buffer
, 2>, const char>::begin(mb2
);
109 bi5
= buffers_iterator
<vector
<mutable_buffer
>, char>::begin(mb3
);
110 bi6
= buffers_iterator
<vector
<mutable_buffer
>, const char>::begin(mb3
);
111 bi7
= buffers_iterator
<const_buffers_1
, char>::begin(cb1
);
112 bi8
= buffers_iterator
<const_buffers_1
, const char>::begin(cb1
);
113 bi9
= buffers_iterator
<array
<const_buffer
, 2>, char>::begin(cb2
);
114 bi10
= buffers_iterator
<array
<const_buffer
, 2>, const char>::begin(cb2
);
115 bi11
= buffers_iterator
<vector
<const_buffer
>, char>::begin(cb3
);
116 bi12
= buffers_iterator
<vector
<const_buffer
>, const char>::begin(cb3
);
118 bi1
= buffers_iterator
<mutable_buffers_1
, char>::end(mb1
);
119 bi2
= buffers_iterator
<mutable_buffers_1
, const char>::end(mb1
);
120 bi3
= buffers_iterator
<array
<mutable_buffer
, 2>, char>::end(mb2
);
121 bi4
= buffers_iterator
<array
<mutable_buffer
, 2>, const char>::end(mb2
);
122 bi5
= buffers_iterator
<vector
<mutable_buffer
>, char>::end(mb3
);
123 bi6
= buffers_iterator
<vector
<mutable_buffer
>, const char>::end(mb3
);
124 bi7
= buffers_iterator
<const_buffers_1
, char>::end(cb1
);
125 bi8
= buffers_iterator
<const_buffers_1
, const char>::end(cb1
);
126 bi9
= buffers_iterator
<array
<const_buffer
, 2>, char>::end(cb2
);
127 bi10
= buffers_iterator
<array
<const_buffer
, 2>, const char>::end(cb2
);
128 bi11
= buffers_iterator
<vector
<const_buffer
>, char>::end(cb3
);
129 bi12
= buffers_iterator
<vector
<const_buffer
>, const char>::end(cb3
);
131 // buffers_iterator related functions.
133 bi1
= buffers_begin(mb1
);
134 bi3
= buffers_begin(mb2
);
135 bi5
= buffers_begin(mb3
);
136 bi7
= buffers_begin(cb1
);
137 bi9
= buffers_begin(cb2
);
138 bi11
= buffers_begin(cb3
);
140 bi1
= buffers_end(mb1
);
141 bi3
= buffers_end(mb2
);
142 bi5
= buffers_end(mb3
);
143 bi7
= buffers_end(cb1
);
144 bi9
= buffers_end(cb2
);
145 bi11
= buffers_end(cb3
);
147 // RandomAccessIterator operations.
266 (void)static_cast<std::ptrdiff_t>(bi13
- bi1
);
267 (void)static_cast<std::ptrdiff_t>(bi14
- bi2
);
268 (void)static_cast<std::ptrdiff_t>(bi15
- bi3
);
269 (void)static_cast<std::ptrdiff_t>(bi16
- bi4
);
270 (void)static_cast<std::ptrdiff_t>(bi17
- bi5
);
271 (void)static_cast<std::ptrdiff_t>(bi18
- bi6
);
272 (void)static_cast<std::ptrdiff_t>(bi19
- bi7
);
273 (void)static_cast<std::ptrdiff_t>(bi20
- bi8
);
274 (void)static_cast<std::ptrdiff_t>(bi21
- bi9
);
275 (void)static_cast<std::ptrdiff_t>(bi22
- bi10
);
276 (void)static_cast<std::ptrdiff_t>(bi23
- bi11
);
277 (void)static_cast<std::ptrdiff_t>(bi24
- bi12
);
279 catch (std::exception
&)
284 } // namespace buffers_iterator_compile
286 //------------------------------------------------------------------------------
288 BOOST_ASIO_TEST_SUITE
291 BOOST_ASIO_TEST_CASE(buffers_iterator_compile::test
)