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
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
44void 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
85BOOST_ASIO_TEST_SUITE
86(
87 "error",
88 BOOST_ASIO_TEST_CASE(error_test)
89)
90

source code of boost/libs/asio/test/error.cpp