]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/asio/test/ip/udp.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / asio / test / ip / udp.cpp
index b0aeecc84a0f75a47dd979eca57af21cb975ed72..c413681e326c6166068044a10e7f52d16fa34531 100644 (file)
@@ -2,7 +2,7 @@
 // udp.cpp
 // ~~~~~~~
 //
-// Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 #include <boost/asio/ip/udp.hpp>
 
 #include <cstring>
-#include <boost/asio/io_service.hpp>
+#include <boost/asio/io_context.hpp>
 #include "../unit_test.hpp"
-#include "../archetypes/gettable_socket_option.hpp"
 #include "../archetypes/async_result.hpp"
+#include "../archetypes/deprecated_async_result.hpp"
+#include "../archetypes/gettable_socket_option.hpp"
 #include "../archetypes/io_control_command.hpp"
 #include "../archetypes/settable_socket_option.hpp"
 
 
 namespace ip_udp_socket_compile {
 
-void connect_handler(const boost::system::error_code&)
+struct connect_handler
 {
-}
+  connect_handler() {}
+  void operator()(const boost::system::error_code&) {}
+#if defined(BOOST_ASIO_HAS_MOVE)
+  connect_handler(connect_handler&&) {}
+private:
+  connect_handler(const connect_handler&);
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+};
 
-void send_handler(const boost::system::error_code&, std::size_t)
+struct wait_handler
 {
-}
+  wait_handler() {}
+  void operator()(const boost::system::error_code&) {}
+#if defined(BOOST_ASIO_HAS_MOVE)
+  wait_handler(wait_handler&&) {}
+private:
+  wait_handler(const wait_handler&);
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+};
 
-void receive_handler(const boost::system::error_code&, std::size_t)
+struct send_handler
 {
-}
+  send_handler() {}
+  void operator()(const boost::system::error_code&, std::size_t) {}
+#if defined(BOOST_ASIO_HAS_MOVE)
+  send_handler(send_handler&&) {}
+private:
+  send_handler(const send_handler&);
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+};
+
+struct receive_handler
+{
+  receive_handler() {}
+  void operator()(const boost::system::error_code&, std::size_t) {}
+#if defined(BOOST_ASIO_HAS_MOVE)
+  receive_handler(receive_handler&&) {}
+private:
+  receive_handler(const receive_handler&);
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+};
 
 void test()
 {
@@ -58,7 +91,7 @@ void test()
 
   try
   {
-    io_service ios;
+    io_context ioc;
     char mutable_char_buffer[128] = "";
     const char const_char_buffer[128] = "";
     socket_base::message_flags in_flags = 0;
@@ -70,19 +103,22 @@ void test()
     archetypes::gettable_socket_option<double> gettable_socket_option3;
     archetypes::io_control_command io_control_command;
     archetypes::lazy_handler lazy;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    archetypes::deprecated_lazy_handler dlazy;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
     boost::system::error_code ec;
 
     // basic_datagram_socket constructors.
 
-    ip::udp::socket socket1(ios);
-    ip::udp::socket socket2(ios, ip::udp::v4());
-    ip::udp::socket socket3(ios, ip::udp::v6());
-    ip::udp::socket socket4(ios, ip::udp::endpoint(ip::udp::v4(), 0));
-    ip::udp::socket socket5(ios, ip::udp::endpoint(ip::udp::v6(), 0));
+    ip::udp::socket socket1(ioc);
+    ip::udp::socket socket2(ioc, ip::udp::v4());
+    ip::udp::socket socket3(ioc, ip::udp::v6());
+    ip::udp::socket socket4(ioc, ip::udp::endpoint(ip::udp::v4(), 0));
+    ip::udp::socket socket5(ioc, ip::udp::endpoint(ip::udp::v6(), 0));
 #if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
     ip::udp::socket::native_handle_type native_socket1
       = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-    ip::udp::socket socket6(ios, ip::udp::v4(), native_socket1);
+    ip::udp::socket socket6(ioc, ip::udp::v4(), native_socket1);
 #endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
 
 #if defined(BOOST_ASIO_HAS_MOVE)
@@ -92,14 +128,19 @@ void test()
     // basic_datagram_socket operators.
 
 #if defined(BOOST_ASIO_HAS_MOVE)
-    socket1 = ip::udp::socket(ios);
+    socket1 = ip::udp::socket(ioc);
     socket1 = std::move(socket2);
 #endif // defined(BOOST_ASIO_HAS_MOVE)
 
     // basic_io_object functions.
 
-    io_service& ios_ref = socket1.get_io_service();
-    (void)ios_ref;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    io_context& ioc_ref = socket1.get_io_context();
+    (void)ioc_ref;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
+
+    ip::udp::socket::executor_type ex = socket1.get_executor();
+    (void)ex;
 
     // basic_socket functions.
 
@@ -131,12 +172,12 @@ void test()
     socket1.close();
     socket1.close(ec);
 
-    ip::udp::socket::native_type native_socket4 = socket1.native();
-    (void)native_socket4;
+    socket1.release();
+    socket1.release(ec);
 
-    ip::udp::socket::native_handle_type native_socket5
+    ip::udp::socket::native_handle_type native_socket4
       = socket1.native_handle();
-    (void)native_socket5;
+    (void)native_socket4;
 
     socket1.cancel();
     socket1.cancel(ec);
@@ -162,13 +203,21 @@ void test()
     socket1.connect(ip::udp::endpoint(ip::udp::v6(), 0), ec);
 
     socket1.async_connect(ip::udp::endpoint(ip::udp::v4(), 0),
-        &connect_handler);
+        connect_handler());
     socket1.async_connect(ip::udp::endpoint(ip::udp::v6(), 0),
-        &connect_handler);
+        connect_handler());
     int i1 = socket1.async_connect(ip::udp::endpoint(ip::udp::v4(), 0), lazy);
     (void)i1;
     int i2 = socket1.async_connect(ip::udp::endpoint(ip::udp::v6(), 0), lazy);
     (void)i2;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    double d1 = socket1.async_connect(
+        ip::udp::endpoint(ip::udp::v4(), 0), dlazy);
+    (void)d1;
+    double d2 = socket1.async_connect(
+        ip::udp::endpoint(ip::udp::v6(), 0), dlazy);
+    (void)d2;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
 
     socket1.set_option(settable_socket_option1);
     socket1.set_option(settable_socket_option1, ec);
