1 | // |
---|---|
2 | // error.cpp |
3 | // ~~~~~~~~~ |
4 | // |
5 | // Copyright (c) 2003-2015 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 | |
22 | void 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 | |
44 | void error_test() |
45 | { |
46 | test_error_code(code: boost::asio::error::access_denied); |
47 | test_error_code(code: boost::asio::error::address_family_not_supported); |
48 | test_error_code(code: boost::asio::error::address_in_use); |
49 | test_error_code(code: boost::asio::error::already_connected); |
50 | test_error_code(code: boost::asio::error::already_started); |
51 | test_error_code(code: boost::asio::error::connection_aborted); |
52 | test_error_code(code: boost::asio::error::connection_refused); |
53 | test_error_code(code: boost::asio::error::connection_reset); |
54 | test_error_code(code: boost::asio::error::bad_descriptor); |
55 | test_error_code(code: boost::asio::error::eof); |
56 | test_error_code(code: boost::asio::error::fault); |
57 | test_error_code(code: boost::asio::error::host_not_found); |
58 | test_error_code(code: boost::asio::error::host_not_found_try_again); |
59 | test_error_code(code: boost::asio::error::host_unreachable); |
60 | test_error_code(code: boost::asio::error::in_progress); |
61 | test_error_code(code: boost::asio::error::interrupted); |
62 | test_error_code(code: boost::asio::error::invalid_argument); |
63 | test_error_code(code: boost::asio::error::message_size); |
64 | test_error_code(code: boost::asio::error::network_down); |
65 | test_error_code(code: boost::asio::error::network_reset); |
66 | test_error_code(code: boost::asio::error::network_unreachable); |
67 | test_error_code(code: boost::asio::error::no_descriptors); |
68 | test_error_code(code: boost::asio::error::no_buffer_space); |
69 | test_error_code(code: boost::asio::error::no_data); |
70 | test_error_code(code: boost::asio::error::no_memory); |
71 | test_error_code(code: boost::asio::error::no_permission); |
72 | test_error_code(code: boost::asio::error::no_protocol_option); |
73 | test_error_code(code: boost::asio::error::no_recovery); |
74 | test_error_code(code: boost::asio::error::not_connected); |
75 | test_error_code(code: boost::asio::error::not_socket); |
76 | test_error_code(code: boost::asio::error::operation_aborted); |
77 | test_error_code(code: boost::asio::error::operation_not_supported); |
78 | test_error_code(code: boost::asio::error::service_not_found); |
79 | test_error_code(code: boost::asio::error::shut_down); |
80 | test_error_code(code: boost::asio::error::timed_out); |
81 | test_error_code(code: boost::asio::error::try_again); |
82 | test_error_code(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 |