]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/system/test/std_interop_test6.cpp
1 // Copyright 2021 Peter Dimov.
2 // Distributed under the Boost Software License, Version 1.0.
3 // http://www.boost.org/LICENSE_1_0.txt
5 #include <boost/system/error_code.hpp>
6 #include <boost/core/lightweight_test.hpp>
7 #include <boost/config/pragma_message.hpp>
10 #if !defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
12 BOOST_PRAGMA_MESSAGE( "BOOST_SYSTEM_HAS_SYSTEM_ERROR not defined, test will be skipped" )
17 #include <system_error>
22 boost::system::error_code e1
;
23 boost::system::error_condition en
= e1
.default_error_condition();
25 BOOST_TEST_EQ( e1
, en
);
26 BOOST_TEST_NOT( e1
!= en
);
28 std::error_code
e2( e1
);
30 BOOST_TEST_EQ( e2
, e1
);
31 BOOST_TEST_NOT( e2
!= e1
);
33 #if defined(_LIBCPP_VERSION)
35 // Under MS STL and libstdc++, std::error_code() does not compare
36 // equal to std::error_condition(). Go figure.
38 BOOST_TEST_EQ( e2
, en
);
39 BOOST_TEST_NOT( e2
!= en
);
41 boost::system::error_code
e3( e2
);
43 BOOST_TEST_EQ( e3
, en
);
44 BOOST_TEST_NOT( e3
!= en
);
50 boost::system::error_code
e1( 0, boost::system::system_category() );
51 boost::system::error_condition en
= e1
.default_error_condition();
53 BOOST_TEST_EQ( e1
, en
);
54 BOOST_TEST_NOT( e1
!= en
);
56 std::error_code
e2( e1
);
58 BOOST_TEST_EQ( e2
, e1
);
59 BOOST_TEST_NOT( e2
!= e1
);
61 #if defined(_LIBCPP_VERSION)
63 BOOST_TEST_EQ( e2
, en
);
64 BOOST_TEST_NOT( e2
!= en
);
66 boost::system::error_code
e3( e2
);
68 BOOST_TEST_EQ( e3
, en
);
69 BOOST_TEST_NOT( e3
!= en
);
75 boost::system::error_code
e1( 5, boost::system::system_category() );
76 boost::system::error_condition en
= e1
.default_error_condition();
78 BOOST_TEST_EQ( e1
, en
);
79 BOOST_TEST_NOT( e1
!= en
);
81 std::error_code
e2( e1
);
83 BOOST_TEST_EQ( e2
, e1
);
84 BOOST_TEST_NOT( e2
!= e1
);
86 BOOST_TEST_EQ( e2
, en
);
87 BOOST_TEST_NOT( e2
!= en
);
89 boost::system::error_code
e3( e2
);
91 BOOST_TEST_EQ( e3
, en
);
92 BOOST_TEST_NOT( e3
!= en
);
96 boost::system::error_code
e1( 0, boost::system::generic_category() );
97 boost::system::error_condition en
= e1
.default_error_condition();
99 BOOST_TEST_EQ( e1
, en
);
100 BOOST_TEST_NOT( e1
!= en
);
102 std::error_code
e2( e1
);
104 BOOST_TEST_EQ( e2
, e1
);
105 BOOST_TEST_NOT( e2
!= e1
);
107 BOOST_TEST_EQ( e2
, en
);
108 BOOST_TEST_NOT( e2
!= en
);
110 boost::system::error_code
e3( e2
);
112 BOOST_TEST_EQ( e3
, en
);
113 BOOST_TEST_NOT( e3
!= en
);
117 boost::system::error_code
e1( 5, boost::system::generic_category() );
118 boost::system::error_condition en
= e1
.default_error_condition();
120 BOOST_TEST_EQ( e1
, en
);
121 BOOST_TEST_NOT( e1
!= en
);
123 std::error_code
e2( e1
);
125 BOOST_TEST_EQ( e2
, e1
);
126 BOOST_TEST_NOT( e2
!= e1
);
128 BOOST_TEST_EQ( e2
, en
);
129 BOOST_TEST_NOT( e2
!= en
);
131 boost::system::error_code
e3( e2
);
133 BOOST_TEST_EQ( e3
, en
);
134 BOOST_TEST_NOT( e3
!= en
);
137 return boost::report_errors();