diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 19fdec3..6d192a7 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -97,3 +97,4 @@ boost_test(TYPE run SOURCES std_interop_test5.cpp) boost_test(TYPE run SOURCES std_interop_test6.cpp) boost_test(TYPE run SOURCES std_interop_test7.cpp) boost_test(TYPE run SOURCES std_interop_test8.cpp) +boost_test(TYPE run SOURCES std_interop_test9.cpp) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index d0addf0..e2b0edc 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -107,3 +107,4 @@ run std_interop_test5.cpp run std_interop_test6.cpp ; run std_interop_test7.cpp ; run std_interop_test8.cpp ; +run std_interop_test9.cpp ; diff --git a/test/std_interop_test9.cpp b/test/std_interop_test9.cpp new file mode 100644 index 0000000..6fae6b5 --- /dev/null +++ b/test/std_interop_test9.cpp @@ -0,0 +1,51 @@ +// Copyright 2021 Peter Dimov. +// Distributed under the Boost Software License, Version 1.0. +// http://www.boost.org/LICENSE_1_0.txt + +#include +#include +#include +#include + +#if !defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR) + +BOOST_PRAGMA_MESSAGE( "BOOST_SYSTEM_HAS_SYSTEM_ERROR not defined, test will be skipped" ) +int main() {} + +#else + +#include + +enum my_errc +{ + my_enoent = ENOENT +}; + +template<> struct boost::system::is_error_code_enum: std::true_type {}; +template<> struct std::is_error_code_enum: std::true_type {}; + +boost::system::error_code make_error_code( my_errc e ) +{ + return boost::system::error_code( e, boost::system::generic_category() ); +} + +int main() +{ + { + boost::system::error_code e1 = my_enoent; + + BOOST_TEST( e1 == my_enoent ); + BOOST_TEST_NOT( e1 != my_enoent ); + } + + { + std::error_code e1 = my_enoent; + + BOOST_TEST( e1 == my_enoent ); + BOOST_TEST_NOT( e1 != my_enoent ); + } + + return boost::report_errors(); +} + +#endif