1 // Copyright 2017, 2021 Peter Dimov.
2 // Distributed under the Boost Software License, Version 1.0.
3 // https://www.boost.org/LICENSE_1_0.txt
5 // See library home page at http://www.boost.org/libs/system
7 #include <boost/system.hpp>
8 #include <boost/core/lightweight_test.hpp>
13 boost::system::error_category
const & bt
= boost::system::generic_category();
17 boost::system::error_code
bc( ev
, bt
);
19 BOOST_TEST_EQ( bc
.value(), ev
);
20 BOOST_TEST_EQ( &bc
.category(), &bt
);
22 boost::system::error_condition bn
= bt
.default_error_condition( ev
);
24 BOOST_TEST_EQ( bn
.value(), ev
);
25 BOOST_TEST_EQ( &bn
.category(), &bt
);
27 BOOST_TEST( bt
.equivalent( ev
, bn
) );
29 BOOST_TEST( bc
== bn
);
31 boost::system::error_code bc2
= make_error_code( boost::system::errc::no_such_file_or_directory
);
33 BOOST_TEST_EQ( bc2
, bc
);
34 BOOST_TEST_EQ( bc2
.value(), ev
);
35 BOOST_TEST_EQ( &bc
.category(), &bt
);
37 boost::system::system_error
x( bc
, "prefix" );
39 BOOST_TEST_EQ( x
.code(), bc
);
40 BOOST_TEST_EQ( std::string( x
.what() ), "prefix: " + bc
.what() );
42 return boost::report_errors();