]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/system/test/std_interop_test6.cpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / system / test / std_interop_test6.cpp
CommitLineData
1e59de90
TL
1// Copyright 2021 Peter Dimov.
2// Distributed under the Boost Software License, Version 1.0.
3// http://www.boost.org/LICENSE_1_0.txt
4
5#include <boost/system/error_code.hpp>
6#include <boost/core/lightweight_test.hpp>
7#include <boost/config/pragma_message.hpp>
8#include <cerrno>
9
10#if !defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
11
12BOOST_PRAGMA_MESSAGE( "BOOST_SYSTEM_HAS_SYSTEM_ERROR not defined, test will be skipped" )
13int main() {}
14
15#else
16
17#include <system_error>
18
19int main()
20{
21 {
22 boost::system::error_code e1;
23 boost::system::error_condition en = e1.default_error_condition();
24
25 BOOST_TEST_EQ( e1, en );
26 BOOST_TEST_NOT( e1 != en );
27
28 std::error_code e2( e1 );
29
30 BOOST_TEST_EQ( e2, e1 );
31 BOOST_TEST_NOT( e2 != e1 );
32
33#if defined(_LIBCPP_VERSION)
34
35 // Under MS STL and libstdc++, std::error_code() does not compare
36 // equal to std::error_condition(). Go figure.
37
38 BOOST_TEST_EQ( e2, en );
39 BOOST_TEST_NOT( e2 != en );
40
41 boost::system::error_code e3( e2 );
42
43 BOOST_TEST_EQ( e3, en );
44 BOOST_TEST_NOT( e3 != en );
45
46#endif
47 }
48
49 {
50 boost::system::error_code e1( 0, boost::system::system_category() );
51 boost::system::error_condition en = e1.default_error_condition();
52
53 BOOST_TEST_EQ( e1, en );
54 BOOST_TEST_NOT( e1 != en );
55
56 std::error_code e2( e1 );
57
58 BOOST_TEST_EQ( e2, e1 );
59 BOOST_TEST_NOT( e2 != e1 );
60
61#if defined(_LIBCPP_VERSION)
62
63 BOOST_TEST_EQ( e2, en );
64 BOOST_TEST_NOT( e2 != en );
65
66 boost::system::error_code e3( e2 );
67
68 BOOST_TEST_EQ( e3, en );
69 BOOST_TEST_NOT( e3 != en );
70
71#endif
72 }
73
74 {
75 boost::system::error_code e1( 5, boost::system::system_category() );
76 boost::system::error_condition en = e1.default_error_condition();
77
78 BOOST_TEST_EQ( e1, en );
79 BOOST_TEST_NOT( e1 != en );
80
81 std::error_code e2( e1 );
82
83 BOOST_TEST_EQ( e2, e1 );
84 BOOST_TEST_NOT( e2 != e1 );
85
86 BOOST_TEST_EQ( e2, en );
87 BOOST_TEST_NOT( e2 != en );
88
89 boost::system::error_code e3( e2 );
90
91 BOOST_TEST_EQ( e3, en );
92 BOOST_TEST_NOT( e3 != en );
93 }
94
95 {
96 boost::system::error_code e1( 0, boost::system::generic_category() );
97 boost::system::error_condition en = e1.default_error_condition();
98
99 BOOST_TEST_EQ( e1, en );
100 BOOST_TEST_NOT( e1 != en );
101
102 std::error_code e2( e1 );
103
104 BOOST_TEST_EQ( e2, e1 );
105 BOOST_TEST_NOT( e2 != e1 );
106
107 BOOST_TEST_EQ( e2, en );
108 BOOST_TEST_NOT( e2 != en );
109
110 boost::system::error_code e3( e2 );
111
112 BOOST_TEST_EQ( e3, en );
113 BOOST_TEST_NOT( e3 != en );
114 }
115
116 {
117 boost::system::error_code e1( 5, boost::system::generic_category() );
118 boost::system::error_condition en = e1.default_error_condition();
119
120 BOOST_TEST_EQ( e1, en );
121 BOOST_TEST_NOT( e1 != en );
122
123 std::error_code e2( e1 );
124
125 BOOST_TEST_EQ( e2, e1 );
126 BOOST_TEST_NOT( e2 != e1 );
127
128 BOOST_TEST_EQ( e2, en );
129 BOOST_TEST_NOT( e2 != en );
130
131 boost::system::error_code e3( e2 );
132
133 BOOST_TEST_EQ( e3, en );
134 BOOST_TEST_NOT( e3 != en );
135 }
136
137 return boost::report_errors();
138}
139
140#endif