diff --git a/test/error_code_test2.cpp b/test/error_code_test2.cpp index 9bed6a5..6d48651 100644 --- a/test/error_code_test2.cpp +++ b/test/error_code_test2.cpp @@ -127,6 +127,37 @@ int main() BOOST_TEST_EQ( ec2.to_string(), std::string( "generic:5" ) ); } + { + sys::error_code ec2( -4, sys::generic_category() ); + + BOOST_TEST_EQ( ec2.value(), -4 ); + BOOST_TEST( ec2.category() == sys::generic_category() ); + + BOOST_TEST_EQ( ec2.message(), ec2.category().message( ec2.value() ) ); + BOOST_TEST_CSTR_EQ( ec2.message( buffer, sizeof( buffer ) ), ec2.category().message( ec2.value(), buffer2, sizeof( buffer2 ) ) ); + BOOST_TEST_CSTR_EQ( ec2.message( buffer, sizeof( buffer ) ), ec2.message().c_str() ); + + { + char const* msg = ec2.message( nullptr, 0 ); + + if( msg != nullptr ) + { + BOOST_TEST_CSTR_EQ( msg, ec2.message().c_str() ); + } + } + + BOOST_TEST( ec2.failed() ); + BOOST_TEST( ec2 ); + BOOST_TEST_NOT( !ec2 ); + + sys::error_code ec; + + BOOST_TEST_NE( ec, ec2 ); + BOOST_TEST_NOT( ec == ec2 ); + + BOOST_TEST_EQ( ec2.to_string(), std::string( "generic:-4" ) ); + } + { sys::error_code ec2( 5, sys::system_category() ); @@ -158,5 +189,36 @@ int main() BOOST_TEST_EQ( ec2.to_string(), std::string( "system:5" ) ); } + { + sys::error_code ec2( -4, sys::system_category() ); + + BOOST_TEST_EQ( ec2.value(), -4 ); + BOOST_TEST( ec2.category() == sys::system_category() ); + + BOOST_TEST_EQ( ec2.message(), ec2.category().message( ec2.value() ) ); + BOOST_TEST_CSTR_EQ( ec2.message( buffer, sizeof( buffer ) ), ec2.category().message( ec2.value(), buffer2, sizeof( buffer2 ) ) ); + BOOST_TEST_CSTR_EQ( ec2.message( buffer, sizeof( buffer ) ), ec2.message().c_str() ); + + { + char const* msg = ec2.message( nullptr, 0 ); + + if( msg != nullptr ) + { + BOOST_TEST_CSTR_EQ( msg, ec2.message().c_str() ); + } + } + + BOOST_TEST( ec2.failed() ); + BOOST_TEST( ec2 ); + BOOST_TEST_NOT( !ec2 ); + + sys::error_code ec; + + BOOST_TEST_NE( ec, ec2 ); + BOOST_TEST_NOT( ec == ec2 ); + + BOOST_TEST_EQ( ec2.to_string(), std::string( "system:-4" ) ); + } + return boost::report_errors(); } diff --git a/test/error_condition_test3.cpp b/test/error_condition_test3.cpp index 8baf858..0ab839d 100644 --- a/test/error_condition_test3.cpp +++ b/test/error_condition_test3.cpp @@ -127,6 +127,37 @@ int main() BOOST_TEST_EQ( en2.to_string(), std::string( "cond:generic:5" ) ); } + { + sys::error_condition en2( -4, sys::generic_category() ); + + BOOST_TEST_EQ( en2.value(), -4 ); + BOOST_TEST( en2.category() == sys::generic_category() ); + + BOOST_TEST_EQ( en2.message(), en2.category().message( en2.value() ) ); + BOOST_TEST_CSTR_EQ( en2.message( buffer, sizeof( buffer ) ), en2.category().message( en2.value(), buffer2, sizeof( buffer2 ) ) ); + BOOST_TEST_CSTR_EQ( en2.message( buffer, sizeof( buffer ) ), en2.message().c_str() ); + + { + char const* msg = en2.message( nullptr, 0 ); + + if( msg != nullptr ) + { + BOOST_TEST_CSTR_EQ( msg, en2.message().c_str() ); + } + } + + BOOST_TEST( en2.failed() ); + BOOST_TEST( en2 ); + BOOST_TEST_NOT( !en2 ); + + sys::error_condition en; + + BOOST_TEST_NE( en, en2 ); + BOOST_TEST_NOT( en == en2 ); + + BOOST_TEST_EQ( en2.to_string(), std::string( "cond:generic:-4" ) ); + } + { sys::error_condition en2( 5, sys::system_category() ); @@ -158,5 +189,36 @@ int main() BOOST_TEST_EQ( en2.to_string(), std::string( "cond:system:5" ) ); } + { + sys::error_condition en2( -4, sys::system_category() ); + + BOOST_TEST_EQ( en2.value(), -4 ); + BOOST_TEST( en2.category() == sys::system_category() ); + + BOOST_TEST_EQ( en2.message(), en2.category().message( en2.value() ) ); + BOOST_TEST_CSTR_EQ( en2.message( buffer, sizeof( buffer ) ), en2.category().message( en2.value(), buffer2, sizeof( buffer2 ) ) ); + BOOST_TEST_CSTR_EQ( en2.message( buffer, sizeof( buffer ) ), en2.message().c_str() ); + + { + char const* msg = en2.message( nullptr, 0 ); + + if( msg != nullptr ) + { + BOOST_TEST_CSTR_EQ( msg, en2.message().c_str() ); + } + } + + BOOST_TEST( en2.failed() ); + BOOST_TEST( en2 ); + BOOST_TEST_NOT( !en2 ); + + sys::error_condition en; + + BOOST_TEST_NE( en, en2 ); + BOOST_TEST_NOT( en == en2 ); + + BOOST_TEST_EQ( en2.to_string(), std::string( "cond:system:-4" ) ); + } + return boost::report_errors(); }