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 | int main() |
11 | { |
12 | { |
13 | std::error_code e1; |
14 | boost::system::error_code e2 = e1; |
15 | |
16 | BOOST_TEST( !e2.failed() ); |
17 | BOOST_TEST_EQ( e1.message(), e2.message() ); |
18 | |
19 | std::error_code e3 = e2; |
20 | BOOST_TEST_EQ( e1, e3 ); |
21 | } |
22 | |
23 | { |
24 | std::error_code e1( 5, std::system_category() ); |
25 | boost::system::error_code e2 = e1; |
26 | |
27 | BOOST_TEST( e2.failed() ); |
28 | BOOST_TEST_EQ( e1.message(), e2.message() ); |
29 | |
30 | std::error_code e3 = e2; |
31 | BOOST_TEST_EQ( e1, e3 ); |
32 | } |
33 | |
34 | { |
35 | std::error_code e1( 0, std::generic_category() ); |
36 | boost::system::error_code e2 = e1; |
37 | |
38 | BOOST_TEST( !e2.failed() ); |
39 | BOOST_TEST_EQ( e1.message(), e2.message() ); |
40 | |
41 | std::error_code e3 = e2; |
42 | BOOST_TEST_EQ( e1, e3 ); |
43 | } |
44 | |
45 | { |
46 | std::error_code e1( ENOENT, std::generic_category() ); |
47 | boost::system::error_code e2 = e1; |
48 | |
49 | BOOST_TEST( e2.failed() ); |
50 | BOOST_TEST_EQ( e1.message(), e2.message() ); |
51 | |
52 | std::error_code e3 = e2; |
53 | BOOST_TEST_EQ( e1, e3 ); |
54 | } |
55 | |
56 | { |
57 | std::error_code e1 = make_error_code( e: std::errc::no_such_file_or_directory ); |
58 | boost::system::error_code e2 = e1; |
59 | |
60 | BOOST_TEST( e2.failed() ); |
61 | BOOST_TEST_EQ( e1.message(), e2.message() ); |
62 | |
63 | std::error_code e3 = e2; |
64 | BOOST_TEST_EQ( e1, e3 ); |
65 | } |
66 | |
67 | return boost::report_errors(); |
68 | } |
69 | |