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 <cerrno> |
8 | #include <system_error> |
9 | |
10 | void f( std::error_code& e1, std::error_code e2 ) |
11 | { |
12 | e1 = e2; |
13 | } |
14 | |
15 | int main() |
16 | { |
17 | { |
18 | boost::system::error_code e1; |
19 | std::error_code e2; |
20 | |
21 | f( e1, e2 ); |
22 | |
23 | BOOST_TEST_EQ( e1, boost::system::error_code( e2 ) ); |
24 | |
25 | std::error_code e3( e1 ); |
26 | BOOST_TEST_EQ( e3, e2 ); |
27 | } |
28 | |
29 | { |
30 | boost::system::error_code e1; |
31 | std::error_code e2( 0, std::system_category() ); |
32 | |
33 | f( e1, e2 ); |
34 | |
35 | BOOST_TEST_EQ( e1, boost::system::error_code( e2 ) ); |
36 | |
37 | std::error_code e3( e1 ); |
38 | BOOST_TEST_EQ( e3, e2 ); |
39 | } |
40 | |
41 | { |
42 | boost::system::error_code e1; |
43 | std::error_code e2( 5, std::system_category() ); |
44 | |
45 | f( e1, e2 ); |
46 | |
47 | BOOST_TEST_EQ( e1, boost::system::error_code( e2 ) ); |
48 | |
49 | std::error_code e3( e1 ); |
50 | BOOST_TEST_EQ( e3, e2 ); |
51 | } |
52 | |
53 | { |
54 | boost::system::error_code e1; |
55 | std::error_code e2( 0, std::generic_category() ); |
56 | |
57 | f( e1, e2 ); |
58 | |
59 | BOOST_TEST_EQ( e1, boost::system::error_code( e2 ) ); |
60 | |
61 | std::error_code e3( e1 ); |
62 | BOOST_TEST_EQ( e3, e2 ); |
63 | } |
64 | |
65 | { |
66 | boost::system::error_code e1; |
67 | std::error_code e2( ENOENT, std::generic_category() ); |
68 | |
69 | f( e1, e2 ); |
70 | |
71 | BOOST_TEST_EQ( e1, boost::system::error_code( e2 ) ); |
72 | |
73 | std::error_code e3( e1 ); |
74 | BOOST_TEST_EQ( e3, e2 ); |
75 | } |
76 | |
77 | return boost::report_errors(); |
78 | } |
79 | |