@@ -206,6 +255,17 @@ void test()
     socket1.shutdown(socket_base::shutdown_both);
     socket1.shutdown(socket_base::shutdown_both, ec);
 
+    socket1.wait(socket_base::wait_read);
+    socket1.wait(socket_base::wait_write, ec);
+
+    socket1.async_wait(socket_base::wait_read, wait_handler());
+    int i3 = socket1.async_wait(socket_base::wait_write, lazy);
+    (void)i3;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    double d3 = socket1.async_wait(socket_base::wait_write, dlazy);
+    (void)d3;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
+
     // basic_datagram_socket functions.
 
     socket1.send(buffer(mutable_char_buffer));
@@ -218,24 +278,39 @@ void test()
     socket1.send(buffer(const_char_buffer), in_flags, ec);
     socket1.send(null_buffers(), in_flags, ec);
 
-    socket1.async_send(buffer(mutable_char_buffer), &send_handler);
-    socket1.async_send(buffer(const_char_buffer), &send_handler);
-    socket1.async_send(null_buffers(), &send_handler);
-    socket1.async_send(buffer(mutable_char_buffer), in_flags, &send_handler);
-    socket1.async_send(buffer(const_char_buffer), in_flags, &send_handler);
-    socket1.async_send(null_buffers(), in_flags, &send_handler);
-    int i3 = socket1.async_send(buffer(mutable_char_buffer), lazy);
-    (void)i3;
-    int i4 = socket1.async_send(buffer(const_char_buffer), lazy);
+    socket1.async_send(buffer(mutable_char_buffer), send_handler());
+    socket1.async_send(buffer(const_char_buffer), send_handler());
+    socket1.async_send(null_buffers(), send_handler());
+    socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler());
+    socket1.async_send(buffer(const_char_buffer), in_flags, send_handler());
+    socket1.async_send(null_buffers(), in_flags, send_handler());
+    int i4 = socket1.async_send(buffer(mutable_char_buffer), lazy);
     (void)i4;
