1 // 2 // error.cpp 3 // ~~~~~~~~~ 4 // 5 // Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) 6 // 7 // Distributed under the Boost Software License, Version 1.0. (See accompanying 8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 9 // 10 11 // Disable autolinking for unit tests. 12 #if !defined(BOOST_ALL_NO_LIB) 13 #define BOOST_ALL_NO_LIB 1 14 #endif // !defined(BOOST_ALL_NO_LIB) 15 16 // Test that header file is self-contained. 17 #include <boost/asio/error.hpp> 18 19 #include <sstream> 20 #include "unit_test.hpp" 21 test_error_code(const boost::system::error_code & code)22void test_error_code(const boost::system::error_code& code) 23 { 24 boost::system::error_code error(code); 25 BOOST_ASIO_CHECK(code == error); 26 27 BOOST_ASIO_CHECK(!code || error); 28 BOOST_ASIO_CHECK(!code || !!error); 29 30 boost::system::error_code error2(error); 31 BOOST_ASIO_CHECK(error == error2); 32 BOOST_ASIO_CHECK(!(error != error2)); 33 34 boost::system::error_code error3; 35 error3 = error; 36 BOOST_ASIO_CHECK(error == error3); 37 BOOST_ASIO_CHECK(!(error != error3)); 38 39 std::ostringstream os; 40 os << error; 41 BOOST_ASIO_CHECK(!os.str().empty()); 42 } 43 error_test()44void error_test() 45 { 46 test_error_code(boost::asio::error::access_denied); 47 test_error_code(boost::asio::error::address_family_not_supported); 48 test_error_code(boost::asio::error::address_in_use); 49 test_error_code(boost::asio::error::already_connected); 50 test_error_code(boost::asio::error::already_started); 51 test_error_code(boost::asio::error::connection_aborted); 52 test_error_code(boost::asio::error::connection_refused); 53 test_error_code(boost::asio::error::connection_reset); 54 test_error_code(boost::asio::error::bad_descriptor); 55 test_error_code(boost::asio::error::eof); 56 test_error_code(boost::asio::error::fault); 57 test_error_code(boost::asio::error::host_not_found); 58 test_error_code(boost::asio::error::host_not_found_try_again); 59 test_error_code(boost::asio::error::host_unreachable); 60 test_error_code(boost::asio::error::in_progress); 61 test_error_code(boost::asio::error::interrupted); 62 test_error_code(boost::asio::error::invalid_argument); 63 test_error_code(boost::asio::error::message_size); 64 test_error_code(boost::asio::error::network_down); 65 test_error_code(boost::asio::error::network_reset); 66 test_error_code(boost::asio::error::network_unreachable); 67 test_error_code(boost::asio::error::no_descriptors); 68 test_error_code(boost::asio::error::no_buffer_space); 69 test_error_code(boost::asio::error::no_data); 70 test_error_code(boost::asio::error::no_memory); 71 test_error_code(boost::asio::error::no_permission); 72 test_error_code(boost::asio::error::no_protocol_option); 73 test_error_code(boost::asio::error::no_recovery); 74 test_error_code(boost::asio::error::not_connected); 75 test_error_code(boost::asio::error::not_socket); 76 test_error_code(boost::asio::error::operation_aborted); 77 test_error_code(boost::asio::error::operation_not_supported); 78 test_error_code(boost::asio::error::service_not_found); 79 test_error_code(boost::asio::error::shut_down); 80 test_error_code(boost::asio::error::timed_out); 81 test_error_code(boost::asio::error::try_again); 82 test_error_code(boost::asio::error::would_block); 83 } 84 85 BOOST_ASIO_TEST_SUITE 86 ( 87 "error", 88 BOOST_ASIO_TEST_CASE(error_test) 89 ) 90