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
10int 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

source code of boost/libs/system/test/std_interop_test3.cpp