-    int i5 = socket1.async_send(null_buffers(), lazy);
+    int i5 = socket1.async_send(buffer(const_char_buffer), lazy);
     (void)i5;
-    int i6 = socket1.async_send(buffer(mutable_char_buffer), in_flags, lazy);
+    int i6 = socket1.async_send(null_buffers(), lazy);
     (void)i6;
-    int i7 = socket1.async_send(buffer(const_char_buffer), in_flags, lazy);
+    int i7 = socket1.async_send(buffer(mutable_char_buffer), in_flags, lazy);
     (void)i7;
-    int i8 = socket1.async_send(null_buffers(), in_flags, lazy);
+    int i8 = socket1.async_send(buffer(const_char_buffer), in_flags, lazy);
     (void)i8;
+    int i9 = socket1.async_send(null_buffers(), in_flags, lazy);
+    (void)i9;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    double d4 = socket1.async_send(buffer(mutable_char_buffer), dlazy);
+    (void)d4;
+    double d5 = socket1.async_send(buffer(const_char_buffer), dlazy);
+    (void)d5;
+    double d6 = socket1.async_send(null_buffers(), dlazy);
+    (void)d6;
+    double d7 = socket1.async_send(
+        buffer(mutable_char_buffer), in_flags, dlazy);
+    (void)d7;
+    double d8 = socket1.async_send(buffer(const_char_buffer), in_flags, dlazy);
+    (void)d8;
+    double d9 = socket1.async_send(null_buffers(), in_flags, dlazy);
+    (void)d9;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
 
     socket1.send_to(buffer(mutable_char_buffer),
         ip::udp::endpoint(ip::udp::v4(), 0));
@@ -275,65 +350,103 @@ void test()
         ip::udp::endpoint(ip::udp::v6(), 0), in_flags, ec);
 
     socket1.async_send_to(buffer(mutable_char_buffer),
-        ip::udp::endpoint(ip::udp::v4(), 0), &send_handler);
+        ip::udp::endpoint(ip::udp::v4(), 0), send_handler());
     socket1.async_send_to(buffer(mutable_char_buffer),
-        ip::udp::endpoint(ip::udp::v6(), 0), &send_handler);
+        ip::udp::endpoint(ip::udp::v6(), 0), send_handler());
     socket1.async_send_to(buffer(const_char_buffer),
-        ip::udp::endpoint(ip::udp::v4(), 0), &send_handler);
+        ip::udp::endpoint(ip::udp::v4(), 0), send_handler());
     socket1.async_send_to(buffer(const_char_buffer),
-        ip::udp::endpoint(ip::udp::v6(), 0), &send_handler);
+        ip::udp::endpoint(ip::udp::v6(), 0), send_handler());
     socket1.async_send_to(null_buffers(),
-        ip::udp::endpoint(ip::udp::v4(), 0), &send_handler);
+        ip::udp::endpoint(ip::udp::v4(), 0), send_handler());
     socket1.async_send_to(null_buffers(),
-        ip::udp::endpoint(ip::udp::v6(), 0), &send_handler);
+        ip::udp::endpoint(ip::udp::v6(), 0), send_handler());
     socket1.async_send_to(buffer(mutable_char_buffer),
-        ip::udp::endpoint(ip::udp::v4(), 0), in_flags, &send_handler);
+        ip::udp::endpoint(ip::udp::v4(), 0), in_flags, send_handler());
     socket1.async_send_to(buffer(mutable_char_buffer),
-        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, &send_handler);
+        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, send_handler());
     socket1.async_send_to(buffer(const_char_buffer),
-        ip::udp::endpoint(ip::udp::v4(), 0), in_flags, &send_handler);
+        ip::udp::endpoint(ip::udp::v4(), 0), in_flags, send_handler());
     socket1.async_send_to(buffer(const_char_buffer),
-        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, &send_handler);
+        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, send_handler());
     socket1.async_send_to(null_buffers(),
-        ip::udp::endpoint(ip::udp::v4(), 0), in_flags, &send_handler);
+        ip::udp::endpoint(ip::udp::v4(), 0), in_flags, send_handler());
     socket1.async_send_to(null_buffers(),
-        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, &send_handler);
-    int i9 = socket1.async_send_to(buffer(mutable_char_buffer),
-        ip::udp::endpoint(ip::udp::v4(), 0), lazy);
-    (void)i9;
+        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, send_handler());
     int i10 = socket1.async_send_to(buffer(mutable_char_buffer),
-        ip::udp::endpoint(ip::udp::v6(), 0), lazy);
-    (void)i10;
-    int i11 = socket1.async_send_to(buffer(const_char_buffer),
         ip::udp::endpoint(ip::udp::v4(), 0), lazy);
