Imported Upstream version 1.64.0
[platform/upstream/boost.git] / libs / asio / test / error.cpp
1 //
2 // error.cpp
3 // ~~~~~~~~~
4 //
5 // Copyright (c) 2003-2017 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(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 )