diff --git a/test/result_error_construct.cpp b/test/result_error_construct.cpp index 90c66e9..8ea5f70 100644 --- a/test/result_error_construct.cpp +++ b/test/result_error_construct.cpp @@ -150,5 +150,36 @@ int main() BOOST_TEST_TRAIT_FALSE((std::is_convertible>)); } + { + auto ec = make_error_code( errc::invalid_argument ); + + result r( ec ); + + BOOST_TEST( !r.has_value() ); + BOOST_TEST( r.has_error() ); + + BOOST_TEST_EQ( r.error(), ec ); + } + + { + auto ec = make_error_code( errc::invalid_argument ); + + result r = ec; + + BOOST_TEST( !r.has_value() ); + BOOST_TEST( r.has_error() ); + + BOOST_TEST_EQ( r.error(), ec ); + } + + { + result r( EINVAL, generic_category() ); + + BOOST_TEST( !r.has_value() ); + BOOST_TEST( r.has_error() ); + + BOOST_TEST_EQ( r.error(), std::error_code( EINVAL, generic_category() ) ); + } + return boost::report_errors(); }