+    (void)i10;
+    int i11 = socket1.async_send_to(buffer(mutable_char_buffer),
+        ip::udp::endpoint(ip::udp::v6(), 0), lazy);
     (void)i11;
     int i12 = socket1.async_send_to(buffer(const_char_buffer),
-        ip::udp::endpoint(ip::udp::v6(), 0), lazy);
-    (void)i12;
-    int i13 = socket1.async_send_to(null_buffers(),
         ip::udp::endpoint(ip::udp::v4(), 0), lazy);
+    (void)i12;
+    int i13 = socket1.async_send_to(buffer(const_char_buffer),
+        ip::udp::endpoint(ip::udp::v6(), 0), lazy);
     (void)i13;
     int i14 = socket1.async_send_to(null_buffers(),
-        ip::udp::endpoint(ip::udp::v6(), 0), lazy);
+        ip::udp::endpoint(ip::udp::v4(), 0), lazy);
     (void)i14;
-    int i15 = socket1.async_send_to(buffer(mutable_char_buffer),
-        ip::udp::endpoint(ip::udp::v4(), 0), in_flags, lazy);
+    int i15 = socket1.async_send_to(null_buffers(),
+        ip::udp::endpoint(ip::udp::v6(), 0), lazy);
     (void)i15;
     int i16 = socket1.async_send_to(buffer(mutable_char_buffer),
-        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, lazy);
-    (void)i16;
-    int i17 = socket1.async_send_to(buffer(const_char_buffer),
         ip::udp::endpoint(ip::udp::v4(), 0), in_flags, lazy);
+    (void)i16;
+    int i17 = socket1.async_send_to(buffer(mutable_char_buffer),
+        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, lazy);
     (void)i17;
     int i18 = socket1.async_send_to(buffer(const_char_buffer),
-        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, lazy);
-    (void)i18;
-    int i19 = socket1.async_send_to(null_buffers(),
         ip::udp::endpoint(ip::udp::v4(), 0), in_flags, lazy);
+    (void)i18;
+    int i19 = socket1.async_send_to(buffer(const_char_buffer),
+        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, lazy);
     (void)i19;
     int i20 = socket1.async_send_to(null_buffers(),
-        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, lazy);
+        ip::udp::endpoint(ip::udp::v4(), 0), in_flags, lazy);
     (void)i20;
+    int i21 = socket1.async_send_to(null_buffers(),
+        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, lazy);
+    (void)i21;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    double d10 = socket1.async_send_to(buffer(mutable_char_buffer),
+        ip::udp::endpoint(ip::udp::v4(), 0), dlazy);
+    (void)d10;
+    double d11 = socket1.async_send_to(buffer(mutable_char_buffer),
+        ip::udp::endpoint(ip::udp::v6(), 0), dlazy);
+    (void)d11;
+    double d12 = socket1.async_send_to(buffer(const_char_buffer),
+        ip::udp::endpoint(ip::udp::v4(), 0), dlazy);
+    (void)d12;
+    double d13 = socket1.async_send_to(buffer(const_char_buffer),
+        ip::udp::endpoint(ip::udp::v6(), 0), dlazy);
+    (void)d13;
+    double d14 = socket1.async_send_to(null_buffers(),
+        ip::udp::endpoint(ip::udp::v4(), 0), dlazy);
+    (void)d14;
+    double d15 = socket1.async_send_to(null_buffers(),
+        ip::udp::endpoint(ip::udp::v6(), 0), dlazy);
+    (void)d15;
+    double d16 = socket1.async_send_to(buffer(mutable_char_buffer),
+        ip::udp::endpoint(ip::udp::v4(), 0), in_flags, dlazy);
+    (void)d16;
+    double d17 = socket1.async_send_to(buffer(mutable_char_buffer),
+        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, dlazy);
+    (void)d17;
+    double d18 = socket1.async_send_to(buffer(const_char_buffer),
+        ip::udp::endpoint(ip::udp::v4(), 0), in_flags, dlazy);
+    (void)d18;
+    double d19 = socket1.async_send_to(buffer(const_char_buffer),
+        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, dlazy);
+    (void)d19;
+    double d20 = socket1.async_send_to(null_buffers(),
+        ip::udp::endpoint(ip::udp::v4(), 0), in_flags, dlazy);
+    (void)d20;
+    double d21 = socket1.async_send_to(null_buffers(),
+        ip::udp::endpoint(ip::udp::v6(), 0), in_flags, dlazy);
+    (void)d21;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
 
     socket1.receive(buffer(mutable_char_buffer));
     socket1.receive(null_buffers());
