diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 037b004..9e5beb7 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -123,6 +123,7 @@ else [ system-run before_main_test.cpp ] [ run-fail throws_assign_fail.cpp ] [ system-run- constexpr_test.cpp ] + [ system-run win32_hresult_test.cpp ] ; # Quick (CI) test diff --git a/test/win32_hresult_test.cpp b/test/win32_hresult_test.cpp new file mode 100644 index 0000000..1b7d7da --- /dev/null +++ b/test/win32_hresult_test.cpp @@ -0,0 +1,40 @@ + +// Copyright 2018 Peter Dimov. +// +// Distributed under the Boost Software License, Version 1.0. +// +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt + +// See library home page at http://www.boost.org/libs/system + +#include +#include +#include + +#if !defined(BOOST_WINDOWS_API) + +BOOST_PRAGMA_MESSAGE( "Skipping test, BOOST_WINDOWS_API is not defined" ) + +#else + +#include + +int main() +{ + namespace sys = boost::system; + + HRESULT r = HRESULT_FROM_WIN32( ERROR_ACCESS_DENIED ); + + sys::error_code ec( r, sys::system_category() ); + sys::error_condition en = make_error_condition( sys::errc::permission_denied ); + + BOOST_TEST( ec == en ); + BOOST_TEST( ec.default_error_condition() == en ); + + BOOST_TEST_EQ( ec.default_error_condition().value(), en.value() ); + + return boost::report_errors(); +} + +#endif