diff --git a/test/cmake_install_test/CMakeLists.txt b/test/cmake_install_test/CMakeLists.txt index 7463fd0..5eace89 100644 --- a/test/cmake_install_test/CMakeLists.txt +++ b/test/cmake_install_test/CMakeLists.txt @@ -7,12 +7,11 @@ cmake_minimum_required(VERSION 3.5...3.16) project(cmake_install_test LANGUAGES CXX) find_package(boost_system REQUIRED) -find_package(boost_core REQUIRED) -add_executable(quick ../quick.cpp) -target_link_libraries(quick Boost::system Boost::core) +add_executable(main main.cpp) +target_link_libraries(main Boost::system) enable_testing() -add_test(quick quick) +add_test(main main) add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $) diff --git a/test/cmake_install_test/main.cpp b/test/cmake_install_test/main.cpp new file mode 100644 index 0000000..a077d1b --- /dev/null +++ b/test/cmake_install_test/main.cpp @@ -0,0 +1,44 @@ +// Copyright 2017, 2021 Peter Dimov. +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +// See library home page at http://www.boost.org/libs/system + +#include +#include +#include + +#define BOOST_TEST(expr) assert(expr) +#define BOOST_TEST_EQ(x1, x2) assert((x1)==(x2)) + +int main() +{ + boost::system::error_category const & bt = boost::system::generic_category(); + + int ev = ENOENT; + + boost::system::error_code bc( ev, bt ); + + BOOST_TEST_EQ( bc.value(), ev ); + BOOST_TEST_EQ( &bc.category(), &bt ); + + boost::system::error_condition bn = bt.default_error_condition( ev ); + + BOOST_TEST_EQ( bn.value(), ev ); + BOOST_TEST_EQ( &bn.category(), &bt ); + + BOOST_TEST( bt.equivalent( ev, bn ) ); + + BOOST_TEST( bc == bn ); + + boost::system::error_code bc2 = make_error_code( boost::system::errc::no_such_file_or_directory ); + + BOOST_TEST_EQ( bc2, bc ); + BOOST_TEST_EQ( bc2.value(), ev ); + BOOST_TEST_EQ( &bc.category(), &bt ); + + boost::system::system_error x( bc, "prefix" ); + + BOOST_TEST_EQ( x.code(), bc ); + BOOST_TEST_EQ( std::string( x.what() ), "prefix: " + bc.message() ); +}