@@ -342,20 +455,31 @@ void test()
     socket1.receive(buffer(mutable_char_buffer), in_flags, ec);
     socket1.receive(null_buffers(), in_flags, ec);
 
-    socket1.async_receive(buffer(mutable_char_buffer), &receive_handler);
-    socket1.async_receive(null_buffers(), &receive_handler);
+    socket1.async_receive(buffer(mutable_char_buffer), receive_handler());
+    socket1.async_receive(null_buffers(), receive_handler());
     socket1.async_receive(buffer(mutable_char_buffer), in_flags,
-        &receive_handler);
-    socket1.async_receive(null_buffers(), in_flags, &receive_handler);
-    int i21 = socket1.async_receive(buffer(mutable_char_buffer), lazy);
-    (void)i21;
-    int i22 = socket1.async_receive(null_buffers(), lazy);
+        receive_handler());
+    socket1.async_receive(null_buffers(), in_flags, receive_handler());
+    int i22 = socket1.async_receive(buffer(mutable_char_buffer), lazy);
     (void)i22;
-    int i23 = socket1.async_receive(buffer(mutable_char_buffer),
-        in_flags, lazy);
+    int i23 = socket1.async_receive(null_buffers(), lazy);
     (void)i23;
-    int i24 = socket1.async_receive(null_buffers(), in_flags, lazy);
+    int i24 = socket1.async_receive(buffer(mutable_char_buffer),
+        in_flags, lazy);
     (void)i24;
+    int i25 = socket1.async_receive(null_buffers(), in_flags, lazy);
+    (void)i25;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    double d22 = socket1.async_receive(buffer(mutable_char_buffer), dlazy);
+    (void)d22;
+    double d23 = socket1.async_receive(null_buffers(), dlazy);
+    (void)d23;
+    double d24 = socket1.async_receive(buffer(mutable_char_buffer),
+        in_flags, dlazy);
+    (void)d24;
+    double d25 = socket1.async_receive(null_buffers(), in_flags, dlazy);
+    (void)d25;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
 
     ip::udp::endpoint endpoint;
     socket1.receive_from(buffer(mutable_char_buffer), endpoint);
@@ -366,25 +490,39 @@ void test()
     socket1.receive_from(null_buffers(), endpoint, in_flags, ec);
 
     socket1.async_receive_from(buffer(mutable_char_buffer),
-        endpoint, &receive_handler);
+        endpoint, receive_handler());
     socket1.async_receive_from(null_buffers(),
-        endpoint, &receive_handler);
+        endpoint, receive_handler());
     socket1.async_receive_from(buffer(mutable_char_buffer),
-        endpoint, in_flags, &receive_handler);
+        endpoint, in_flags, receive_handler());
     socket1.async_receive_from(null_buffers(),
-        endpoint, in_flags, &receive_handler);
-    int i25 = socket1.async_receive_from(buffer(mutable_char_buffer),
-        endpoint, lazy);
-    (void)i25;
-    int i26 = socket1.async_receive_from(null_buffers(),
+        endpoint, in_flags, receive_handler());
+    int i26 = socket1.async_receive_from(buffer(mutable_char_buffer),
         endpoint, lazy);
     (void)i26;
-    int i27 = socket1.async_receive_from(buffer(mutable_char_buffer),
-        endpoint, in_flags, lazy);
+    int i27 = socket1.async_receive_from(null_buffers(),
+        endpoint, lazy);
     (void)i27;
-    int i28 = socket1.async_receive_from(null_buffers(),
+    int i28 = socket1.async_receive_from(buffer(mutable_char_buffer),
         endpoint, in_flags, lazy);
     (void)i28;
+    int i29 = socket1.async_receive_from(null_buffers(),
+        endpoint, in_flags, lazy);
+    (void)i29;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    double d26 = socket1.async_receive_from(buffer(mutable_char_buffer),
+        endpoint, dlazy);
+    (void)d26;
+    double d27 = socket1.async_receive_from(null_buffers(),
+        endpoint, dlazy);
+    (void)d27;
+    double d28 = socket1.async_receive_from(buffer(mutable_char_buffer),
+        endpoint, in_flags, dlazy);
+    (void)d28;
+    double d29 = socket1.async_receive_from(null_buffers(),
+        endpoint, in_flags, dlazy);
+    (void)d29;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
   }
   catch (std::exception&)
   {
@@ -429,13 +567,13 @@ void test()
   using std::placeholders::_2;
 #endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
 
-  io_service ios;
+  io_context ioc;
 
-  ip::udp::socket s1(ios, ip::udp::endpoint(ip::udp::v4(), 0));
+  ip::udp::socket s1(ioc, ip::udp::endpoint(ip::udp::v4(), 0));
   ip::udp::endpoint target_endpoint = s1.local_endpoint();
   target_endpoint.address(ip::address_v4::loopback());
 
-  ip::udp::socket s2(ios);
+  ip::udp::socket s2(ioc);
   s2.open(ip::udp::v4());
   s2.bind(ip::udp::endpoint(ip::udp::v4(), 0));
   char send_msg[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
@@ -457,7 +595,7 @@ void test()
   s2.async_receive_from(buffer(recv_msg, sizeof(recv_msg)), sender_endpoint,
       bindns::bind(handle_recv, sizeof(recv_msg), _1, _2));
 
-  ios.run();
+  ioc.run();
 
   BOOST_ASIO_CHECK(memcmp(send_msg, recv_msg, sizeof(send_msg)) == 0);
 }
@@ -473,10 +611,17 @@ void test()
 
 namespace ip_udp_resolver_compile {
 
-void resolve_handler(const boost::system::error_code&,
-    boost::asio::ip::udp::resolver::iterator)
+struct resolve_handler
 {
-}
+  resolve_handler() {}
+  void operator()(const boost::system::error_code&,
+      boost::asio::ip::udp::resolver::results_type) {}
+#if defined(BOOST_ASIO_HAS_MOVE)
+  resolve_handler(resolve_handler&&) {}
+private:
+  resolve_handler(const resolve_handler&);
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+};
 
 void test()
 {
@@ -485,44 +630,143 @@ void test()
 
   try
   {
-    io_service ios;
+    io_context ioc;
     archetypes::lazy_handler lazy;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    archetypes::deprecated_lazy_handler dlazy;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
     boost::system::error_code ec;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
     ip::udp::resolver::query q(ip::udp::v4(), "localhost", "0");
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
     ip::udp::endpoint e(ip::address_v4::loopback(), 0);
 
     // basic_resolver constructors.
 
-    ip::udp::resolver resolver(ios);
+    ip::udp::resolver resolver(ioc);
+
+#if defined(BOOST_ASIO_HAS_MOVE)
+    ip::udp::resolver resolver2(std::move(resolver));
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+
+    // basic_resolver operators.
+
+#if defined(BOOST_ASIO_HAS_MOVE)
+    resolver = ip::udp::resolver(ioc);
+    resolver = std::move(resolver2);
+#endif // defined(BOOST_ASIO_HAS_MOVE)
 
     // basic_io_object functions.
 
-    io_service& ios_ref = resolver.get_io_service();
-    (void)ios_ref;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    io_context& ioc_ref = resolver.get_io_context();
+    (void)ioc_ref;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
+
+    ip::udp::resolver::executor_type ex = resolver.get_executor();
+    (void)ex;
 
     // basic_resolver functions.
 
     resolver.cancel();
 
-    ip::udp::resolver::iterator iter1 = resolver.resolve(q);
-    (void)iter1;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    ip::udp::resolver::results_type results1 = resolver.resolve(q);
+    (void)results1;
+
+    ip::udp::resolver::results_type results2 = resolver.resolve(q, ec);
+    (void)results2;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
+
+    ip::udp::resolver::results_type results3 = resolver.resolve("", "");
+    (void)results3;
 
-    ip::udp::resolver::iterator iter2 = resolver.resolve(q, ec);
-    (void)iter2;
+    ip::udp::resolver::results_type results4 = resolver.resolve("", "", ec);
+    (void)results4;
 
-    ip::udp::resolver::iterator iter3 = resolver.resolve(e);
-    (void)iter3;
+    ip::udp::resolver::results_type results5 =
+      resolver.resolve("", "", ip::udp::resolver::flags());
+    (void)results5;
 
-    ip::udp::resolver::iterator iter4 = resolver.resolve(e, ec);
-    (void)iter4;
+    ip::udp::resolver::results_type results6 =
+      resolver.resolve("", "", ip::udp::resolver::flags(), ec);
+    (void)results6;
 
-    resolver.async_resolve(q, &resolve_handler);
+    ip::udp::resolver::results_type results7 =
+      resolver.resolve(ip::udp::v4(), "", "");
+    (void)results7;
+
+    ip::udp::resolver::results_type results8 =
+      resolver.resolve(ip::udp::v4(), "", "", ec);
+    (void)results8;
+
+    ip::udp::resolver::results_type results9 =
+      resolver.resolve(ip::udp::v4(), "", "", ip::udp::resolver::flags());
+    (void)results9;
+
+    ip::udp::resolver::results_type results10 =
+      resolver.resolve(ip::udp::v4(), "", "", ip::udp::resolver::flags(), ec);
+    (void)results10;
+
+    ip::udp::resolver::results_type results11 = resolver.resolve(e);
+    (void)results11;
+
+    ip::udp::resolver::results_type results12 = resolver.resolve(e, ec);
+    (void)results12;
+
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    resolver.async_resolve(q, resolve_handler());
     int i1 = resolver.async_resolve(q, lazy);
     (void)i1;
+    double d1 = resolver.async_resolve(q, dlazy);
+    (void)d1;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
 
-    resolver.async_resolve(e, &resolve_handler);
-    int i2 = resolver.async_resolve(e, lazy);
+    resolver.async_resolve("", "", resolve_handler());
+    int i2 = resolver.async_resolve("", "", lazy);
     (void)i2;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    double d2 = resolver.async_resolve("", "", dlazy);
+    (void)d2;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
+
+    resolver.async_resolve("", "",
+        ip::udp::resolver::flags(), resolve_handler());
+    int i3 = resolver.async_resolve("", "",
+        ip::udp::resolver::flags(), lazy);
+    (void)i3;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    double d3 = resolver.async_resolve("", "",
+        ip::udp::resolver::flags(), dlazy);
+    (void)d3;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
+
+    resolver.async_resolve(ip::udp::v4(), "", "", resolve_handler());
+    int i4 = resolver.async_resolve(ip::udp::v4(), "", "", lazy);
+    (void)i4;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    double d4 = resolver.async_resolve(ip::udp::v4(), "", "", dlazy);
+    (void)d4;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
+
+    resolver.async_resolve(ip::udp::v4(),
+        "", "", ip::udp::resolver::flags(), resolve_handler());
+    int i5 = resolver.async_resolve(ip::udp::v4(),
+        "", "", ip::udp::resolver::flags(), lazy);
+    (void)i5;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    double d5 = resolver.async_resolve(ip::udp::v4(),
+        "", "", ip::udp::resolver::flags(), dlazy);
+    (void)d5;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
+
+    resolver.async_resolve(e, resolve_handler());
+    int i6 = resolver.async_resolve(e, lazy);
+    (void)i6;
+#if !defined(BOOST_ASIO_NO_DEPRECATED)
+    double d6 = resolver.async_resolve(e, dlazy);
+    (void)d6;
+#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
   }
   catch (std::exception&)
   {