diff options
Diffstat (limited to '3rdparty/asio/src/tests')
391 files changed, 9039 insertions, 9740 deletions
diff --git a/3rdparty/asio/src/tests/Makefile.am b/3rdparty/asio/src/tests/Makefile.am index 71616985fb1..04f8a03a4ec 100644 --- a/3rdparty/asio/src/tests/Makefile.am +++ b/3rdparty/asio/src/tests/Makefile.am @@ -12,29 +12,43 @@ endif SUBDIRS = properties check_PROGRAMS = \ + unit/any_completion_executor \ + unit/any_completion_handler \ + unit/any_io_executor \ + unit/append \ + unit/as_tuple \ unit/associated_allocator \ unit/associated_cancellation_slot \ unit/associated_executor \ + unit/associated_immediate_executor \ unit/associator \ unit/async_result \ unit/awaitable \ unit/basic_datagram_socket \ unit/basic_deadline_timer \ + unit/basic_file \ + unit/basic_random_access_file \ unit/basic_raw_socket \ + unit/basic_readable_pipe \ unit/basic_seq_packet_socket \ unit/basic_serial_port \ unit/basic_signal_set \ unit/basic_socket \ unit/basic_socket_acceptor \ + unit/basic_stream_file \ unit/basic_stream_socket \ unit/basic_streambuf \ unit/basic_waitable_timer \ + unit/basic_writable_pipe \ + unit/bind_allocator \ unit/bind_cancellation_slot \ unit/bind_executor \ + unit/bind_immediate_executor \ unit/buffered_read_stream \ unit/buffered_stream \ unit/buffered_write_stream \ unit/buffer \ + unit/buffer_registration \ unit/buffers_iterator \ unit/cancellation_signal \ unit/cancellation_state \ @@ -43,39 +57,29 @@ check_PROGRAMS = \ unit/completion_condition \ unit/compose \ unit/connect \ + unit/connect_pipe \ + unit/consign \ unit/coroutine \ unit/deadline_timer \ unit/defer \ + unit/deferred \ unit/detached \ unit/dispatch \ unit/error \ unit/execution/any_executor \ unit/execution/blocking \ unit/execution/blocking_adaptation \ - unit/execution/bulk_execute \ - unit/execution/bulk_guarantee \ - unit/execution/connect \ unit/execution/context_as \ - unit/execution/execute \ unit/execution/executor \ unit/execution/invocable_archetype \ unit/execution/mapping \ - unit/execution/operation_state \ unit/execution/outstanding_work \ unit/execution/prefer_only \ - unit/execution/receiver \ unit/execution/relationship \ - unit/execution/schedule \ - unit/execution/scheduler \ - unit/execution/sender \ - unit/execution/set_done \ - unit/execution/set_error \ - unit/execution/set_value \ - unit/execution/start \ - unit/execution/submit \ unit/execution_context \ unit/executor \ unit/executor_work_guard \ + unit/file_base \ unit/generic/basic_endpoint \ unit/generic/datagram_protocol \ unit/generic/raw_protocol \ @@ -111,6 +115,7 @@ check_PROGRAMS = \ unit/local/basic_endpoint \ unit/local/connect_pair \ unit/local/datagram_protocol \ + unit/local/seq_packet_protocol \ unit/local/stream_protocol \ unit/packaged_task \ unit/placeholders \ @@ -120,17 +125,24 @@ check_PROGRAMS = \ unit/posix/descriptor_base \ unit/posix/stream_descriptor \ unit/post \ + unit/prepend \ + unit/random_access_file \ unit/read \ unit/read_at \ unit/read_until \ + unit/readable_pipe \ + unit/recycling_allocator \ unit/redirect_error \ + unit/registered_buffer \ unit/serial_port \ unit/serial_port_base \ unit/signal_set \ + unit/signal_set_base \ unit/socket_base \ unit/static_thread_pool \ unit/steady_timer \ unit/strand \ + unit/stream_file \ unit/streambuf \ unit/system_context \ unit/system_executor \ @@ -160,6 +172,7 @@ check_PROGRAMS = \ unit/windows/overlapped_ptr \ unit/windows/random_access_handle \ unit/windows/stream_handle \ + unit/writable_pipe \ unit/write \ unit/write_at @@ -173,9 +186,14 @@ noinst_PROGRAMS = \ performance/server endif -if HAVE_CXX14 +if HAVE_CXX11 check_PROGRAMS += \ - unit/experimental/deferred + unit/experimental/basic_channel \ + unit/experimental/basic_concurrent_channel \ + unit/experimental/channel \ + unit/experimental/channel_traits \ + unit/experimental/concurrent_channel \ + unit/experimental/parallel_group endif if HAVE_CXX20 @@ -185,8 +203,12 @@ check_PROGRAMS += \ if HAVE_COROUTINES check_PROGRAMS += \ unit/experimental/awaitable_operators \ + unit/experimental/co_composed \ + unit/experimental/coro/allocator \ unit/experimental/coro/cancel \ + unit/experimental/coro/co_spawn \ unit/experimental/coro/exception \ + unit/experimental/coro/executor \ unit/experimental/coro/partial \ unit/experimental/coro/simple_test \ unit/experimental/coro/stack_test \ @@ -206,29 +228,43 @@ check_PROGRAMS += \ endif TESTS = \ + unit/any_completion_executor \ + unit/any_completion_handler \ + unit/any_io_executor \ + unit/append \ + unit/as_tuple \ unit/associated_allocator \ unit/associated_cancellation_slot \ unit/associated_executor \ + unit/associated_immediate_executor \ unit/associator \ unit/async_result \ unit/awaitable \ unit/basic_datagram_socket \ unit/basic_deadline_timer \ + unit/basic_file \ + unit/basic_random_access_file \ unit/basic_raw_socket \ + unit/basic_readable_pipe \ unit/basic_seq_packet_socket \ unit/basic_serial_port \ unit/basic_signal_set \ unit/basic_socket \ unit/basic_socket_acceptor \ + unit/basic_stream_file \ unit/basic_stream_socket \ unit/basic_streambuf \ unit/basic_waitable_timer \ + unit/basic_writable_pipe \ + unit/bind_allocator \ unit/bind_cancellation_slot \ unit/bind_executor \ + unit/bind_immediate_executor \ unit/buffered_read_stream \ unit/buffered_stream \ unit/buffered_write_stream \ unit/buffer \ + unit/buffer_registration \ unit/buffers_iterator \ unit/cancellation_signal \ unit/cancellation_state \ @@ -237,38 +273,28 @@ TESTS = \ unit/completion_condition \ unit/compose \ unit/connect \ + unit/connect_pipe \ + unit/consign \ unit/deadline_timer \ unit/defer \ + unit/deferred \ unit/detached \ unit/dispatch \ unit/error \ unit/execution/any_executor \ unit/execution/blocking \ unit/execution/blocking_adaptation \ - unit/execution/bulk_execute \ - unit/execution/bulk_guarantee \ - unit/execution/connect \ unit/execution/context_as \ - unit/execution/execute \ unit/execution/executor \ unit/execution/invocable_archetype \ unit/execution/mapping \ - unit/execution/operation_state \ unit/execution/outstanding_work \ unit/execution/prefer_only \ - unit/execution/receiver \ unit/execution/relationship \ - unit/execution/schedule \ - unit/execution/scheduler \ - unit/execution/sender \ - unit/execution/set_done \ - unit/execution/set_error \ - unit/execution/set_value \ - unit/execution/start \ - unit/execution/submit \ unit/execution_context \ unit/executor \ unit/executor_work_guard \ + unit/file_base \ unit/high_resolution_timer \ unit/io_context \ unit/io_context_strand \ @@ -299,6 +325,7 @@ TESTS = \ unit/local/basic_endpoint \ unit/local/connect_pair \ unit/local/datagram_protocol \ + unit/local/seq_packet_protocol \ unit/local/stream_protocol \ unit/packaged_task \ unit/placeholders \ @@ -308,17 +335,24 @@ TESTS = \ unit/posix/descriptor_base \ unit/posix/stream_descriptor \ unit/post \ + unit/prepend \ + unit/random_access_file \ unit/read \ unit/read_at \ unit/read_until \ + unit/readable_pipe \ + unit/recycling_allocator \ unit/redirect_error \ + unit/registered_buffer \ unit/serial_port \ unit/serial_port_base \ unit/signal_set \ + unit/signal_set_base \ unit/socket_base \ unit/static_thread_pool \ unit/steady_timer \ unit/strand \ + unit/stream_file \ unit/streambuf \ unit/system_context \ unit/system_executor \ @@ -348,12 +382,18 @@ TESTS = \ unit/windows/overlapped_ptr \ unit/windows/random_access_handle \ unit/windows/stream_handle \ + unit/writable_pipe \ unit/write \ unit/write_at -if HAVE_CXX14 +if HAVE_CXX11 TESTS += \ - unit/experimental/deferred + unit/experimental/basic_channel \ + unit/experimental/basic_concurrent_channel \ + unit/experimental/channel \ + unit/experimental/channel_traits \ + unit/experimental/concurrent_channel \ + unit/experimental/parallel_group endif if HAVE_CXX20 @@ -363,8 +403,12 @@ TESTS += \ if HAVE_COROUTINES TESTS += \ unit/experimental/awaitable_operators \ + unit/experimental/co_composed \ + unit/experimental/coro/allocator \ unit/experimental/coro/cancel \ + unit/experimental/coro/co_spawn \ unit/experimental/coro/exception \ + unit/experimental/coro/executor \ unit/experimental/coro/partial \ unit/experimental/coro/simple_test \ unit/experimental/coro/stack_test \ @@ -398,26 +442,40 @@ performance_client_SOURCES = performance/client.cpp performance_server_SOURCES = performance/server.cpp endif +unit_any_completion_executor_SOURCES = unit/any_completion_executor.cpp +unit_any_completion_handler_SOURCES = unit/any_completion_handler.cpp +unit_any_io_executor_SOURCES = unit/any_io_executor.cpp +unit_append_SOURCES = unit/append.cpp +unit_as_tuple_SOURCES = unit/as_tuple.cpp unit_associated_allocator_SOURCES = unit/associated_allocator.cpp unit_associated_cancellation_slot_SOURCES = unit/associated_cancellation_slot.cpp unit_associated_executor_SOURCES = unit/associated_executor.cpp +unit_associated_immediate_executor_SOURCES = unit/associated_immediate_executor.cpp unit_associator_SOURCES = unit/associator.cpp unit_async_result_SOURCES = unit/async_result.cpp unit_awaitable_SOURCES = unit/awaitable.cpp unit_basic_datagram_socket_SOURCES = unit/basic_datagram_socket.cpp unit_basic_deadline_timer_SOURCES = unit/basic_deadline_timer.cpp +unit_basic_file_SOURCES = unit/basic_file.cpp +unit_basic_random_access_file_SOURCES = unit/basic_random_access_file.cpp unit_basic_raw_socket_SOURCES = unit/basic_raw_socket.cpp +unit_basic_readable_pipe_SOURCES = unit/basic_readable_pipe.cpp unit_basic_seq_packet_socket_SOURCES = unit/basic_seq_packet_socket.cpp unit_basic_serial_port_SOURCES = unit/basic_serial_port.cpp unit_basic_signal_set_SOURCES = unit/basic_signal_set.cpp unit_basic_socket_SOURCES = unit/basic_socket.cpp unit_basic_socket_acceptor_SOURCES = unit/basic_socket_acceptor.cpp +unit_basic_stream_file_SOURCES = unit/basic_stream_file.cpp unit_basic_stream_socket_SOURCES = unit/basic_stream_socket.cpp unit_basic_streambuf_SOURCES = unit/basic_streambuf.cpp unit_basic_waitable_timer_SOURCES = unit/basic_waitable_timer.cpp +unit_basic_writable_pipe_SOURCES = unit/basic_writable_pipe.cpp +unit_bind_allocator_SOURCES = unit/bind_allocator.cpp unit_bind_cancellation_slot_SOURCES = unit/bind_cancellation_slot.cpp unit_bind_executor_SOURCES = unit/bind_executor.cpp +unit_bind_immediate_executor_SOURCES = unit/bind_immediate_executor.cpp unit_buffer_SOURCES = unit/buffer.cpp +unit_buffer_registration_SOURCES = unit/buffer_registration.cpp unit_buffers_iterator_SOURCES = unit/buffers_iterator.cpp unit_buffered_read_stream_SOURCES = unit/buffered_read_stream.cpp unit_buffered_stream_SOURCES = unit/buffered_stream.cpp @@ -429,39 +487,29 @@ unit_co_spawn_SOURCES = unit/co_spawn.cpp unit_completion_condition_SOURCES = unit/completion_condition.cpp unit_compose_SOURCES = unit/compose.cpp unit_connect_SOURCES = unit/connect.cpp +unit_connect_pipe_SOURCES = unit/connect_pipe.cpp +unit_consign_SOURCES = unit/consign.cpp unit_coroutine_SOURCES = unit/coroutine.cpp unit_deadline_timer_SOURCES = unit/deadline_timer.cpp unit_defer_SOURCES = unit/defer.cpp +unit_deferred_SOURCES = unit/deferred.cpp unit_detached_SOURCES = unit/detached.cpp unit_dispatch_SOURCES = unit/dispatch.cpp unit_error_SOURCES = unit/error.cpp unit_execution_any_executor_SOURCES = unit/execution/any_executor.cpp unit_execution_blocking_SOURCES = unit/execution/blocking.cpp unit_execution_blocking_adaptation_SOURCES = unit/execution/blocking_adaptation.cpp -unit_execution_bulk_execute_SOURCES = unit/execution/bulk_execute.cpp -unit_execution_bulk_guarantee_SOURCES = unit/execution/bulk_guarantee.cpp -unit_execution_connect_SOURCES = unit/execution/connect.cpp unit_execution_context_as_SOURCES = unit/execution/context_as.cpp -unit_execution_execute_SOURCES = unit/execution/execute.cpp unit_execution_executor_SOURCES = unit/execution/executor.cpp unit_execution_invocable_archetype_SOURCES = unit/execution/invocable_archetype.cpp unit_execution_mapping_SOURCES = unit/execution/mapping.cpp unit_execution_outstanding_work_SOURCES = unit/execution/outstanding_work.cpp -unit_execution_operation_state_SOURCES = unit/execution/operation_state.cpp unit_execution_prefer_only_SOURCES = unit/execution/prefer_only.cpp -unit_execution_receiver_SOURCES = unit/execution/receiver.cpp unit_execution_relationship_SOURCES = unit/execution/relationship.cpp -unit_execution_schedule_SOURCES = unit/execution/schedule.cpp -unit_execution_scheduler_SOURCES = unit/execution/scheduler.cpp -unit_execution_sender_SOURCES = unit/execution/sender.cpp -unit_execution_set_done_SOURCES = unit/execution/set_done.cpp -unit_execution_set_error_SOURCES = unit/execution/set_error.cpp -unit_execution_set_value_SOURCES = unit/execution/set_value.cpp -unit_execution_start_SOURCES = unit/execution/start.cpp -unit_execution_submit_SOURCES = unit/execution/submit.cpp unit_execution_context_SOURCES = unit/execution_context.cpp unit_executor_SOURCES = unit/executor.cpp unit_executor_work_guard_SOURCES = unit/executor_work_guard.cpp +unit_file_base_SOURCES = unit/file_base.cpp unit_generic_basic_endpoint_SOURCES = unit/generic/basic_endpoint.cpp unit_generic_datagram_protocol_SOURCES = unit/generic/datagram_protocol.cpp unit_generic_raw_protocol_SOURCES = unit/generic/raw_protocol.cpp @@ -497,6 +545,7 @@ unit_is_write_buffered_SOURCES = unit/is_write_buffered.cpp unit_local_basic_endpoint_SOURCES = unit/local/basic_endpoint.cpp unit_local_connect_pair_SOURCES = unit/local/connect_pair.cpp unit_local_datagram_protocol_SOURCES = unit/local/datagram_protocol.cpp +unit_local_seq_packet_protocol_SOURCES = unit/local/seq_packet_protocol.cpp unit_local_stream_protocol_SOURCES = unit/local/stream_protocol.cpp unit_packaged_task_SOURCES = unit/packaged_task.cpp unit_placeholders_SOURCES = unit/placeholders.cpp @@ -506,17 +555,24 @@ unit_posix_descriptor_SOURCES = unit/posix/descriptor.cpp unit_posix_descriptor_base_SOURCES = unit/posix/descriptor_base.cpp unit_posix_stream_descriptor_SOURCES = unit/posix/stream_descriptor.cpp unit_post_SOURCES = unit/post.cpp +unit_prepend_SOURCES = unit/prepend.cpp +unit_random_access_file_SOURCES = unit/random_access_file.cpp unit_read_SOURCES = unit/read.cpp unit_read_at_SOURCES = unit/read_at.cpp unit_read_until_SOURCES = unit/read_until.cpp +unit_readable_pipe_SOURCES = unit/readable_pipe.cpp +unit_recycling_allocator_SOURCES = unit/recycling_allocator.cpp unit_redirect_error_SOURCES = unit/redirect_error.cpp +unit_registered_buffer_SOURCES = unit/registered_buffer.cpp unit_serial_port_SOURCES = unit/serial_port.cpp unit_serial_port_base_SOURCES = unit/serial_port_base.cpp unit_signal_set_SOURCES = unit/signal_set.cpp +unit_signal_set_base_SOURCES = unit/signal_set_base.cpp unit_socket_base_SOURCES = unit/socket_base.cpp unit_static_thread_pool_SOURCES = unit/static_thread_pool.cpp unit_steady_timer_SOURCES = unit/steady_timer.cpp unit_strand_SOURCES = unit/strand.cpp +unit_stream_file_SOURCES = unit/stream_file.cpp unit_streambuf_SOURCES = unit/streambuf.cpp unit_system_context_SOURCES = unit/system_context.cpp unit_system_executor_SOURCES = unit/system_executor.cpp @@ -546,11 +602,17 @@ unit_windows_overlapped_handle_SOURCES = unit/windows/overlapped_handle.cpp unit_windows_overlapped_ptr_SOURCES = unit/windows/overlapped_ptr.cpp unit_windows_random_access_handle_SOURCES = unit/windows/random_access_handle.cpp unit_windows_stream_handle_SOURCES = unit/windows/stream_handle.cpp +unit_writable_pipe_SOURCES = unit/writable_pipe.cpp unit_write_SOURCES = unit/write.cpp unit_write_at_SOURCES = unit/write_at.cpp -if HAVE_CXX14 -unit_experimental_deferred_SOURCES = unit/experimental/deferred.cpp +if HAVE_CXX11 +unit_experimental_basic_channel_SOURCES = unit/experimental/basic_channel.cpp +unit_experimental_basic_concurrent_channel_SOURCES = unit/experimental/basic_concurrent_channel.cpp +unit_experimental_channel_SOURCES = unit/experimental/channel.cpp +unit_experimental_channel_traits_SOURCES = unit/experimental/channel_traits.cpp +unit_experimental_concurrent_channel_SOURCES = unit/experimental/concurrent_channel.cpp +unit_experimental_parallel_group_SOURCES = unit/experimental/parallel_group.cpp endif if HAVE_CXX20 @@ -558,8 +620,12 @@ unit_experimental_promise_SOURCES = unit/experimental/promise.cpp if HAVE_COROUTINES unit_experimental_awaitable_operators_SOURCES = unit/experimental/awaitable_operators.cpp +unit_experimental_co_composed_SOURCES = unit/experimental/co_composed.cpp +unit_experimental_coro_allocator_SOURCES = unit/experimental/coro/allocator.cpp unit_experimental_coro_cancel_SOURCES = unit/experimental/coro/cancel.cpp +unit_experimental_coro_co_spawn_SOURCES = unit/experimental/coro/co_spawn.cpp unit_experimental_coro_exception_SOURCES = unit/experimental/coro/exception.cpp +unit_experimental_coro_executor_SOURCES = unit/experimental/coro/executor.cpp unit_experimental_coro_partial_SOURCES = unit/experimental/coro/partial.cpp unit_experimental_coro_simple_test_SOURCES = unit/experimental/coro/simple_test.cpp unit_experimental_coro_stack_test_SOURCES = unit/experimental/coro/stack_test.cpp diff --git a/3rdparty/asio/src/tests/Makefile.in b/3rdparty/asio/src/tests/Makefile.in index 792e3875566..a88bd89fec5 100644 --- a/3rdparty/asio/src/tests/Makefile.in +++ b/3rdparty/asio/src/tests/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -91,56 +91,56 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__append_1 = ../asio_ssl.cpp -check_PROGRAMS = unit/associated_allocator$(EXEEXT) \ +check_PROGRAMS = unit/any_completion_executor$(EXEEXT) \ + unit/any_completion_handler$(EXEEXT) \ + unit/any_io_executor$(EXEEXT) unit/append$(EXEEXT) \ + unit/as_tuple$(EXEEXT) unit/associated_allocator$(EXEEXT) \ unit/associated_cancellation_slot$(EXEEXT) \ - unit/associated_executor$(EXEEXT) unit/associator$(EXEEXT) \ - unit/async_result$(EXEEXT) unit/awaitable$(EXEEXT) \ - unit/basic_datagram_socket$(EXEEXT) \ - unit/basic_deadline_timer$(EXEEXT) \ + unit/associated_executor$(EXEEXT) \ + unit/associated_immediate_executor$(EXEEXT) \ + unit/associator$(EXEEXT) unit/async_result$(EXEEXT) \ + unit/awaitable$(EXEEXT) unit/basic_datagram_socket$(EXEEXT) \ + unit/basic_deadline_timer$(EXEEXT) unit/basic_file$(EXEEXT) \ + unit/basic_random_access_file$(EXEEXT) \ unit/basic_raw_socket$(EXEEXT) \ + unit/basic_readable_pipe$(EXEEXT) \ unit/basic_seq_packet_socket$(EXEEXT) \ unit/basic_serial_port$(EXEEXT) unit/basic_signal_set$(EXEEXT) \ unit/basic_socket$(EXEEXT) unit/basic_socket_acceptor$(EXEEXT) \ + unit/basic_stream_file$(EXEEXT) \ unit/basic_stream_socket$(EXEEXT) \ unit/basic_streambuf$(EXEEXT) \ unit/basic_waitable_timer$(EXEEXT) \ + unit/basic_writable_pipe$(EXEEXT) unit/bind_allocator$(EXEEXT) \ unit/bind_cancellation_slot$(EXEEXT) \ - unit/bind_executor$(EXEEXT) unit/buffered_read_stream$(EXEEXT) \ + unit/bind_executor$(EXEEXT) \ + unit/bind_immediate_executor$(EXEEXT) \ + unit/buffered_read_stream$(EXEEXT) \ unit/buffered_stream$(EXEEXT) \ unit/buffered_write_stream$(EXEEXT) unit/buffer$(EXEEXT) \ + unit/buffer_registration$(EXEEXT) \ unit/buffers_iterator$(EXEEXT) \ unit/cancellation_signal$(EXEEXT) \ unit/cancellation_state$(EXEEXT) \ unit/cancellation_type$(EXEEXT) unit/co_spawn$(EXEEXT) \ unit/completion_condition$(EXEEXT) unit/compose$(EXEEXT) \ - unit/connect$(EXEEXT) unit/coroutine$(EXEEXT) \ + unit/connect$(EXEEXT) unit/connect_pipe$(EXEEXT) \ + unit/consign$(EXEEXT) unit/coroutine$(EXEEXT) \ unit/deadline_timer$(EXEEXT) unit/defer$(EXEEXT) \ - unit/detached$(EXEEXT) unit/dispatch$(EXEEXT) \ - unit/error$(EXEEXT) unit/execution/any_executor$(EXEEXT) \ + unit/deferred$(EXEEXT) unit/detached$(EXEEXT) \ + unit/dispatch$(EXEEXT) unit/error$(EXEEXT) \ + unit/execution/any_executor$(EXEEXT) \ unit/execution/blocking$(EXEEXT) \ unit/execution/blocking_adaptation$(EXEEXT) \ - unit/execution/bulk_execute$(EXEEXT) \ - unit/execution/bulk_guarantee$(EXEEXT) \ - unit/execution/connect$(EXEEXT) \ unit/execution/context_as$(EXEEXT) \ - unit/execution/execute$(EXEEXT) \ unit/execution/executor$(EXEEXT) \ unit/execution/invocable_archetype$(EXEEXT) \ unit/execution/mapping$(EXEEXT) \ - unit/execution/operation_state$(EXEEXT) \ unit/execution/outstanding_work$(EXEEXT) \ unit/execution/prefer_only$(EXEEXT) \ - unit/execution/receiver$(EXEEXT) \ unit/execution/relationship$(EXEEXT) \ - unit/execution/schedule$(EXEEXT) \ - unit/execution/scheduler$(EXEEXT) \ - unit/execution/sender$(EXEEXT) \ - unit/execution/set_done$(EXEEXT) \ - unit/execution/set_error$(EXEEXT) \ - unit/execution/set_value$(EXEEXT) \ - unit/execution/start$(EXEEXT) unit/execution/submit$(EXEEXT) \ unit/execution_context$(EXEEXT) unit/executor$(EXEEXT) \ - unit/executor_work_guard$(EXEEXT) \ + unit/executor_work_guard$(EXEEXT) unit/file_base$(EXEEXT) \ unit/generic/basic_endpoint$(EXEEXT) \ unit/generic/datagram_protocol$(EXEEXT) \ unit/generic/raw_protocol$(EXEEXT) \ @@ -168,6 +168,7 @@ check_PROGRAMS = unit/associated_allocator$(EXEEXT) \ unit/local/basic_endpoint$(EXEEXT) \ unit/local/connect_pair$(EXEEXT) \ unit/local/datagram_protocol$(EXEEXT) \ + unit/local/seq_packet_protocol$(EXEEXT) \ unit/local/stream_protocol$(EXEEXT) \ unit/packaged_task$(EXEEXT) unit/placeholders$(EXEEXT) \ unit/posix/basic_descriptor$(EXEEXT) \ @@ -175,22 +176,25 @@ check_PROGRAMS = unit/associated_allocator$(EXEEXT) \ unit/posix/descriptor$(EXEEXT) \ unit/posix/descriptor_base$(EXEEXT) \ unit/posix/stream_descriptor$(EXEEXT) unit/post$(EXEEXT) \ + unit/prepend$(EXEEXT) unit/random_access_file$(EXEEXT) \ unit/read$(EXEEXT) unit/read_at$(EXEEXT) \ - unit/read_until$(EXEEXT) unit/redirect_error$(EXEEXT) \ - unit/serial_port$(EXEEXT) unit/serial_port_base$(EXEEXT) \ - unit/signal_set$(EXEEXT) unit/socket_base$(EXEEXT) \ + unit/read_until$(EXEEXT) unit/readable_pipe$(EXEEXT) \ + unit/recycling_allocator$(EXEEXT) unit/redirect_error$(EXEEXT) \ + unit/registered_buffer$(EXEEXT) unit/serial_port$(EXEEXT) \ + unit/serial_port_base$(EXEEXT) unit/signal_set$(EXEEXT) \ + unit/signal_set_base$(EXEEXT) unit/socket_base$(EXEEXT) \ unit/static_thread_pool$(EXEEXT) unit/steady_timer$(EXEEXT) \ - unit/strand$(EXEEXT) unit/streambuf$(EXEEXT) \ - unit/system_context$(EXEEXT) unit/system_executor$(EXEEXT) \ - unit/system_timer$(EXEEXT) unit/this_coro$(EXEEXT) \ - unit/thread$(EXEEXT) unit/thread_pool$(EXEEXT) \ - unit/time_traits$(EXEEXT) unit/ts/buffer$(EXEEXT) \ - unit/ts/executor$(EXEEXT) unit/ts/internet$(EXEEXT) \ - unit/ts/io_context$(EXEEXT) unit/ts/net$(EXEEXT) \ - unit/ts/netfwd$(EXEEXT) unit/ts/socket$(EXEEXT) \ - unit/ts/timer$(EXEEXT) unit/use_awaitable$(EXEEXT) \ - unit/use_future$(EXEEXT) unit/uses_executor$(EXEEXT) \ - unit/wait_traits$(EXEEXT) \ + unit/strand$(EXEEXT) unit/stream_file$(EXEEXT) \ + unit/streambuf$(EXEEXT) unit/system_context$(EXEEXT) \ + unit/system_executor$(EXEEXT) unit/system_timer$(EXEEXT) \ + unit/this_coro$(EXEEXT) unit/thread$(EXEEXT) \ + unit/thread_pool$(EXEEXT) unit/time_traits$(EXEEXT) \ + unit/ts/buffer$(EXEEXT) unit/ts/executor$(EXEEXT) \ + unit/ts/internet$(EXEEXT) unit/ts/io_context$(EXEEXT) \ + unit/ts/net$(EXEEXT) unit/ts/netfwd$(EXEEXT) \ + unit/ts/socket$(EXEEXT) unit/ts/timer$(EXEEXT) \ + unit/use_awaitable$(EXEEXT) unit/use_future$(EXEEXT) \ + unit/uses_executor$(EXEEXT) unit/wait_traits$(EXEEXT) \ unit/windows/basic_object_handle$(EXEEXT) \ unit/windows/basic_overlapped_handle$(EXEEXT) \ unit/windows/basic_random_access_handle$(EXEEXT) \ @@ -199,7 +203,8 @@ check_PROGRAMS = unit/associated_allocator$(EXEEXT) \ unit/windows/overlapped_handle$(EXEEXT) \ unit/windows/overlapped_ptr$(EXEEXT) \ unit/windows/random_access_handle$(EXEEXT) \ - unit/windows/stream_handle$(EXEEXT) unit/write$(EXEEXT) \ + unit/windows/stream_handle$(EXEEXT) \ + unit/writable_pipe$(EXEEXT) unit/write$(EXEEXT) \ unit/write_at$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \ $(am__EXEEXT_3) $(am__EXEEXT_4) @STANDALONE_FALSE@noinst_PROGRAMS = latency/tcp_client$(EXEEXT) \ @@ -208,16 +213,25 @@ check_PROGRAMS = unit/associated_allocator$(EXEEXT) \ @STANDALONE_FALSE@ latency/udp_server$(EXEEXT) \ @STANDALONE_FALSE@ performance/client$(EXEEXT) \ @STANDALONE_FALSE@ performance/server$(EXEEXT) -@HAVE_CXX14_TRUE@am__append_2 = \ -@HAVE_CXX14_TRUE@ unit/experimental/deferred +@HAVE_CXX11_TRUE@am__append_2 = \ +@HAVE_CXX11_TRUE@ unit/experimental/basic_channel \ +@HAVE_CXX11_TRUE@ unit/experimental/basic_concurrent_channel \ +@HAVE_CXX11_TRUE@ unit/experimental/channel \ +@HAVE_CXX11_TRUE@ unit/experimental/channel_traits \ +@HAVE_CXX11_TRUE@ unit/experimental/concurrent_channel \ +@HAVE_CXX11_TRUE@ unit/experimental/parallel_group @HAVE_CXX20_TRUE@am__append_3 = \ @HAVE_CXX20_TRUE@ unit/experimental/promise @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am__append_4 = \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/awaitable_operators \ +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/co_composed \ +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/allocator \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/cancel \ +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/co_spawn \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/exception \ +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/executor \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/partial \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/simple_test \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/stack_test \ @@ -232,56 +246,55 @@ check_PROGRAMS = unit/associated_allocator$(EXEEXT) \ @HAVE_OPENSSL_TRUE@ unit/ssl/stream_base \ @HAVE_OPENSSL_TRUE@ unit/ssl/stream -TESTS = unit/associated_allocator$(EXEEXT) \ +TESTS = unit/any_completion_executor$(EXEEXT) \ + unit/any_completion_handler$(EXEEXT) \ + unit/any_io_executor$(EXEEXT) unit/append$(EXEEXT) \ + unit/as_tuple$(EXEEXT) unit/associated_allocator$(EXEEXT) \ unit/associated_cancellation_slot$(EXEEXT) \ - unit/associated_executor$(EXEEXT) unit/associator$(EXEEXT) \ - unit/async_result$(EXEEXT) unit/awaitable$(EXEEXT) \ - unit/basic_datagram_socket$(EXEEXT) \ - unit/basic_deadline_timer$(EXEEXT) \ + unit/associated_executor$(EXEEXT) \ + unit/associated_immediate_executor$(EXEEXT) \ + unit/associator$(EXEEXT) unit/async_result$(EXEEXT) \ + unit/awaitable$(EXEEXT) unit/basic_datagram_socket$(EXEEXT) \ + unit/basic_deadline_timer$(EXEEXT) unit/basic_file$(EXEEXT) \ + unit/basic_random_access_file$(EXEEXT) \ unit/basic_raw_socket$(EXEEXT) \ + unit/basic_readable_pipe$(EXEEXT) \ unit/basic_seq_packet_socket$(EXEEXT) \ unit/basic_serial_port$(EXEEXT) unit/basic_signal_set$(EXEEXT) \ unit/basic_socket$(EXEEXT) unit/basic_socket_acceptor$(EXEEXT) \ + unit/basic_stream_file$(EXEEXT) \ unit/basic_stream_socket$(EXEEXT) \ unit/basic_streambuf$(EXEEXT) \ unit/basic_waitable_timer$(EXEEXT) \ + unit/basic_writable_pipe$(EXEEXT) unit/bind_allocator$(EXEEXT) \ unit/bind_cancellation_slot$(EXEEXT) \ - unit/bind_executor$(EXEEXT) unit/buffered_read_stream$(EXEEXT) \ + unit/bind_executor$(EXEEXT) \ + unit/bind_immediate_executor$(EXEEXT) \ + unit/buffered_read_stream$(EXEEXT) \ unit/buffered_stream$(EXEEXT) \ unit/buffered_write_stream$(EXEEXT) unit/buffer$(EXEEXT) \ + unit/buffer_registration$(EXEEXT) \ unit/buffers_iterator$(EXEEXT) \ unit/cancellation_signal$(EXEEXT) \ unit/cancellation_state$(EXEEXT) \ unit/cancellation_type$(EXEEXT) unit/co_spawn$(EXEEXT) \ unit/completion_condition$(EXEEXT) unit/compose$(EXEEXT) \ - unit/connect$(EXEEXT) unit/deadline_timer$(EXEEXT) \ - unit/defer$(EXEEXT) unit/detached$(EXEEXT) \ - unit/dispatch$(EXEEXT) unit/error$(EXEEXT) \ - unit/execution/any_executor$(EXEEXT) \ + unit/connect$(EXEEXT) unit/connect_pipe$(EXEEXT) \ + unit/consign$(EXEEXT) unit/deadline_timer$(EXEEXT) \ + unit/defer$(EXEEXT) unit/deferred$(EXEEXT) \ + unit/detached$(EXEEXT) unit/dispatch$(EXEEXT) \ + unit/error$(EXEEXT) unit/execution/any_executor$(EXEEXT) \ unit/execution/blocking$(EXEEXT) \ unit/execution/blocking_adaptation$(EXEEXT) \ - unit/execution/bulk_execute$(EXEEXT) \ - unit/execution/bulk_guarantee$(EXEEXT) \ - unit/execution/connect$(EXEEXT) \ unit/execution/context_as$(EXEEXT) \ - unit/execution/execute$(EXEEXT) \ unit/execution/executor$(EXEEXT) \ unit/execution/invocable_archetype$(EXEEXT) \ unit/execution/mapping$(EXEEXT) \ - unit/execution/operation_state$(EXEEXT) \ unit/execution/outstanding_work$(EXEEXT) \ unit/execution/prefer_only$(EXEEXT) \ - unit/execution/receiver$(EXEEXT) \ unit/execution/relationship$(EXEEXT) \ - unit/execution/schedule$(EXEEXT) \ - unit/execution/scheduler$(EXEEXT) \ - unit/execution/sender$(EXEEXT) \ - unit/execution/set_done$(EXEEXT) \ - unit/execution/set_error$(EXEEXT) \ - unit/execution/set_value$(EXEEXT) \ - unit/execution/start$(EXEEXT) unit/execution/submit$(EXEEXT) \ unit/execution_context$(EXEEXT) unit/executor$(EXEEXT) \ - unit/executor_work_guard$(EXEEXT) \ + unit/executor_work_guard$(EXEEXT) unit/file_base$(EXEEXT) \ unit/high_resolution_timer$(EXEEXT) unit/io_context$(EXEEXT) \ unit/io_context_strand$(EXEEXT) unit/ip/address$(EXEEXT) \ unit/ip/address_v4$(EXEEXT) \ @@ -304,6 +317,7 @@ TESTS = unit/associated_allocator$(EXEEXT) \ unit/local/basic_endpoint$(EXEEXT) \ unit/local/connect_pair$(EXEEXT) \ unit/local/datagram_protocol$(EXEEXT) \ + unit/local/seq_packet_protocol$(EXEEXT) \ unit/local/stream_protocol$(EXEEXT) \ unit/packaged_task$(EXEEXT) unit/placeholders$(EXEEXT) \ unit/posix/basic_descriptor$(EXEEXT) \ @@ -311,22 +325,25 @@ TESTS = unit/associated_allocator$(EXEEXT) \ unit/posix/descriptor$(EXEEXT) \ unit/posix/descriptor_base$(EXEEXT) \ unit/posix/stream_descriptor$(EXEEXT) unit/post$(EXEEXT) \ + unit/prepend$(EXEEXT) unit/random_access_file$(EXEEXT) \ unit/read$(EXEEXT) unit/read_at$(EXEEXT) \ - unit/read_until$(EXEEXT) unit/redirect_error$(EXEEXT) \ - unit/serial_port$(EXEEXT) unit/serial_port_base$(EXEEXT) \ - unit/signal_set$(EXEEXT) unit/socket_base$(EXEEXT) \ + unit/read_until$(EXEEXT) unit/readable_pipe$(EXEEXT) \ + unit/recycling_allocator$(EXEEXT) unit/redirect_error$(EXEEXT) \ + unit/registered_buffer$(EXEEXT) unit/serial_port$(EXEEXT) \ + unit/serial_port_base$(EXEEXT) unit/signal_set$(EXEEXT) \ + unit/signal_set_base$(EXEEXT) unit/socket_base$(EXEEXT) \ unit/static_thread_pool$(EXEEXT) unit/steady_timer$(EXEEXT) \ - unit/strand$(EXEEXT) unit/streambuf$(EXEEXT) \ - unit/system_context$(EXEEXT) unit/system_executor$(EXEEXT) \ - unit/system_timer$(EXEEXT) unit/this_coro$(EXEEXT) \ - unit/thread$(EXEEXT) unit/thread_pool$(EXEEXT) \ - unit/time_traits$(EXEEXT) unit/ts/buffer$(EXEEXT) \ - unit/ts/executor$(EXEEXT) unit/ts/internet$(EXEEXT) \ - unit/ts/io_context$(EXEEXT) unit/ts/net$(EXEEXT) \ - unit/ts/netfwd$(EXEEXT) unit/ts/socket$(EXEEXT) \ - unit/ts/timer$(EXEEXT) unit/use_awaitable$(EXEEXT) \ - unit/use_future$(EXEEXT) unit/uses_executor$(EXEEXT) \ - unit/wait_traits$(EXEEXT) \ + unit/strand$(EXEEXT) unit/stream_file$(EXEEXT) \ + unit/streambuf$(EXEEXT) unit/system_context$(EXEEXT) \ + unit/system_executor$(EXEEXT) unit/system_timer$(EXEEXT) \ + unit/this_coro$(EXEEXT) unit/thread$(EXEEXT) \ + unit/thread_pool$(EXEEXT) unit/time_traits$(EXEEXT) \ + unit/ts/buffer$(EXEEXT) unit/ts/executor$(EXEEXT) \ + unit/ts/internet$(EXEEXT) unit/ts/io_context$(EXEEXT) \ + unit/ts/net$(EXEEXT) unit/ts/netfwd$(EXEEXT) \ + unit/ts/socket$(EXEEXT) unit/ts/timer$(EXEEXT) \ + unit/use_awaitable$(EXEEXT) unit/use_future$(EXEEXT) \ + unit/uses_executor$(EXEEXT) unit/wait_traits$(EXEEXT) \ unit/windows/basic_object_handle$(EXEEXT) \ unit/windows/basic_overlapped_handle$(EXEEXT) \ unit/windows/basic_random_access_handle$(EXEEXT) \ @@ -335,19 +352,29 @@ TESTS = unit/associated_allocator$(EXEEXT) \ unit/windows/overlapped_handle$(EXEEXT) \ unit/windows/overlapped_ptr$(EXEEXT) \ unit/windows/random_access_handle$(EXEEXT) \ - unit/windows/stream_handle$(EXEEXT) unit/write$(EXEEXT) \ + unit/windows/stream_handle$(EXEEXT) \ + unit/writable_pipe$(EXEEXT) unit/write$(EXEEXT) \ unit/write_at$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \ $(am__EXEEXT_3) $(am__EXEEXT_4) -@HAVE_CXX14_TRUE@am__append_6 = \ -@HAVE_CXX14_TRUE@ unit/experimental/deferred +@HAVE_CXX11_TRUE@am__append_6 = \ +@HAVE_CXX11_TRUE@ unit/experimental/basic_channel \ +@HAVE_CXX11_TRUE@ unit/experimental/basic_concurrent_channel \ +@HAVE_CXX11_TRUE@ unit/experimental/channel \ +@HAVE_CXX11_TRUE@ unit/experimental/channel_traits \ +@HAVE_CXX11_TRUE@ unit/experimental/concurrent_channel \ +@HAVE_CXX11_TRUE@ unit/experimental/parallel_group @HAVE_CXX20_TRUE@am__append_7 = \ @HAVE_CXX20_TRUE@ unit/experimental/promise @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am__append_8 = \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/awaitable_operators \ +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/co_composed \ +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/allocator \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/cancel \ +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/co_spawn \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/exception \ +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/executor \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/partial \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/simple_test \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/stack_test \ @@ -372,11 +399,21 @@ DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -@HAVE_CXX14_TRUE@am__EXEEXT_1 = unit/experimental/deferred$(EXEEXT) +@HAVE_CXX11_TRUE@am__EXEEXT_1 = \ +@HAVE_CXX11_TRUE@ unit/experimental/basic_channel$(EXEEXT) \ +@HAVE_CXX11_TRUE@ unit/experimental/basic_concurrent_channel$(EXEEXT) \ +@HAVE_CXX11_TRUE@ unit/experimental/channel$(EXEEXT) \ +@HAVE_CXX11_TRUE@ unit/experimental/channel_traits$(EXEEXT) \ +@HAVE_CXX11_TRUE@ unit/experimental/concurrent_channel$(EXEEXT) \ +@HAVE_CXX11_TRUE@ unit/experimental/parallel_group$(EXEEXT) @HAVE_CXX20_TRUE@am__EXEEXT_2 = unit/experimental/promise$(EXEEXT) @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am__EXEEXT_3 = unit/experimental/awaitable_operators$(EXEEXT) \ +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/co_composed$(EXEEXT) \ +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/allocator$(EXEEXT) \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/cancel$(EXEEXT) \ +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/co_spawn$(EXEEXT) \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/exception$(EXEEXT) \ +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/executor$(EXEEXT) \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/partial$(EXEEXT) \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/simple_test$(EXEEXT) \ @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/stack_test$(EXEEXT) \ @@ -446,6 +483,33 @@ performance_server_OBJECTS = $(am_performance_server_OBJECTS) performance_server_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@performance_server_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_any_completion_executor_OBJECTS = \ + unit/any_completion_executor.$(OBJEXT) +unit_any_completion_executor_OBJECTS = \ + $(am_unit_any_completion_executor_OBJECTS) +unit_any_completion_executor_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_any_completion_executor_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_any_completion_handler_OBJECTS = \ + unit/any_completion_handler.$(OBJEXT) +unit_any_completion_handler_OBJECTS = \ + $(am_unit_any_completion_handler_OBJECTS) +unit_any_completion_handler_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_any_completion_handler_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_any_io_executor_OBJECTS = unit/any_io_executor.$(OBJEXT) +unit_any_io_executor_OBJECTS = $(am_unit_any_io_executor_OBJECTS) +unit_any_io_executor_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_any_io_executor_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_append_OBJECTS = unit/append.$(OBJEXT) +unit_append_OBJECTS = $(am_unit_append_OBJECTS) +unit_append_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_append_DEPENDENCIES = libasio.a +am_unit_as_tuple_OBJECTS = unit/as_tuple.$(OBJEXT) +unit_as_tuple_OBJECTS = $(am_unit_as_tuple_OBJECTS) +unit_as_tuple_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_as_tuple_DEPENDENCIES = libasio.a am_unit_associated_allocator_OBJECTS = \ unit/associated_allocator.$(OBJEXT) unit_associated_allocator_OBJECTS = \ @@ -467,6 +531,13 @@ unit_associated_executor_OBJECTS = \ unit_associated_executor_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_associated_executor_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_associated_immediate_executor_OBJECTS = \ + unit/associated_immediate_executor.$(OBJEXT) +unit_associated_immediate_executor_OBJECTS = \ + $(am_unit_associated_immediate_executor_OBJECTS) +unit_associated_immediate_executor_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_associated_immediate_executor_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_associator_OBJECTS = unit/associator.$(OBJEXT) unit_associator_OBJECTS = $(am_unit_associator_OBJECTS) unit_associator_LDADD = $(LDADD) @@ -493,11 +564,29 @@ unit_basic_deadline_timer_OBJECTS = \ unit_basic_deadline_timer_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_basic_deadline_timer_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_basic_file_OBJECTS = unit/basic_file.$(OBJEXT) +unit_basic_file_OBJECTS = $(am_unit_basic_file_OBJECTS) +unit_basic_file_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_basic_file_DEPENDENCIES = libasio.a +am_unit_basic_random_access_file_OBJECTS = \ + unit/basic_random_access_file.$(OBJEXT) +unit_basic_random_access_file_OBJECTS = \ + $(am_unit_basic_random_access_file_OBJECTS) +unit_basic_random_access_file_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_basic_random_access_file_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_basic_raw_socket_OBJECTS = unit/basic_raw_socket.$(OBJEXT) unit_basic_raw_socket_OBJECTS = $(am_unit_basic_raw_socket_OBJECTS) unit_basic_raw_socket_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_basic_raw_socket_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_basic_readable_pipe_OBJECTS = \ + unit/basic_readable_pipe.$(OBJEXT) +unit_basic_readable_pipe_OBJECTS = \ + $(am_unit_basic_readable_pipe_OBJECTS) +unit_basic_readable_pipe_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_basic_readable_pipe_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_basic_seq_packet_socket_OBJECTS = \ unit/basic_seq_packet_socket.$(OBJEXT) unit_basic_seq_packet_socket_OBJECTS = \ @@ -526,6 +615,11 @@ unit_basic_socket_acceptor_OBJECTS = \ unit_basic_socket_acceptor_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_basic_socket_acceptor_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_basic_stream_file_OBJECTS = unit/basic_stream_file.$(OBJEXT) +unit_basic_stream_file_OBJECTS = $(am_unit_basic_stream_file_OBJECTS) +unit_basic_stream_file_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_basic_stream_file_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_basic_stream_socket_OBJECTS = \ unit/basic_stream_socket.$(OBJEXT) unit_basic_stream_socket_OBJECTS = \ @@ -545,6 +639,18 @@ unit_basic_waitable_timer_OBJECTS = \ unit_basic_waitable_timer_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_basic_waitable_timer_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_basic_writable_pipe_OBJECTS = \ + unit/basic_writable_pipe.$(OBJEXT) +unit_basic_writable_pipe_OBJECTS = \ + $(am_unit_basic_writable_pipe_OBJECTS) +unit_basic_writable_pipe_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_basic_writable_pipe_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_bind_allocator_OBJECTS = unit/bind_allocator.$(OBJEXT) +unit_bind_allocator_OBJECTS = $(am_unit_bind_allocator_OBJECTS) +unit_bind_allocator_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_bind_allocator_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_bind_cancellation_slot_OBJECTS = \ unit/bind_cancellation_slot.$(OBJEXT) unit_bind_cancellation_slot_OBJECTS = \ @@ -557,10 +663,24 @@ unit_bind_executor_OBJECTS = $(am_unit_bind_executor_OBJECTS) unit_bind_executor_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_bind_executor_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_bind_immediate_executor_OBJECTS = \ + unit/bind_immediate_executor.$(OBJEXT) +unit_bind_immediate_executor_OBJECTS = \ + $(am_unit_bind_immediate_executor_OBJECTS) +unit_bind_immediate_executor_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_bind_immediate_executor_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_buffer_OBJECTS = unit/buffer.$(OBJEXT) unit_buffer_OBJECTS = $(am_unit_buffer_OBJECTS) unit_buffer_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_buffer_DEPENDENCIES = libasio.a +am_unit_buffer_registration_OBJECTS = \ + unit/buffer_registration.$(OBJEXT) +unit_buffer_registration_OBJECTS = \ + $(am_unit_buffer_registration_OBJECTS) +unit_buffer_registration_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_buffer_registration_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_buffered_read_stream_OBJECTS = \ unit/buffered_read_stream.$(OBJEXT) unit_buffered_read_stream_OBJECTS = \ @@ -623,6 +743,14 @@ am_unit_connect_OBJECTS = unit/connect.$(OBJEXT) unit_connect_OBJECTS = $(am_unit_connect_OBJECTS) unit_connect_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_connect_DEPENDENCIES = libasio.a +am_unit_connect_pipe_OBJECTS = unit/connect_pipe.$(OBJEXT) +unit_connect_pipe_OBJECTS = $(am_unit_connect_pipe_OBJECTS) +unit_connect_pipe_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_connect_pipe_DEPENDENCIES = libasio.a +am_unit_consign_OBJECTS = unit/consign.$(OBJEXT) +unit_consign_OBJECTS = $(am_unit_consign_OBJECTS) +unit_consign_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_consign_DEPENDENCIES = libasio.a am_unit_coroutine_OBJECTS = unit/coroutine.$(OBJEXT) unit_coroutine_OBJECTS = $(am_unit_coroutine_OBJECTS) unit_coroutine_LDADD = $(LDADD) @@ -636,6 +764,10 @@ am_unit_defer_OBJECTS = unit/defer.$(OBJEXT) unit_defer_OBJECTS = $(am_unit_defer_OBJECTS) unit_defer_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_defer_DEPENDENCIES = libasio.a +am_unit_deferred_OBJECTS = unit/deferred.$(OBJEXT) +unit_deferred_OBJECTS = $(am_unit_deferred_OBJECTS) +unit_deferred_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_deferred_DEPENDENCIES = libasio.a am_unit_detached_OBJECTS = unit/detached.$(OBJEXT) unit_detached_OBJECTS = $(am_unit_detached_OBJECTS) unit_detached_LDADD = $(LDADD) @@ -669,25 +801,6 @@ unit_execution_blocking_adaptation_OBJECTS = \ unit_execution_blocking_adaptation_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_execution_blocking_adaptation_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_bulk_execute_OBJECTS = \ - unit/execution/bulk_execute.$(OBJEXT) -unit_execution_bulk_execute_OBJECTS = \ - $(am_unit_execution_bulk_execute_OBJECTS) -unit_execution_bulk_execute_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_bulk_execute_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_bulk_guarantee_OBJECTS = \ - unit/execution/bulk_guarantee.$(OBJEXT) -unit_execution_bulk_guarantee_OBJECTS = \ - $(am_unit_execution_bulk_guarantee_OBJECTS) -unit_execution_bulk_guarantee_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_bulk_guarantee_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_connect_OBJECTS = unit/execution/connect.$(OBJEXT) -unit_execution_connect_OBJECTS = $(am_unit_execution_connect_OBJECTS) -unit_execution_connect_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_connect_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_execution_context_as_OBJECTS = \ unit/execution/context_as.$(OBJEXT) unit_execution_context_as_OBJECTS = \ @@ -695,11 +808,6 @@ unit_execution_context_as_OBJECTS = \ unit_execution_context_as_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_execution_context_as_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_execute_OBJECTS = unit/execution/execute.$(OBJEXT) -unit_execution_execute_OBJECTS = $(am_unit_execution_execute_OBJECTS) -unit_execution_execute_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_execute_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_execution_executor_OBJECTS = \ unit/execution/executor.$(OBJEXT) unit_execution_executor_OBJECTS = \ @@ -719,13 +827,6 @@ unit_execution_mapping_OBJECTS = $(am_unit_execution_mapping_OBJECTS) unit_execution_mapping_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_execution_mapping_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_operation_state_OBJECTS = \ - unit/execution/operation_state.$(OBJEXT) -unit_execution_operation_state_OBJECTS = \ - $(am_unit_execution_operation_state_OBJECTS) -unit_execution_operation_state_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_operation_state_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_execution_outstanding_work_OBJECTS = \ unit/execution/outstanding_work.$(OBJEXT) unit_execution_outstanding_work_OBJECTS = \ @@ -740,13 +841,6 @@ unit_execution_prefer_only_OBJECTS = \ unit_execution_prefer_only_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_execution_prefer_only_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_receiver_OBJECTS = \ - unit/execution/receiver.$(OBJEXT) -unit_execution_receiver_OBJECTS = \ - $(am_unit_execution_receiver_OBJECTS) -unit_execution_receiver_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_receiver_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_execution_relationship_OBJECTS = \ unit/execution/relationship.$(OBJEXT) unit_execution_relationship_OBJECTS = \ @@ -754,56 +848,6 @@ unit_execution_relationship_OBJECTS = \ unit_execution_relationship_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_execution_relationship_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_schedule_OBJECTS = \ - unit/execution/schedule.$(OBJEXT) -unit_execution_schedule_OBJECTS = \ - $(am_unit_execution_schedule_OBJECTS) -unit_execution_schedule_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_schedule_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_scheduler_OBJECTS = \ - unit/execution/scheduler.$(OBJEXT) -unit_execution_scheduler_OBJECTS = \ - $(am_unit_execution_scheduler_OBJECTS) -unit_execution_scheduler_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_scheduler_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_sender_OBJECTS = unit/execution/sender.$(OBJEXT) -unit_execution_sender_OBJECTS = $(am_unit_execution_sender_OBJECTS) -unit_execution_sender_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_sender_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_set_done_OBJECTS = \ - unit/execution/set_done.$(OBJEXT) -unit_execution_set_done_OBJECTS = \ - $(am_unit_execution_set_done_OBJECTS) -unit_execution_set_done_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_set_done_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_set_error_OBJECTS = \ - unit/execution/set_error.$(OBJEXT) -unit_execution_set_error_OBJECTS = \ - $(am_unit_execution_set_error_OBJECTS) -unit_execution_set_error_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_set_error_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_set_value_OBJECTS = \ - unit/execution/set_value.$(OBJEXT) -unit_execution_set_value_OBJECTS = \ - $(am_unit_execution_set_value_OBJECTS) -unit_execution_set_value_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_set_value_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_start_OBJECTS = unit/execution/start.$(OBJEXT) -unit_execution_start_OBJECTS = $(am_unit_execution_start_OBJECTS) -unit_execution_start_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_start_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_execution_submit_OBJECTS = unit/execution/submit.$(OBJEXT) -unit_execution_submit_OBJECTS = $(am_unit_execution_submit_OBJECTS) -unit_execution_submit_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_submit_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_execution_context_OBJECTS = unit/execution_context.$(OBJEXT) unit_execution_context_OBJECTS = $(am_unit_execution_context_OBJECTS) unit_execution_context_LDADD = $(LDADD) @@ -828,6 +872,65 @@ unit_experimental_awaitable_operators_OBJECTS = \ unit_experimental_awaitable_operators_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_experimental_awaitable_operators_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am__unit_experimental_basic_channel_SOURCES_DIST = \ + unit/experimental/basic_channel.cpp +@HAVE_CXX11_TRUE@am_unit_experimental_basic_channel_OBJECTS = \ +@HAVE_CXX11_TRUE@ unit/experimental/basic_channel.$(OBJEXT) +unit_experimental_basic_channel_OBJECTS = \ + $(am_unit_experimental_basic_channel_OBJECTS) +unit_experimental_basic_channel_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_experimental_basic_channel_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a +am__unit_experimental_basic_concurrent_channel_SOURCES_DIST = \ + unit/experimental/basic_concurrent_channel.cpp +@HAVE_CXX11_TRUE@am_unit_experimental_basic_concurrent_channel_OBJECTS = unit/experimental/basic_concurrent_channel.$(OBJEXT) +unit_experimental_basic_concurrent_channel_OBJECTS = \ + $(am_unit_experimental_basic_concurrent_channel_OBJECTS) +unit_experimental_basic_concurrent_channel_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_experimental_basic_concurrent_channel_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a +am__unit_experimental_channel_SOURCES_DIST = \ + unit/experimental/channel.cpp +@HAVE_CXX11_TRUE@am_unit_experimental_channel_OBJECTS = \ +@HAVE_CXX11_TRUE@ unit/experimental/channel.$(OBJEXT) +unit_experimental_channel_OBJECTS = \ + $(am_unit_experimental_channel_OBJECTS) +unit_experimental_channel_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_experimental_channel_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a +am__unit_experimental_channel_traits_SOURCES_DIST = \ + unit/experimental/channel_traits.cpp +@HAVE_CXX11_TRUE@am_unit_experimental_channel_traits_OBJECTS = \ +@HAVE_CXX11_TRUE@ unit/experimental/channel_traits.$(OBJEXT) +unit_experimental_channel_traits_OBJECTS = \ + $(am_unit_experimental_channel_traits_OBJECTS) +unit_experimental_channel_traits_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_experimental_channel_traits_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a +am__unit_experimental_co_composed_SOURCES_DIST = \ + unit/experimental/co_composed.cpp +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_co_composed_OBJECTS = unit/experimental/co_composed.$(OBJEXT) +unit_experimental_co_composed_OBJECTS = \ + $(am_unit_experimental_co_composed_OBJECTS) +unit_experimental_co_composed_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_experimental_co_composed_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a +am__unit_experimental_concurrent_channel_SOURCES_DIST = \ + unit/experimental/concurrent_channel.cpp +@HAVE_CXX11_TRUE@am_unit_experimental_concurrent_channel_OBJECTS = unit/experimental/concurrent_channel.$(OBJEXT) +unit_experimental_concurrent_channel_OBJECTS = \ + $(am_unit_experimental_concurrent_channel_OBJECTS) +unit_experimental_concurrent_channel_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_experimental_concurrent_channel_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a +am__unit_experimental_coro_allocator_SOURCES_DIST = \ + unit/experimental/coro/allocator.cpp +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_coro_allocator_OBJECTS = unit/experimental/coro/allocator.$(OBJEXT) +unit_experimental_coro_allocator_OBJECTS = \ + $(am_unit_experimental_coro_allocator_OBJECTS) +unit_experimental_coro_allocator_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_experimental_coro_allocator_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am__unit_experimental_coro_cancel_SOURCES_DIST = \ unit/experimental/coro/cancel.cpp @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_coro_cancel_OBJECTS = unit/experimental/coro/cancel.$(OBJEXT) @@ -836,6 +939,14 @@ unit_experimental_coro_cancel_OBJECTS = \ unit_experimental_coro_cancel_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_experimental_coro_cancel_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am__unit_experimental_coro_co_spawn_SOURCES_DIST = \ + unit/experimental/coro/co_spawn.cpp +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_coro_co_spawn_OBJECTS = unit/experimental/coro/co_spawn.$(OBJEXT) +unit_experimental_coro_co_spawn_OBJECTS = \ + $(am_unit_experimental_coro_co_spawn_OBJECTS) +unit_experimental_coro_co_spawn_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_experimental_coro_co_spawn_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am__unit_experimental_coro_exception_SOURCES_DIST = \ unit/experimental/coro/exception.cpp @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_coro_exception_OBJECTS = unit/experimental/coro/exception.$(OBJEXT) @@ -844,6 +955,14 @@ unit_experimental_coro_exception_OBJECTS = \ unit_experimental_coro_exception_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_experimental_coro_exception_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am__unit_experimental_coro_executor_SOURCES_DIST = \ + unit/experimental/coro/executor.cpp +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_coro_executor_OBJECTS = unit/experimental/coro/executor.$(OBJEXT) +unit_experimental_coro_executor_OBJECTS = \ + $(am_unit_experimental_coro_executor_OBJECTS) +unit_experimental_coro_executor_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_experimental_coro_executor_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am__unit_experimental_coro_partial_SOURCES_DIST = \ unit/experimental/coro/partial.cpp @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_coro_partial_OBJECTS = unit/experimental/coro/partial.$(OBJEXT) @@ -876,14 +995,14 @@ unit_experimental_coro_use_coro_OBJECTS = \ unit_experimental_coro_use_coro_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_experimental_coro_use_coro_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a -am__unit_experimental_deferred_SOURCES_DIST = \ - unit/experimental/deferred.cpp -@HAVE_CXX14_TRUE@am_unit_experimental_deferred_OBJECTS = \ -@HAVE_CXX14_TRUE@ unit/experimental/deferred.$(OBJEXT) -unit_experimental_deferred_OBJECTS = \ - $(am_unit_experimental_deferred_OBJECTS) -unit_experimental_deferred_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_experimental_deferred_DEPENDENCIES = \ +am__unit_experimental_parallel_group_SOURCES_DIST = \ + unit/experimental/parallel_group.cpp +@HAVE_CXX11_TRUE@am_unit_experimental_parallel_group_OBJECTS = \ +@HAVE_CXX11_TRUE@ unit/experimental/parallel_group.$(OBJEXT) +unit_experimental_parallel_group_OBJECTS = \ + $(am_unit_experimental_parallel_group_OBJECTS) +unit_experimental_parallel_group_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_experimental_parallel_group_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a am__unit_experimental_promise_SOURCES_DIST = \ unit/experimental/promise.cpp @@ -894,6 +1013,10 @@ unit_experimental_promise_OBJECTS = \ unit_experimental_promise_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_experimental_promise_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_file_base_OBJECTS = unit/file_base.$(OBJEXT) +unit_file_base_OBJECTS = $(am_unit_file_base_OBJECTS) +unit_file_base_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_file_base_DEPENDENCIES = libasio.a am_unit_generic_basic_endpoint_OBJECTS = \ unit/generic/basic_endpoint.$(OBJEXT) unit_generic_basic_endpoint_OBJECTS = \ @@ -1094,6 +1217,13 @@ unit_local_datagram_protocol_OBJECTS = \ unit_local_datagram_protocol_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_local_datagram_protocol_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_local_seq_packet_protocol_OBJECTS = \ + unit/local/seq_packet_protocol.$(OBJEXT) +unit_local_seq_packet_protocol_OBJECTS = \ + $(am_unit_local_seq_packet_protocol_OBJECTS) +unit_local_seq_packet_protocol_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_local_seq_packet_protocol_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_local_stream_protocol_OBJECTS = \ unit/local/stream_protocol.$(OBJEXT) unit_local_stream_protocol_OBJECTS = \ @@ -1147,6 +1277,17 @@ am_unit_post_OBJECTS = unit/post.$(OBJEXT) unit_post_OBJECTS = $(am_unit_post_OBJECTS) unit_post_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_post_DEPENDENCIES = libasio.a +am_unit_prepend_OBJECTS = unit/prepend.$(OBJEXT) +unit_prepend_OBJECTS = $(am_unit_prepend_OBJECTS) +unit_prepend_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_prepend_DEPENDENCIES = libasio.a +am_unit_random_access_file_OBJECTS = \ + unit/random_access_file.$(OBJEXT) +unit_random_access_file_OBJECTS = \ + $(am_unit_random_access_file_OBJECTS) +unit_random_access_file_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_random_access_file_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_read_OBJECTS = unit/read.$(OBJEXT) unit_read_OBJECTS = $(am_unit_read_OBJECTS) unit_read_LDADD = $(LDADD) @@ -1159,11 +1300,28 @@ am_unit_read_until_OBJECTS = unit/read_until.$(OBJEXT) unit_read_until_OBJECTS = $(am_unit_read_until_OBJECTS) unit_read_until_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_read_until_DEPENDENCIES = libasio.a +am_unit_readable_pipe_OBJECTS = unit/readable_pipe.$(OBJEXT) +unit_readable_pipe_OBJECTS = $(am_unit_readable_pipe_OBJECTS) +unit_readable_pipe_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_readable_pipe_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_recycling_allocator_OBJECTS = \ + unit/recycling_allocator.$(OBJEXT) +unit_recycling_allocator_OBJECTS = \ + $(am_unit_recycling_allocator_OBJECTS) +unit_recycling_allocator_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_recycling_allocator_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_redirect_error_OBJECTS = unit/redirect_error.$(OBJEXT) unit_redirect_error_OBJECTS = $(am_unit_redirect_error_OBJECTS) unit_redirect_error_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_redirect_error_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_registered_buffer_OBJECTS = unit/registered_buffer.$(OBJEXT) +unit_registered_buffer_OBJECTS = $(am_unit_registered_buffer_OBJECTS) +unit_registered_buffer_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_registered_buffer_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_serial_port_OBJECTS = unit/serial_port.$(OBJEXT) unit_serial_port_OBJECTS = $(am_unit_serial_port_OBJECTS) unit_serial_port_LDADD = $(LDADD) @@ -1177,6 +1335,11 @@ am_unit_signal_set_OBJECTS = unit/signal_set.$(OBJEXT) unit_signal_set_OBJECTS = $(am_unit_signal_set_OBJECTS) unit_signal_set_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_signal_set_DEPENDENCIES = libasio.a +am_unit_signal_set_base_OBJECTS = unit/signal_set_base.$(OBJEXT) +unit_signal_set_base_OBJECTS = $(am_unit_signal_set_base_OBJECTS) +unit_signal_set_base_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_signal_set_base_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_socket_base_OBJECTS = unit/socket_base.$(OBJEXT) unit_socket_base_OBJECTS = $(am_unit_socket_base_OBJECTS) unit_socket_base_LDADD = $(LDADD) @@ -1246,6 +1409,10 @@ am_unit_strand_OBJECTS = unit/strand.$(OBJEXT) unit_strand_OBJECTS = $(am_unit_strand_OBJECTS) unit_strand_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_strand_DEPENDENCIES = libasio.a +am_unit_stream_file_OBJECTS = unit/stream_file.$(OBJEXT) +unit_stream_file_OBJECTS = $(am_unit_stream_file_OBJECTS) +unit_stream_file_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_stream_file_DEPENDENCIES = libasio.a am_unit_streambuf_OBJECTS = unit/streambuf.$(OBJEXT) unit_streambuf_OBJECTS = $(am_unit_streambuf_OBJECTS) unit_streambuf_LDADD = $(LDADD) @@ -1394,6 +1561,11 @@ unit_windows_stream_handle_OBJECTS = \ unit_windows_stream_handle_LDADD = $(LDADD) @SEPARATE_COMPILATION_TRUE@unit_windows_stream_handle_DEPENDENCIES = \ @SEPARATE_COMPILATION_TRUE@ libasio.a +am_unit_writable_pipe_OBJECTS = unit/writable_pipe.$(OBJEXT) +unit_writable_pipe_OBJECTS = $(am_unit_writable_pipe_OBJECTS) +unit_writable_pipe_LDADD = $(LDADD) +@SEPARATE_COMPILATION_TRUE@unit_writable_pipe_DEPENDENCIES = \ +@SEPARATE_COMPILATION_TRUE@ libasio.a am_unit_write_OBJECTS = unit/write.$(OBJEXT) unit_write_OBJECTS = $(am_unit_write_OBJECTS) unit_write_LDADD = $(LDADD) @@ -1424,24 +1596,37 @@ am__depfiles_remade = ../$(DEPDIR)/asio.Po ../$(DEPDIR)/asio_ssl.Po \ latency/$(DEPDIR)/udp_server.Po \ performance/$(DEPDIR)/client.Po \ performance/$(DEPDIR)/server.Po \ + unit/$(DEPDIR)/any_completion_executor.Po \ + unit/$(DEPDIR)/any_completion_handler.Po \ + unit/$(DEPDIR)/any_io_executor.Po unit/$(DEPDIR)/append.Po \ + unit/$(DEPDIR)/as_tuple.Po \ unit/$(DEPDIR)/associated_allocator.Po \ unit/$(DEPDIR)/associated_cancellation_slot.Po \ unit/$(DEPDIR)/associated_executor.Po \ + unit/$(DEPDIR)/associated_immediate_executor.Po \ unit/$(DEPDIR)/associator.Po unit/$(DEPDIR)/async_result.Po \ unit/$(DEPDIR)/awaitable.Po \ unit/$(DEPDIR)/basic_datagram_socket.Po \ unit/$(DEPDIR)/basic_deadline_timer.Po \ + unit/$(DEPDIR)/basic_file.Po \ + unit/$(DEPDIR)/basic_random_access_file.Po \ unit/$(DEPDIR)/basic_raw_socket.Po \ + unit/$(DEPDIR)/basic_readable_pipe.Po \ unit/$(DEPDIR)/basic_seq_packet_socket.Po \ unit/$(DEPDIR)/basic_serial_port.Po \ unit/$(DEPDIR)/basic_signal_set.Po \ unit/$(DEPDIR)/basic_socket.Po \ unit/$(DEPDIR)/basic_socket_acceptor.Po \ + unit/$(DEPDIR)/basic_stream_file.Po \ unit/$(DEPDIR)/basic_stream_socket.Po \ unit/$(DEPDIR)/basic_streambuf.Po \ unit/$(DEPDIR)/basic_waitable_timer.Po \ + unit/$(DEPDIR)/basic_writable_pipe.Po \ + unit/$(DEPDIR)/bind_allocator.Po \ unit/$(DEPDIR)/bind_cancellation_slot.Po \ - unit/$(DEPDIR)/bind_executor.Po unit/$(DEPDIR)/buffer.Po \ + unit/$(DEPDIR)/bind_executor.Po \ + unit/$(DEPDIR)/bind_immediate_executor.Po \ + unit/$(DEPDIR)/buffer.Po unit/$(DEPDIR)/buffer_registration.Po \ unit/$(DEPDIR)/buffered_read_stream.Po \ unit/$(DEPDIR)/buffered_stream.Po \ unit/$(DEPDIR)/buffered_write_stream.Po \ @@ -1451,61 +1636,66 @@ am__depfiles_remade = ../$(DEPDIR)/asio.Po ../$(DEPDIR)/asio_ssl.Po \ unit/$(DEPDIR)/cancellation_type.Po unit/$(DEPDIR)/co_spawn.Po \ unit/$(DEPDIR)/completion_condition.Po \ unit/$(DEPDIR)/compose.Po unit/$(DEPDIR)/connect.Po \ + unit/$(DEPDIR)/connect_pipe.Po unit/$(DEPDIR)/consign.Po \ unit/$(DEPDIR)/coroutine.Po unit/$(DEPDIR)/deadline_timer.Po \ - unit/$(DEPDIR)/defer.Po unit/$(DEPDIR)/detached.Po \ - unit/$(DEPDIR)/dispatch.Po unit/$(DEPDIR)/error.Po \ - unit/$(DEPDIR)/execution_context.Po unit/$(DEPDIR)/executor.Po \ + unit/$(DEPDIR)/defer.Po unit/$(DEPDIR)/deferred.Po \ + unit/$(DEPDIR)/detached.Po unit/$(DEPDIR)/dispatch.Po \ + unit/$(DEPDIR)/error.Po unit/$(DEPDIR)/execution_context.Po \ + unit/$(DEPDIR)/executor.Po \ unit/$(DEPDIR)/executor_work_guard.Po \ + unit/$(DEPDIR)/file_base.Po \ unit/$(DEPDIR)/high_resolution_timer.Po \ unit/$(DEPDIR)/io_context.Po \ unit/$(DEPDIR)/io_context_strand.Po \ unit/$(DEPDIR)/is_read_buffered.Po \ unit/$(DEPDIR)/is_write_buffered.Po \ unit/$(DEPDIR)/packaged_task.Po unit/$(DEPDIR)/placeholders.Po \ - unit/$(DEPDIR)/post.Po unit/$(DEPDIR)/read.Po \ + unit/$(DEPDIR)/post.Po unit/$(DEPDIR)/prepend.Po \ + unit/$(DEPDIR)/random_access_file.Po unit/$(DEPDIR)/read.Po \ unit/$(DEPDIR)/read_at.Po unit/$(DEPDIR)/read_until.Po \ - unit/$(DEPDIR)/redirect_error.Po unit/$(DEPDIR)/serial_port.Po \ + unit/$(DEPDIR)/readable_pipe.Po \ + unit/$(DEPDIR)/recycling_allocator.Po \ + unit/$(DEPDIR)/redirect_error.Po \ + unit/$(DEPDIR)/registered_buffer.Po \ + unit/$(DEPDIR)/serial_port.Po \ unit/$(DEPDIR)/serial_port_base.Po \ - unit/$(DEPDIR)/signal_set.Po unit/$(DEPDIR)/socket_base.Po \ + unit/$(DEPDIR)/signal_set.Po unit/$(DEPDIR)/signal_set_base.Po \ + unit/$(DEPDIR)/socket_base.Po \ unit/$(DEPDIR)/static_thread_pool.Po \ unit/$(DEPDIR)/steady_timer.Po unit/$(DEPDIR)/strand.Po \ - unit/$(DEPDIR)/streambuf.Po unit/$(DEPDIR)/system_context.Po \ + unit/$(DEPDIR)/stream_file.Po unit/$(DEPDIR)/streambuf.Po \ + unit/$(DEPDIR)/system_context.Po \ unit/$(DEPDIR)/system_executor.Po \ unit/$(DEPDIR)/system_timer.Po unit/$(DEPDIR)/this_coro.Po \ unit/$(DEPDIR)/thread.Po unit/$(DEPDIR)/thread_pool.Po \ unit/$(DEPDIR)/time_traits.Po unit/$(DEPDIR)/use_awaitable.Po \ unit/$(DEPDIR)/use_future.Po unit/$(DEPDIR)/uses_executor.Po \ - unit/$(DEPDIR)/wait_traits.Po unit/$(DEPDIR)/write.Po \ - unit/$(DEPDIR)/write_at.Po \ + unit/$(DEPDIR)/wait_traits.Po unit/$(DEPDIR)/writable_pipe.Po \ + unit/$(DEPDIR)/write.Po unit/$(DEPDIR)/write_at.Po \ unit/execution/$(DEPDIR)/any_executor.Po \ unit/execution/$(DEPDIR)/blocking.Po \ unit/execution/$(DEPDIR)/blocking_adaptation.Po \ - unit/execution/$(DEPDIR)/bulk_execute.Po \ - unit/execution/$(DEPDIR)/bulk_guarantee.Po \ - unit/execution/$(DEPDIR)/connect.Po \ unit/execution/$(DEPDIR)/context_as.Po \ - unit/execution/$(DEPDIR)/execute.Po \ unit/execution/$(DEPDIR)/executor.Po \ unit/execution/$(DEPDIR)/invocable_archetype.Po \ unit/execution/$(DEPDIR)/mapping.Po \ - unit/execution/$(DEPDIR)/operation_state.Po \ unit/execution/$(DEPDIR)/outstanding_work.Po \ unit/execution/$(DEPDIR)/prefer_only.Po \ - unit/execution/$(DEPDIR)/receiver.Po \ unit/execution/$(DEPDIR)/relationship.Po \ - unit/execution/$(DEPDIR)/schedule.Po \ - unit/execution/$(DEPDIR)/scheduler.Po \ - unit/execution/$(DEPDIR)/sender.Po \ - unit/execution/$(DEPDIR)/set_done.Po \ - unit/execution/$(DEPDIR)/set_error.Po \ - unit/execution/$(DEPDIR)/set_value.Po \ - unit/execution/$(DEPDIR)/start.Po \ - unit/execution/$(DEPDIR)/submit.Po \ unit/experimental/$(DEPDIR)/awaitable_operators.Po \ - unit/experimental/$(DEPDIR)/deferred.Po \ + unit/experimental/$(DEPDIR)/basic_channel.Po \ + unit/experimental/$(DEPDIR)/basic_concurrent_channel.Po \ + unit/experimental/$(DEPDIR)/channel.Po \ + unit/experimental/$(DEPDIR)/channel_traits.Po \ + unit/experimental/$(DEPDIR)/co_composed.Po \ + unit/experimental/$(DEPDIR)/concurrent_channel.Po \ + unit/experimental/$(DEPDIR)/parallel_group.Po \ unit/experimental/$(DEPDIR)/promise.Po \ + unit/experimental/coro/$(DEPDIR)/allocator.Po \ unit/experimental/coro/$(DEPDIR)/cancel.Po \ + unit/experimental/coro/$(DEPDIR)/co_spawn.Po \ unit/experimental/coro/$(DEPDIR)/exception.Po \ + unit/experimental/coro/$(DEPDIR)/executor.Po \ unit/experimental/coro/$(DEPDIR)/partial.Po \ unit/experimental/coro/$(DEPDIR)/simple_test.Po \ unit/experimental/coro/$(DEPDIR)/stack_test.Po \ @@ -1535,6 +1725,7 @@ am__depfiles_remade = ../$(DEPDIR)/asio.Po ../$(DEPDIR)/asio_ssl.Po \ unit/local/$(DEPDIR)/basic_endpoint.Po \ unit/local/$(DEPDIR)/connect_pair.Po \ unit/local/$(DEPDIR)/datagram_protocol.Po \ + unit/local/$(DEPDIR)/seq_packet_protocol.Po \ unit/local/$(DEPDIR)/stream_protocol.Po \ unit/posix/$(DEPDIR)/basic_descriptor.Po \ unit/posix/$(DEPDIR)/basic_stream_descriptor.Po \ @@ -1577,22 +1768,35 @@ SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \ $(latency_tcp_server_SOURCES) $(latency_udp_client_SOURCES) \ $(latency_udp_server_SOURCES) $(performance_client_SOURCES) \ $(performance_server_SOURCES) \ - $(unit_associated_allocator_SOURCES) \ + $(unit_any_completion_executor_SOURCES) \ + $(unit_any_completion_handler_SOURCES) \ + $(unit_any_io_executor_SOURCES) $(unit_append_SOURCES) \ + $(unit_as_tuple_SOURCES) $(unit_associated_allocator_SOURCES) \ $(unit_associated_cancellation_slot_SOURCES) \ - $(unit_associated_executor_SOURCES) $(unit_associator_SOURCES) \ - $(unit_async_result_SOURCES) $(unit_awaitable_SOURCES) \ + $(unit_associated_executor_SOURCES) \ + $(unit_associated_immediate_executor_SOURCES) \ + $(unit_associator_SOURCES) $(unit_async_result_SOURCES) \ + $(unit_awaitable_SOURCES) \ $(unit_basic_datagram_socket_SOURCES) \ $(unit_basic_deadline_timer_SOURCES) \ + $(unit_basic_file_SOURCES) \ + $(unit_basic_random_access_file_SOURCES) \ $(unit_basic_raw_socket_SOURCES) \ + $(unit_basic_readable_pipe_SOURCES) \ $(unit_basic_seq_packet_socket_SOURCES) \ $(unit_basic_serial_port_SOURCES) \ $(unit_basic_signal_set_SOURCES) $(unit_basic_socket_SOURCES) \ $(unit_basic_socket_acceptor_SOURCES) \ + $(unit_basic_stream_file_SOURCES) \ $(unit_basic_stream_socket_SOURCES) \ $(unit_basic_streambuf_SOURCES) \ $(unit_basic_waitable_timer_SOURCES) \ + $(unit_basic_writable_pipe_SOURCES) \ + $(unit_bind_allocator_SOURCES) \ $(unit_bind_cancellation_slot_SOURCES) \ - $(unit_bind_executor_SOURCES) $(unit_buffer_SOURCES) \ + $(unit_bind_executor_SOURCES) \ + $(unit_bind_immediate_executor_SOURCES) $(unit_buffer_SOURCES) \ + $(unit_buffer_registration_SOURCES) \ $(unit_buffered_read_stream_SOURCES) \ $(unit_buffered_stream_SOURCES) \ $(unit_buffered_write_stream_SOURCES) \ @@ -1601,44 +1805,41 @@ SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \ $(unit_cancellation_state_SOURCES) \ $(unit_cancellation_type_SOURCES) $(unit_co_spawn_SOURCES) \ $(unit_completion_condition_SOURCES) $(unit_compose_SOURCES) \ - $(unit_connect_SOURCES) $(unit_coroutine_SOURCES) \ + $(unit_connect_SOURCES) $(unit_connect_pipe_SOURCES) \ + $(unit_consign_SOURCES) $(unit_coroutine_SOURCES) \ $(unit_deadline_timer_SOURCES) $(unit_defer_SOURCES) \ - $(unit_detached_SOURCES) $(unit_dispatch_SOURCES) \ - $(unit_error_SOURCES) $(unit_execution_any_executor_SOURCES) \ + $(unit_deferred_SOURCES) $(unit_detached_SOURCES) \ + $(unit_dispatch_SOURCES) $(unit_error_SOURCES) \ + $(unit_execution_any_executor_SOURCES) \ $(unit_execution_blocking_SOURCES) \ $(unit_execution_blocking_adaptation_SOURCES) \ - $(unit_execution_bulk_execute_SOURCES) \ - $(unit_execution_bulk_guarantee_SOURCES) \ - $(unit_execution_connect_SOURCES) \ $(unit_execution_context_as_SOURCES) \ - $(unit_execution_execute_SOURCES) \ $(unit_execution_executor_SOURCES) \ $(unit_execution_invocable_archetype_SOURCES) \ $(unit_execution_mapping_SOURCES) \ - $(unit_execution_operation_state_SOURCES) \ $(unit_execution_outstanding_work_SOURCES) \ $(unit_execution_prefer_only_SOURCES) \ - $(unit_execution_receiver_SOURCES) \ $(unit_execution_relationship_SOURCES) \ - $(unit_execution_schedule_SOURCES) \ - $(unit_execution_scheduler_SOURCES) \ - $(unit_execution_sender_SOURCES) \ - $(unit_execution_set_done_SOURCES) \ - $(unit_execution_set_error_SOURCES) \ - $(unit_execution_set_value_SOURCES) \ - $(unit_execution_start_SOURCES) \ - $(unit_execution_submit_SOURCES) \ $(unit_execution_context_SOURCES) $(unit_executor_SOURCES) \ $(unit_executor_work_guard_SOURCES) \ $(unit_experimental_awaitable_operators_SOURCES) \ + $(unit_experimental_basic_channel_SOURCES) \ + $(unit_experimental_basic_concurrent_channel_SOURCES) \ + $(unit_experimental_channel_SOURCES) \ + $(unit_experimental_channel_traits_SOURCES) \ + $(unit_experimental_co_composed_SOURCES) \ + $(unit_experimental_concurrent_channel_SOURCES) \ + $(unit_experimental_coro_allocator_SOURCES) \ $(unit_experimental_coro_cancel_SOURCES) \ + $(unit_experimental_coro_co_spawn_SOURCES) \ $(unit_experimental_coro_exception_SOURCES) \ + $(unit_experimental_coro_executor_SOURCES) \ $(unit_experimental_coro_partial_SOURCES) \ $(unit_experimental_coro_simple_test_SOURCES) \ $(unit_experimental_coro_stack_test_SOURCES) \ $(unit_experimental_coro_use_coro_SOURCES) \ - $(unit_experimental_deferred_SOURCES) \ - $(unit_experimental_promise_SOURCES) \ + $(unit_experimental_parallel_group_SOURCES) \ + $(unit_experimental_promise_SOURCES) $(unit_file_base_SOURCES) \ $(unit_generic_basic_endpoint_SOURCES) \ $(unit_generic_datagram_protocol_SOURCES) \ $(unit_generic_raw_protocol_SOURCES) \ @@ -1667,6 +1868,7 @@ SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \ $(unit_local_basic_endpoint_SOURCES) \ $(unit_local_connect_pair_SOURCES) \ $(unit_local_datagram_protocol_SOURCES) \ + $(unit_local_seq_packet_protocol_SOURCES) \ $(unit_local_stream_protocol_SOURCES) \ $(unit_packaged_task_SOURCES) $(unit_placeholders_SOURCES) \ $(unit_posix_basic_descriptor_SOURCES) \ @@ -1674,10 +1876,14 @@ SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \ $(unit_posix_descriptor_SOURCES) \ $(unit_posix_descriptor_base_SOURCES) \ $(unit_posix_stream_descriptor_SOURCES) $(unit_post_SOURCES) \ + $(unit_prepend_SOURCES) $(unit_random_access_file_SOURCES) \ $(unit_read_SOURCES) $(unit_read_at_SOURCES) \ - $(unit_read_until_SOURCES) $(unit_redirect_error_SOURCES) \ - $(unit_serial_port_SOURCES) $(unit_serial_port_base_SOURCES) \ - $(unit_signal_set_SOURCES) $(unit_socket_base_SOURCES) \ + $(unit_read_until_SOURCES) $(unit_readable_pipe_SOURCES) \ + $(unit_recycling_allocator_SOURCES) \ + $(unit_redirect_error_SOURCES) \ + $(unit_registered_buffer_SOURCES) $(unit_serial_port_SOURCES) \ + $(unit_serial_port_base_SOURCES) $(unit_signal_set_SOURCES) \ + $(unit_signal_set_base_SOURCES) $(unit_socket_base_SOURCES) \ $(unit_ssl_context_SOURCES) $(unit_ssl_context_base_SOURCES) \ $(unit_ssl_error_SOURCES) \ $(unit_ssl_host_name_verification_SOURCES) \ @@ -1685,16 +1891,17 @@ SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \ $(unit_ssl_stream_SOURCES) $(unit_ssl_stream_base_SOURCES) \ $(unit_static_thread_pool_SOURCES) \ $(unit_steady_timer_SOURCES) $(unit_strand_SOURCES) \ - $(unit_streambuf_SOURCES) $(unit_system_context_SOURCES) \ - $(unit_system_executor_SOURCES) $(unit_system_timer_SOURCES) \ - $(unit_this_coro_SOURCES) $(unit_thread_SOURCES) \ - $(unit_thread_pool_SOURCES) $(unit_time_traits_SOURCES) \ - $(unit_ts_buffer_SOURCES) $(unit_ts_executor_SOURCES) \ - $(unit_ts_internet_SOURCES) $(unit_ts_io_context_SOURCES) \ - $(unit_ts_net_SOURCES) $(unit_ts_netfwd_SOURCES) \ - $(unit_ts_socket_SOURCES) $(unit_ts_timer_SOURCES) \ - $(unit_use_awaitable_SOURCES) $(unit_use_future_SOURCES) \ - $(unit_uses_executor_SOURCES) $(unit_wait_traits_SOURCES) \ + $(unit_stream_file_SOURCES) $(unit_streambuf_SOURCES) \ + $(unit_system_context_SOURCES) $(unit_system_executor_SOURCES) \ + $(unit_system_timer_SOURCES) $(unit_this_coro_SOURCES) \ + $(unit_thread_SOURCES) $(unit_thread_pool_SOURCES) \ + $(unit_time_traits_SOURCES) $(unit_ts_buffer_SOURCES) \ + $(unit_ts_executor_SOURCES) $(unit_ts_internet_SOURCES) \ + $(unit_ts_io_context_SOURCES) $(unit_ts_net_SOURCES) \ + $(unit_ts_netfwd_SOURCES) $(unit_ts_socket_SOURCES) \ + $(unit_ts_timer_SOURCES) $(unit_use_awaitable_SOURCES) \ + $(unit_use_future_SOURCES) $(unit_uses_executor_SOURCES) \ + $(unit_wait_traits_SOURCES) \ $(unit_windows_basic_object_handle_SOURCES) \ $(unit_windows_basic_overlapped_handle_SOURCES) \ $(unit_windows_basic_random_access_handle_SOURCES) \ @@ -1703,7 +1910,8 @@ SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \ $(unit_windows_overlapped_handle_SOURCES) \ $(unit_windows_overlapped_ptr_SOURCES) \ $(unit_windows_random_access_handle_SOURCES) \ - $(unit_windows_stream_handle_SOURCES) $(unit_write_SOURCES) \ + $(unit_windows_stream_handle_SOURCES) \ + $(unit_writable_pipe_SOURCES) $(unit_write_SOURCES) \ $(unit_write_at_SOURCES) DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ $(am__latency_tcp_client_SOURCES_DIST) \ @@ -1712,22 +1920,35 @@ DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ $(am__latency_udp_server_SOURCES_DIST) \ $(am__performance_client_SOURCES_DIST) \ $(am__performance_server_SOURCES_DIST) \ - $(unit_associated_allocator_SOURCES) \ + $(unit_any_completion_executor_SOURCES) \ + $(unit_any_completion_handler_SOURCES) \ + $(unit_any_io_executor_SOURCES) $(unit_append_SOURCES) \ + $(unit_as_tuple_SOURCES) $(unit_associated_allocator_SOURCES) \ $(unit_associated_cancellation_slot_SOURCES) \ - $(unit_associated_executor_SOURCES) $(unit_associator_SOURCES) \ - $(unit_async_result_SOURCES) $(unit_awaitable_SOURCES) \ + $(unit_associated_executor_SOURCES) \ + $(unit_associated_immediate_executor_SOURCES) \ + $(unit_associator_SOURCES) $(unit_async_result_SOURCES) \ + $(unit_awaitable_SOURCES) \ $(unit_basic_datagram_socket_SOURCES) \ $(unit_basic_deadline_timer_SOURCES) \ + $(unit_basic_file_SOURCES) \ + $(unit_basic_random_access_file_SOURCES) \ $(unit_basic_raw_socket_SOURCES) \ + $(unit_basic_readable_pipe_SOURCES) \ $(unit_basic_seq_packet_socket_SOURCES) \ $(unit_basic_serial_port_SOURCES) \ $(unit_basic_signal_set_SOURCES) $(unit_basic_socket_SOURCES) \ $(unit_basic_socket_acceptor_SOURCES) \ + $(unit_basic_stream_file_SOURCES) \ $(unit_basic_stream_socket_SOURCES) \ $(unit_basic_streambuf_SOURCES) \ $(unit_basic_waitable_timer_SOURCES) \ + $(unit_basic_writable_pipe_SOURCES) \ + $(unit_bind_allocator_SOURCES) \ $(unit_bind_cancellation_slot_SOURCES) \ - $(unit_bind_executor_SOURCES) $(unit_buffer_SOURCES) \ + $(unit_bind_executor_SOURCES) \ + $(unit_bind_immediate_executor_SOURCES) $(unit_buffer_SOURCES) \ + $(unit_buffer_registration_SOURCES) \ $(unit_buffered_read_stream_SOURCES) \ $(unit_buffered_stream_SOURCES) \ $(unit_buffered_write_stream_SOURCES) \ @@ -1736,44 +1957,42 @@ DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ $(unit_cancellation_state_SOURCES) \ $(unit_cancellation_type_SOURCES) $(unit_co_spawn_SOURCES) \ $(unit_completion_condition_SOURCES) $(unit_compose_SOURCES) \ - $(unit_connect_SOURCES) $(unit_coroutine_SOURCES) \ + $(unit_connect_SOURCES) $(unit_connect_pipe_SOURCES) \ + $(unit_consign_SOURCES) $(unit_coroutine_SOURCES) \ $(unit_deadline_timer_SOURCES) $(unit_defer_SOURCES) \ - $(unit_detached_SOURCES) $(unit_dispatch_SOURCES) \ - $(unit_error_SOURCES) $(unit_execution_any_executor_SOURCES) \ + $(unit_deferred_SOURCES) $(unit_detached_SOURCES) \ + $(unit_dispatch_SOURCES) $(unit_error_SOURCES) \ + $(unit_execution_any_executor_SOURCES) \ $(unit_execution_blocking_SOURCES) \ $(unit_execution_blocking_adaptation_SOURCES) \ - $(unit_execution_bulk_execute_SOURCES) \ - $(unit_execution_bulk_guarantee_SOURCES) \ - $(unit_execution_connect_SOURCES) \ $(unit_execution_context_as_SOURCES) \ - $(unit_execution_execute_SOURCES) \ $(unit_execution_executor_SOURCES) \ $(unit_execution_invocable_archetype_SOURCES) \ $(unit_execution_mapping_SOURCES) \ - $(unit_execution_operation_state_SOURCES) \ $(unit_execution_outstanding_work_SOURCES) \ $(unit_execution_prefer_only_SOURCES) \ - $(unit_execution_receiver_SOURCES) \ $(unit_execution_relationship_SOURCES) \ - $(unit_execution_schedule_SOURCES) \ - $(unit_execution_scheduler_SOURCES) \ - $(unit_execution_sender_SOURCES) \ - $(unit_execution_set_done_SOURCES) \ - $(unit_execution_set_error_SOURCES) \ - $(unit_execution_set_value_SOURCES) \ - $(unit_execution_start_SOURCES) \ - $(unit_execution_submit_SOURCES) \ $(unit_execution_context_SOURCES) $(unit_executor_SOURCES) \ $(unit_executor_work_guard_SOURCES) \ $(am__unit_experimental_awaitable_operators_SOURCES_DIST) \ + $(am__unit_experimental_basic_channel_SOURCES_DIST) \ + $(am__unit_experimental_basic_concurrent_channel_SOURCES_DIST) \ + $(am__unit_experimental_channel_SOURCES_DIST) \ + $(am__unit_experimental_channel_traits_SOURCES_DIST) \ + $(am__unit_experimental_co_composed_SOURCES_DIST) \ + $(am__unit_experimental_concurrent_channel_SOURCES_DIST) \ + $(am__unit_experimental_coro_allocator_SOURCES_DIST) \ $(am__unit_experimental_coro_cancel_SOURCES_DIST) \ + $(am__unit_experimental_coro_co_spawn_SOURCES_DIST) \ $(am__unit_experimental_coro_exception_SOURCES_DIST) \ + $(am__unit_experimental_coro_executor_SOURCES_DIST) \ $(am__unit_experimental_coro_partial_SOURCES_DIST) \ $(am__unit_experimental_coro_simple_test_SOURCES_DIST) \ $(am__unit_experimental_coro_stack_test_SOURCES_DIST) \ $(am__unit_experimental_coro_use_coro_SOURCES_DIST) \ - $(am__unit_experimental_deferred_SOURCES_DIST) \ + $(am__unit_experimental_parallel_group_SOURCES_DIST) \ $(am__unit_experimental_promise_SOURCES_DIST) \ + $(unit_file_base_SOURCES) \ $(unit_generic_basic_endpoint_SOURCES) \ $(unit_generic_datagram_protocol_SOURCES) \ $(unit_generic_raw_protocol_SOURCES) \ @@ -1802,6 +2021,7 @@ DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ $(unit_local_basic_endpoint_SOURCES) \ $(unit_local_connect_pair_SOURCES) \ $(unit_local_datagram_protocol_SOURCES) \ + $(unit_local_seq_packet_protocol_SOURCES) \ $(unit_local_stream_protocol_SOURCES) \ $(unit_packaged_task_SOURCES) $(unit_placeholders_SOURCES) \ $(unit_posix_basic_descriptor_SOURCES) \ @@ -1809,10 +2029,14 @@ DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ $(unit_posix_descriptor_SOURCES) \ $(unit_posix_descriptor_base_SOURCES) \ $(unit_posix_stream_descriptor_SOURCES) $(unit_post_SOURCES) \ + $(unit_prepend_SOURCES) $(unit_random_access_file_SOURCES) \ $(unit_read_SOURCES) $(unit_read_at_SOURCES) \ - $(unit_read_until_SOURCES) $(unit_redirect_error_SOURCES) \ - $(unit_serial_port_SOURCES) $(unit_serial_port_base_SOURCES) \ - $(unit_signal_set_SOURCES) $(unit_socket_base_SOURCES) \ + $(unit_read_until_SOURCES) $(unit_readable_pipe_SOURCES) \ + $(unit_recycling_allocator_SOURCES) \ + $(unit_redirect_error_SOURCES) \ + $(unit_registered_buffer_SOURCES) $(unit_serial_port_SOURCES) \ + $(unit_serial_port_base_SOURCES) $(unit_signal_set_SOURCES) \ + $(unit_signal_set_base_SOURCES) $(unit_socket_base_SOURCES) \ $(am__unit_ssl_context_SOURCES_DIST) \ $(am__unit_ssl_context_base_SOURCES_DIST) \ $(am__unit_ssl_error_SOURCES_DIST) \ @@ -1822,16 +2046,17 @@ DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ $(am__unit_ssl_stream_base_SOURCES_DIST) \ $(unit_static_thread_pool_SOURCES) \ $(unit_steady_timer_SOURCES) $(unit_strand_SOURCES) \ - $(unit_streambuf_SOURCES) $(unit_system_context_SOURCES) \ - $(unit_system_executor_SOURCES) $(unit_system_timer_SOURCES) \ - $(unit_this_coro_SOURCES) $(unit_thread_SOURCES) \ - $(unit_thread_pool_SOURCES) $(unit_time_traits_SOURCES) \ - $(unit_ts_buffer_SOURCES) $(unit_ts_executor_SOURCES) \ - $(unit_ts_internet_SOURCES) $(unit_ts_io_context_SOURCES) \ - $(unit_ts_net_SOURCES) $(unit_ts_netfwd_SOURCES) \ - $(unit_ts_socket_SOURCES) $(unit_ts_timer_SOURCES) \ - $(unit_use_awaitable_SOURCES) $(unit_use_future_SOURCES) \ - $(unit_uses_executor_SOURCES) $(unit_wait_traits_SOURCES) \ + $(unit_stream_file_SOURCES) $(unit_streambuf_SOURCES) \ + $(unit_system_context_SOURCES) $(unit_system_executor_SOURCES) \ + $(unit_system_timer_SOURCES) $(unit_this_coro_SOURCES) \ + $(unit_thread_SOURCES) $(unit_thread_pool_SOURCES) \ + $(unit_time_traits_SOURCES) $(unit_ts_buffer_SOURCES) \ + $(unit_ts_executor_SOURCES) $(unit_ts_internet_SOURCES) \ + $(unit_ts_io_context_SOURCES) $(unit_ts_net_SOURCES) \ + $(unit_ts_netfwd_SOURCES) $(unit_ts_socket_SOURCES) \ + $(unit_ts_timer_SOURCES) $(unit_use_awaitable_SOURCES) \ + $(unit_use_future_SOURCES) $(unit_uses_executor_SOURCES) \ + $(unit_wait_traits_SOURCES) \ $(unit_windows_basic_object_handle_SOURCES) \ $(unit_windows_basic_overlapped_handle_SOURCES) \ $(unit_windows_basic_random_access_handle_SOURCES) \ @@ -1840,7 +2065,8 @@ DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ $(unit_windows_overlapped_handle_SOURCES) \ $(unit_windows_overlapped_ptr_SOURCES) \ $(unit_windows_random_access_handle_SOURCES) \ - $(unit_windows_stream_handle_SOURCES) $(unit_write_SOURCES) \ + $(unit_windows_stream_handle_SOURCES) \ + $(unit_writable_pipe_SOURCES) $(unit_write_SOURCES) \ $(unit_write_at_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ @@ -1881,8 +2107,6 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no @@ -2065,6 +2289,7 @@ am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` +AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test @@ -2126,8 +2351,9 @@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ @@ -2136,9 +2362,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ -GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -2205,9 +2430,11 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -2233,26 +2460,40 @@ AM_CXXFLAGS = -I$(srcdir)/../../include @STANDALONE_FALSE@latency_udp_server_SOURCES = latency/udp_server.cpp @STANDALONE_FALSE@performance_client_SOURCES = performance/client.cpp @STANDALONE_FALSE@performance_server_SOURCES = performance/server.cpp +unit_any_completion_executor_SOURCES = unit/any_completion_executor.cpp +unit_any_completion_handler_SOURCES = unit/any_completion_handler.cpp +unit_any_io_executor_SOURCES = unit/any_io_executor.cpp +unit_append_SOURCES = unit/append.cpp +unit_as_tuple_SOURCES = unit/as_tuple.cpp unit_associated_allocator_SOURCES = unit/associated_allocator.cpp unit_associated_cancellation_slot_SOURCES = unit/associated_cancellation_slot.cpp unit_associated_executor_SOURCES = unit/associated_executor.cpp +unit_associated_immediate_executor_SOURCES = unit/associated_immediate_executor.cpp unit_associator_SOURCES = unit/associator.cpp unit_async_result_SOURCES = unit/async_result.cpp unit_awaitable_SOURCES = unit/awaitable.cpp unit_basic_datagram_socket_SOURCES = unit/basic_datagram_socket.cpp unit_basic_deadline_timer_SOURCES = unit/basic_deadline_timer.cpp +unit_basic_file_SOURCES = unit/basic_file.cpp +unit_basic_random_access_file_SOURCES = unit/basic_random_access_file.cpp unit_basic_raw_socket_SOURCES = unit/basic_raw_socket.cpp +unit_basic_readable_pipe_SOURCES = unit/basic_readable_pipe.cpp unit_basic_seq_packet_socket_SOURCES = unit/basic_seq_packet_socket.cpp unit_basic_serial_port_SOURCES = unit/basic_serial_port.cpp unit_basic_signal_set_SOURCES = unit/basic_signal_set.cpp unit_basic_socket_SOURCES = unit/basic_socket.cpp unit_basic_socket_acceptor_SOURCES = unit/basic_socket_acceptor.cpp +unit_basic_stream_file_SOURCES = unit/basic_stream_file.cpp unit_basic_stream_socket_SOURCES = unit/basic_stream_socket.cpp unit_basic_streambuf_SOURCES = unit/basic_streambuf.cpp unit_basic_waitable_timer_SOURCES = unit/basic_waitable_timer.cpp +unit_basic_writable_pipe_SOURCES = unit/basic_writable_pipe.cpp +unit_bind_allocator_SOURCES = unit/bind_allocator.cpp unit_bind_cancellation_slot_SOURCES = unit/bind_cancellation_slot.cpp unit_bind_executor_SOURCES = unit/bind_executor.cpp +unit_bind_immediate_executor_SOURCES = unit/bind_immediate_executor.cpp unit_buffer_SOURCES = unit/buffer.cpp +unit_buffer_registration_SOURCES = unit/buffer_registration.cpp unit_buffers_iterator_SOURCES = unit/buffers_iterator.cpp unit_buffered_read_stream_SOURCES = unit/buffered_read_stream.cpp unit_buffered_stream_SOURCES = unit/buffered_stream.cpp @@ -2264,39 +2505,29 @@ unit_co_spawn_SOURCES = unit/co_spawn.cpp unit_completion_condition_SOURCES = unit/completion_condition.cpp unit_compose_SOURCES = unit/compose.cpp unit_connect_SOURCES = unit/connect.cpp +unit_connect_pipe_SOURCES = unit/connect_pipe.cpp +unit_consign_SOURCES = unit/consign.cpp unit_coroutine_SOURCES = unit/coroutine.cpp unit_deadline_timer_SOURCES = unit/deadline_timer.cpp unit_defer_SOURCES = unit/defer.cpp +unit_deferred_SOURCES = unit/deferred.cpp unit_detached_SOURCES = unit/detached.cpp unit_dispatch_SOURCES = unit/dispatch.cpp unit_error_SOURCES = unit/error.cpp unit_execution_any_executor_SOURCES = unit/execution/any_executor.cpp unit_execution_blocking_SOURCES = unit/execution/blocking.cpp unit_execution_blocking_adaptation_SOURCES = unit/execution/blocking_adaptation.cpp -unit_execution_bulk_execute_SOURCES = unit/execution/bulk_execute.cpp -unit_execution_bulk_guarantee_SOURCES = unit/execution/bulk_guarantee.cpp -unit_execution_connect_SOURCES = unit/execution/connect.cpp unit_execution_context_as_SOURCES = unit/execution/context_as.cpp -unit_execution_execute_SOURCES = unit/execution/execute.cpp unit_execution_executor_SOURCES = unit/execution/executor.cpp unit_execution_invocable_archetype_SOURCES = unit/execution/invocable_archetype.cpp unit_execution_mapping_SOURCES = unit/execution/mapping.cpp unit_execution_outstanding_work_SOURCES = unit/execution/outstanding_work.cpp -unit_execution_operation_state_SOURCES = unit/execution/operation_state.cpp unit_execution_prefer_only_SOURCES = unit/execution/prefer_only.cpp -unit_execution_receiver_SOURCES = unit/execution/receiver.cpp unit_execution_relationship_SOURCES = unit/execution/relationship.cpp -unit_execution_schedule_SOURCES = unit/execution/schedule.cpp -unit_execution_scheduler_SOURCES = unit/execution/scheduler.cpp -unit_execution_sender_SOURCES = unit/execution/sender.cpp -unit_execution_set_done_SOURCES = unit/execution/set_done.cpp -unit_execution_set_error_SOURCES = unit/execution/set_error.cpp -unit_execution_set_value_SOURCES = unit/execution/set_value.cpp -unit_execution_start_SOURCES = unit/execution/start.cpp -unit_execution_submit_SOURCES = unit/execution/submit.cpp unit_execution_context_SOURCES = unit/execution_context.cpp unit_executor_SOURCES = unit/executor.cpp unit_executor_work_guard_SOURCES = unit/executor_work_guard.cpp +unit_file_base_SOURCES = unit/file_base.cpp unit_generic_basic_endpoint_SOURCES = unit/generic/basic_endpoint.cpp unit_generic_datagram_protocol_SOURCES = unit/generic/datagram_protocol.cpp unit_generic_raw_protocol_SOURCES = unit/generic/raw_protocol.cpp @@ -2332,6 +2563,7 @@ unit_is_write_buffered_SOURCES = unit/is_write_buffered.cpp unit_local_basic_endpoint_SOURCES = unit/local/basic_endpoint.cpp unit_local_connect_pair_SOURCES = unit/local/connect_pair.cpp unit_local_datagram_protocol_SOURCES = unit/local/datagram_protocol.cpp +unit_local_seq_packet_protocol_SOURCES = unit/local/seq_packet_protocol.cpp unit_local_stream_protocol_SOURCES = unit/local/stream_protocol.cpp unit_packaged_task_SOURCES = unit/packaged_task.cpp unit_placeholders_SOURCES = unit/placeholders.cpp @@ -2341,17 +2573,24 @@ unit_posix_descriptor_SOURCES = unit/posix/descriptor.cpp unit_posix_descriptor_base_SOURCES = unit/posix/descriptor_base.cpp unit_posix_stream_descriptor_SOURCES = unit/posix/stream_descriptor.cpp unit_post_SOURCES = unit/post.cpp +unit_prepend_SOURCES = unit/prepend.cpp +unit_random_access_file_SOURCES = unit/random_access_file.cpp unit_read_SOURCES = unit/read.cpp unit_read_at_SOURCES = unit/read_at.cpp unit_read_until_SOURCES = unit/read_until.cpp +unit_readable_pipe_SOURCES = unit/readable_pipe.cpp +unit_recycling_allocator_SOURCES = unit/recycling_allocator.cpp unit_redirect_error_SOURCES = unit/redirect_error.cpp +unit_registered_buffer_SOURCES = unit/registered_buffer.cpp unit_serial_port_SOURCES = unit/serial_port.cpp unit_serial_port_base_SOURCES = unit/serial_port_base.cpp unit_signal_set_SOURCES = unit/signal_set.cpp +unit_signal_set_base_SOURCES = unit/signal_set_base.cpp unit_socket_base_SOURCES = unit/socket_base.cpp unit_static_thread_pool_SOURCES = unit/static_thread_pool.cpp unit_steady_timer_SOURCES = unit/steady_timer.cpp unit_strand_SOURCES = unit/strand.cpp +unit_stream_file_SOURCES = unit/stream_file.cpp unit_streambuf_SOURCES = unit/streambuf.cpp unit_system_context_SOURCES = unit/system_context.cpp unit_system_executor_SOURCES = unit/system_executor.cpp @@ -2381,13 +2620,23 @@ unit_windows_overlapped_handle_SOURCES = unit/windows/overlapped_handle.cpp unit_windows_overlapped_ptr_SOURCES = unit/windows/overlapped_ptr.cpp unit_windows_random_access_handle_SOURCES = unit/windows/random_access_handle.cpp unit_windows_stream_handle_SOURCES = unit/windows/stream_handle.cpp +unit_writable_pipe_SOURCES = unit/writable_pipe.cpp unit_write_SOURCES = unit/write.cpp unit_write_at_SOURCES = unit/write_at.cpp -@HAVE_CXX14_TRUE@unit_experimental_deferred_SOURCES = unit/experimental/deferred.cpp +@HAVE_CXX11_TRUE@unit_experimental_basic_channel_SOURCES = unit/experimental/basic_channel.cpp +@HAVE_CXX11_TRUE@unit_experimental_basic_concurrent_channel_SOURCES = unit/experimental/basic_concurrent_channel.cpp +@HAVE_CXX11_TRUE@unit_experimental_channel_SOURCES = unit/experimental/channel.cpp +@HAVE_CXX11_TRUE@unit_experimental_channel_traits_SOURCES = unit/experimental/channel_traits.cpp +@HAVE_CXX11_TRUE@unit_experimental_concurrent_channel_SOURCES = unit/experimental/concurrent_channel.cpp +@HAVE_CXX11_TRUE@unit_experimental_parallel_group_SOURCES = unit/experimental/parallel_group.cpp @HAVE_CXX20_TRUE@unit_experimental_promise_SOURCES = unit/experimental/promise.cpp @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_awaitable_operators_SOURCES = unit/experimental/awaitable_operators.cpp +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_co_composed_SOURCES = unit/experimental/co_composed.cpp +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_allocator_SOURCES = unit/experimental/coro/allocator.cpp @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_cancel_SOURCES = unit/experimental/coro/cancel.cpp +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_co_spawn_SOURCES = unit/experimental/coro/co_spawn.cpp @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_exception_SOURCES = unit/experimental/coro/exception.cpp +@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_executor_SOURCES = unit/experimental/coro/executor.cpp @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_partial_SOURCES = unit/experimental/coro/partial.cpp @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_simple_test_SOURCES = unit/experimental/coro/simple_test.cpp @HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_stack_test_SOURCES = unit/experimental/coro/stack_test.cpp @@ -2520,6 +2769,36 @@ unit/$(am__dirstamp): unit/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) unit/$(DEPDIR) @: > unit/$(DEPDIR)/$(am__dirstamp) +unit/any_completion_executor.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/any_completion_executor$(EXEEXT): $(unit_any_completion_executor_OBJECTS) $(unit_any_completion_executor_DEPENDENCIES) $(EXTRA_unit_any_completion_executor_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/any_completion_executor$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_any_completion_executor_OBJECTS) $(unit_any_completion_executor_LDADD) $(LIBS) +unit/any_completion_handler.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/any_completion_handler$(EXEEXT): $(unit_any_completion_handler_OBJECTS) $(unit_any_completion_handler_DEPENDENCIES) $(EXTRA_unit_any_completion_handler_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/any_completion_handler$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_any_completion_handler_OBJECTS) $(unit_any_completion_handler_LDADD) $(LIBS) +unit/any_io_executor.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/any_io_executor$(EXEEXT): $(unit_any_io_executor_OBJECTS) $(unit_any_io_executor_DEPENDENCIES) $(EXTRA_unit_any_io_executor_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/any_io_executor$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_any_io_executor_OBJECTS) $(unit_any_io_executor_LDADD) $(LIBS) +unit/append.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/append$(EXEEXT): $(unit_append_OBJECTS) $(unit_append_DEPENDENCIES) $(EXTRA_unit_append_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/append$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_append_OBJECTS) $(unit_append_LDADD) $(LIBS) +unit/as_tuple.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/as_tuple$(EXEEXT): $(unit_as_tuple_OBJECTS) $(unit_as_tuple_DEPENDENCIES) $(EXTRA_unit_as_tuple_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/as_tuple$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_as_tuple_OBJECTS) $(unit_as_tuple_LDADD) $(LIBS) unit/associated_allocator.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -2538,6 +2817,12 @@ unit/associated_executor.$(OBJEXT): unit/$(am__dirstamp) \ unit/associated_executor$(EXEEXT): $(unit_associated_executor_OBJECTS) $(unit_associated_executor_DEPENDENCIES) $(EXTRA_unit_associated_executor_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/associated_executor$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_associated_executor_OBJECTS) $(unit_associated_executor_LDADD) $(LIBS) +unit/associated_immediate_executor.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/associated_immediate_executor$(EXEEXT): $(unit_associated_immediate_executor_OBJECTS) $(unit_associated_immediate_executor_DEPENDENCIES) $(EXTRA_unit_associated_immediate_executor_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/associated_immediate_executor$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_associated_immediate_executor_OBJECTS) $(unit_associated_immediate_executor_LDADD) $(LIBS) unit/associator.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -2568,12 +2853,30 @@ unit/basic_deadline_timer.$(OBJEXT): unit/$(am__dirstamp) \ unit/basic_deadline_timer$(EXEEXT): $(unit_basic_deadline_timer_OBJECTS) $(unit_basic_deadline_timer_DEPENDENCIES) $(EXTRA_unit_basic_deadline_timer_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/basic_deadline_timer$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_deadline_timer_OBJECTS) $(unit_basic_deadline_timer_LDADD) $(LIBS) +unit/basic_file.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/basic_file$(EXEEXT): $(unit_basic_file_OBJECTS) $(unit_basic_file_DEPENDENCIES) $(EXTRA_unit_basic_file_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/basic_file$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_file_OBJECTS) $(unit_basic_file_LDADD) $(LIBS) +unit/basic_random_access_file.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/basic_random_access_file$(EXEEXT): $(unit_basic_random_access_file_OBJECTS) $(unit_basic_random_access_file_DEPENDENCIES) $(EXTRA_unit_basic_random_access_file_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/basic_random_access_file$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_random_access_file_OBJECTS) $(unit_basic_random_access_file_LDADD) $(LIBS) unit/basic_raw_socket.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) unit/basic_raw_socket$(EXEEXT): $(unit_basic_raw_socket_OBJECTS) $(unit_basic_raw_socket_DEPENDENCIES) $(EXTRA_unit_basic_raw_socket_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/basic_raw_socket$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_raw_socket_OBJECTS) $(unit_basic_raw_socket_LDADD) $(LIBS) +unit/basic_readable_pipe.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/basic_readable_pipe$(EXEEXT): $(unit_basic_readable_pipe_OBJECTS) $(unit_basic_readable_pipe_DEPENDENCIES) $(EXTRA_unit_basic_readable_pipe_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/basic_readable_pipe$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_readable_pipe_OBJECTS) $(unit_basic_readable_pipe_LDADD) $(LIBS) unit/basic_seq_packet_socket.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -2604,6 +2907,12 @@ unit/basic_socket_acceptor.$(OBJEXT): unit/$(am__dirstamp) \ unit/basic_socket_acceptor$(EXEEXT): $(unit_basic_socket_acceptor_OBJECTS) $(unit_basic_socket_acceptor_DEPENDENCIES) $(EXTRA_unit_basic_socket_acceptor_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/basic_socket_acceptor$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_socket_acceptor_OBJECTS) $(unit_basic_socket_acceptor_LDADD) $(LIBS) +unit/basic_stream_file.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/basic_stream_file$(EXEEXT): $(unit_basic_stream_file_OBJECTS) $(unit_basic_stream_file_DEPENDENCIES) $(EXTRA_unit_basic_stream_file_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/basic_stream_file$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_stream_file_OBJECTS) $(unit_basic_stream_file_LDADD) $(LIBS) unit/basic_stream_socket.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -2622,6 +2931,18 @@ unit/basic_waitable_timer.$(OBJEXT): unit/$(am__dirstamp) \ unit/basic_waitable_timer$(EXEEXT): $(unit_basic_waitable_timer_OBJECTS) $(unit_basic_waitable_timer_DEPENDENCIES) $(EXTRA_unit_basic_waitable_timer_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/basic_waitable_timer$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_waitable_timer_OBJECTS) $(unit_basic_waitable_timer_LDADD) $(LIBS) +unit/basic_writable_pipe.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/basic_writable_pipe$(EXEEXT): $(unit_basic_writable_pipe_OBJECTS) $(unit_basic_writable_pipe_DEPENDENCIES) $(EXTRA_unit_basic_writable_pipe_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/basic_writable_pipe$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_writable_pipe_OBJECTS) $(unit_basic_writable_pipe_LDADD) $(LIBS) +unit/bind_allocator.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/bind_allocator$(EXEEXT): $(unit_bind_allocator_OBJECTS) $(unit_bind_allocator_DEPENDENCIES) $(EXTRA_unit_bind_allocator_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/bind_allocator$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_bind_allocator_OBJECTS) $(unit_bind_allocator_LDADD) $(LIBS) unit/bind_cancellation_slot.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -2634,12 +2955,24 @@ unit/bind_executor.$(OBJEXT): unit/$(am__dirstamp) \ unit/bind_executor$(EXEEXT): $(unit_bind_executor_OBJECTS) $(unit_bind_executor_DEPENDENCIES) $(EXTRA_unit_bind_executor_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/bind_executor$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_bind_executor_OBJECTS) $(unit_bind_executor_LDADD) $(LIBS) +unit/bind_immediate_executor.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/bind_immediate_executor$(EXEEXT): $(unit_bind_immediate_executor_OBJECTS) $(unit_bind_immediate_executor_DEPENDENCIES) $(EXTRA_unit_bind_immediate_executor_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/bind_immediate_executor$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_bind_immediate_executor_OBJECTS) $(unit_bind_immediate_executor_LDADD) $(LIBS) unit/buffer.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) unit/buffer$(EXEEXT): $(unit_buffer_OBJECTS) $(unit_buffer_DEPENDENCIES) $(EXTRA_unit_buffer_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/buffer$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_buffer_OBJECTS) $(unit_buffer_LDADD) $(LIBS) +unit/buffer_registration.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/buffer_registration$(EXEEXT): $(unit_buffer_registration_OBJECTS) $(unit_buffer_registration_DEPENDENCIES) $(EXTRA_unit_buffer_registration_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/buffer_registration$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_buffer_registration_OBJECTS) $(unit_buffer_registration_LDADD) $(LIBS) unit/buffered_read_stream.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -2706,6 +3039,18 @@ unit/connect.$(OBJEXT): unit/$(am__dirstamp) \ unit/connect$(EXEEXT): $(unit_connect_OBJECTS) $(unit_connect_DEPENDENCIES) $(EXTRA_unit_connect_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/connect$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_connect_OBJECTS) $(unit_connect_LDADD) $(LIBS) +unit/connect_pipe.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/connect_pipe$(EXEEXT): $(unit_connect_pipe_OBJECTS) $(unit_connect_pipe_DEPENDENCIES) $(EXTRA_unit_connect_pipe_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/connect_pipe$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_connect_pipe_OBJECTS) $(unit_connect_pipe_LDADD) $(LIBS) +unit/consign.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/consign$(EXEEXT): $(unit_consign_OBJECTS) $(unit_consign_DEPENDENCIES) $(EXTRA_unit_consign_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/consign$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_consign_OBJECTS) $(unit_consign_LDADD) $(LIBS) unit/coroutine.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -2724,6 +3069,12 @@ unit/defer.$(OBJEXT): unit/$(am__dirstamp) \ unit/defer$(EXEEXT): $(unit_defer_OBJECTS) $(unit_defer_DEPENDENCIES) $(EXTRA_unit_defer_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/defer$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_defer_OBJECTS) $(unit_defer_LDADD) $(LIBS) +unit/deferred.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/deferred$(EXEEXT): $(unit_deferred_OBJECTS) $(unit_deferred_DEPENDENCIES) $(EXTRA_unit_deferred_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/deferred$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_deferred_OBJECTS) $(unit_deferred_LDADD) $(LIBS) unit/detached.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -2767,37 +3118,12 @@ unit/execution/blocking_adaptation.$(OBJEXT): \ unit/execution/blocking_adaptation$(EXEEXT): $(unit_execution_blocking_adaptation_OBJECTS) $(unit_execution_blocking_adaptation_DEPENDENCIES) $(EXTRA_unit_execution_blocking_adaptation_DEPENDENCIES) unit/execution/$(am__dirstamp) @rm -f unit/execution/blocking_adaptation$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_blocking_adaptation_OBJECTS) $(unit_execution_blocking_adaptation_LDADD) $(LIBS) -unit/execution/bulk_execute.$(OBJEXT): unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/bulk_execute$(EXEEXT): $(unit_execution_bulk_execute_OBJECTS) $(unit_execution_bulk_execute_DEPENDENCIES) $(EXTRA_unit_execution_bulk_execute_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/bulk_execute$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_bulk_execute_OBJECTS) $(unit_execution_bulk_execute_LDADD) $(LIBS) -unit/execution/bulk_guarantee.$(OBJEXT): \ - unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/bulk_guarantee$(EXEEXT): $(unit_execution_bulk_guarantee_OBJECTS) $(unit_execution_bulk_guarantee_DEPENDENCIES) $(EXTRA_unit_execution_bulk_guarantee_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/bulk_guarantee$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_bulk_guarantee_OBJECTS) $(unit_execution_bulk_guarantee_LDADD) $(LIBS) -unit/execution/connect.$(OBJEXT): unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/connect$(EXEEXT): $(unit_execution_connect_OBJECTS) $(unit_execution_connect_DEPENDENCIES) $(EXTRA_unit_execution_connect_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/connect$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_connect_OBJECTS) $(unit_execution_connect_LDADD) $(LIBS) unit/execution/context_as.$(OBJEXT): unit/execution/$(am__dirstamp) \ unit/execution/$(DEPDIR)/$(am__dirstamp) unit/execution/context_as$(EXEEXT): $(unit_execution_context_as_OBJECTS) $(unit_execution_context_as_DEPENDENCIES) $(EXTRA_unit_execution_context_as_DEPENDENCIES) unit/execution/$(am__dirstamp) @rm -f unit/execution/context_as$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_context_as_OBJECTS) $(unit_execution_context_as_LDADD) $(LIBS) -unit/execution/execute.$(OBJEXT): unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/execute$(EXEEXT): $(unit_execution_execute_OBJECTS) $(unit_execution_execute_DEPENDENCIES) $(EXTRA_unit_execution_execute_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/execute$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_execute_OBJECTS) $(unit_execution_execute_LDADD) $(LIBS) unit/execution/executor.$(OBJEXT): unit/execution/$(am__dirstamp) \ unit/execution/$(DEPDIR)/$(am__dirstamp) @@ -2817,13 +3143,6 @@ unit/execution/mapping.$(OBJEXT): unit/execution/$(am__dirstamp) \ unit/execution/mapping$(EXEEXT): $(unit_execution_mapping_OBJECTS) $(unit_execution_mapping_DEPENDENCIES) $(EXTRA_unit_execution_mapping_DEPENDENCIES) unit/execution/$(am__dirstamp) @rm -f unit/execution/mapping$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_mapping_OBJECTS) $(unit_execution_mapping_LDADD) $(LIBS) -unit/execution/operation_state.$(OBJEXT): \ - unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/operation_state$(EXEEXT): $(unit_execution_operation_state_OBJECTS) $(unit_execution_operation_state_DEPENDENCIES) $(EXTRA_unit_execution_operation_state_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/operation_state$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_operation_state_OBJECTS) $(unit_execution_operation_state_LDADD) $(LIBS) unit/execution/outstanding_work.$(OBJEXT): \ unit/execution/$(am__dirstamp) \ unit/execution/$(DEPDIR)/$(am__dirstamp) @@ -2837,66 +3156,12 @@ unit/execution/prefer_only.$(OBJEXT): unit/execution/$(am__dirstamp) \ unit/execution/prefer_only$(EXEEXT): $(unit_execution_prefer_only_OBJECTS) $(unit_execution_prefer_only_DEPENDENCIES) $(EXTRA_unit_execution_prefer_only_DEPENDENCIES) unit/execution/$(am__dirstamp) @rm -f unit/execution/prefer_only$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_prefer_only_OBJECTS) $(unit_execution_prefer_only_LDADD) $(LIBS) -unit/execution/receiver.$(OBJEXT): unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/receiver$(EXEEXT): $(unit_execution_receiver_OBJECTS) $(unit_execution_receiver_DEPENDENCIES) $(EXTRA_unit_execution_receiver_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/receiver$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_receiver_OBJECTS) $(unit_execution_receiver_LDADD) $(LIBS) unit/execution/relationship.$(OBJEXT): unit/execution/$(am__dirstamp) \ unit/execution/$(DEPDIR)/$(am__dirstamp) unit/execution/relationship$(EXEEXT): $(unit_execution_relationship_OBJECTS) $(unit_execution_relationship_DEPENDENCIES) $(EXTRA_unit_execution_relationship_DEPENDENCIES) unit/execution/$(am__dirstamp) @rm -f unit/execution/relationship$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_relationship_OBJECTS) $(unit_execution_relationship_LDADD) $(LIBS) -unit/execution/schedule.$(OBJEXT): unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/schedule$(EXEEXT): $(unit_execution_schedule_OBJECTS) $(unit_execution_schedule_DEPENDENCIES) $(EXTRA_unit_execution_schedule_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/schedule$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_schedule_OBJECTS) $(unit_execution_schedule_LDADD) $(LIBS) -unit/execution/scheduler.$(OBJEXT): unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/scheduler$(EXEEXT): $(unit_execution_scheduler_OBJECTS) $(unit_execution_scheduler_DEPENDENCIES) $(EXTRA_unit_execution_scheduler_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/scheduler$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_scheduler_OBJECTS) $(unit_execution_scheduler_LDADD) $(LIBS) -unit/execution/sender.$(OBJEXT): unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/sender$(EXEEXT): $(unit_execution_sender_OBJECTS) $(unit_execution_sender_DEPENDENCIES) $(EXTRA_unit_execution_sender_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/sender$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_sender_OBJECTS) $(unit_execution_sender_LDADD) $(LIBS) -unit/execution/set_done.$(OBJEXT): unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/set_done$(EXEEXT): $(unit_execution_set_done_OBJECTS) $(unit_execution_set_done_DEPENDENCIES) $(EXTRA_unit_execution_set_done_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/set_done$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_set_done_OBJECTS) $(unit_execution_set_done_LDADD) $(LIBS) -unit/execution/set_error.$(OBJEXT): unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/set_error$(EXEEXT): $(unit_execution_set_error_OBJECTS) $(unit_execution_set_error_DEPENDENCIES) $(EXTRA_unit_execution_set_error_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/set_error$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_set_error_OBJECTS) $(unit_execution_set_error_LDADD) $(LIBS) -unit/execution/set_value.$(OBJEXT): unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/set_value$(EXEEXT): $(unit_execution_set_value_OBJECTS) $(unit_execution_set_value_DEPENDENCIES) $(EXTRA_unit_execution_set_value_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/set_value$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_set_value_OBJECTS) $(unit_execution_set_value_LDADD) $(LIBS) -unit/execution/start.$(OBJEXT): unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/start$(EXEEXT): $(unit_execution_start_OBJECTS) $(unit_execution_start_DEPENDENCIES) $(EXTRA_unit_execution_start_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/start$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_start_OBJECTS) $(unit_execution_start_LDADD) $(LIBS) -unit/execution/submit.$(OBJEXT): unit/execution/$(am__dirstamp) \ - unit/execution/$(DEPDIR)/$(am__dirstamp) - -unit/execution/submit$(EXEEXT): $(unit_execution_submit_OBJECTS) $(unit_execution_submit_DEPENDENCIES) $(EXTRA_unit_execution_submit_DEPENDENCIES) unit/execution/$(am__dirstamp) - @rm -f unit/execution/submit$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_submit_OBJECTS) $(unit_execution_submit_LDADD) $(LIBS) unit/execution_context.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -2928,12 +3193,61 @@ unit/experimental/awaitable_operators.$(OBJEXT): \ unit/experimental/awaitable_operators$(EXEEXT): $(unit_experimental_awaitable_operators_OBJECTS) $(unit_experimental_awaitable_operators_DEPENDENCIES) $(EXTRA_unit_experimental_awaitable_operators_DEPENDENCIES) unit/experimental/$(am__dirstamp) @rm -f unit/experimental/awaitable_operators$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_awaitable_operators_OBJECTS) $(unit_experimental_awaitable_operators_LDADD) $(LIBS) +unit/experimental/basic_channel.$(OBJEXT): \ + unit/experimental/$(am__dirstamp) \ + unit/experimental/$(DEPDIR)/$(am__dirstamp) + +unit/experimental/basic_channel$(EXEEXT): $(unit_experimental_basic_channel_OBJECTS) $(unit_experimental_basic_channel_DEPENDENCIES) $(EXTRA_unit_experimental_basic_channel_DEPENDENCIES) unit/experimental/$(am__dirstamp) + @rm -f unit/experimental/basic_channel$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_basic_channel_OBJECTS) $(unit_experimental_basic_channel_LDADD) $(LIBS) +unit/experimental/basic_concurrent_channel.$(OBJEXT): \ + unit/experimental/$(am__dirstamp) \ + unit/experimental/$(DEPDIR)/$(am__dirstamp) + +unit/experimental/basic_concurrent_channel$(EXEEXT): $(unit_experimental_basic_concurrent_channel_OBJECTS) $(unit_experimental_basic_concurrent_channel_DEPENDENCIES) $(EXTRA_unit_experimental_basic_concurrent_channel_DEPENDENCIES) unit/experimental/$(am__dirstamp) + @rm -f unit/experimental/basic_concurrent_channel$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_basic_concurrent_channel_OBJECTS) $(unit_experimental_basic_concurrent_channel_LDADD) $(LIBS) +unit/experimental/channel.$(OBJEXT): \ + unit/experimental/$(am__dirstamp) \ + unit/experimental/$(DEPDIR)/$(am__dirstamp) + +unit/experimental/channel$(EXEEXT): $(unit_experimental_channel_OBJECTS) $(unit_experimental_channel_DEPENDENCIES) $(EXTRA_unit_experimental_channel_DEPENDENCIES) unit/experimental/$(am__dirstamp) + @rm -f unit/experimental/channel$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_channel_OBJECTS) $(unit_experimental_channel_LDADD) $(LIBS) +unit/experimental/channel_traits.$(OBJEXT): \ + unit/experimental/$(am__dirstamp) \ + unit/experimental/$(DEPDIR)/$(am__dirstamp) + +unit/experimental/channel_traits$(EXEEXT): $(unit_experimental_channel_traits_OBJECTS) $(unit_experimental_channel_traits_DEPENDENCIES) $(EXTRA_unit_experimental_channel_traits_DEPENDENCIES) unit/experimental/$(am__dirstamp) + @rm -f unit/experimental/channel_traits$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_channel_traits_OBJECTS) $(unit_experimental_channel_traits_LDADD) $(LIBS) +unit/experimental/co_composed.$(OBJEXT): \ + unit/experimental/$(am__dirstamp) \ + unit/experimental/$(DEPDIR)/$(am__dirstamp) + +unit/experimental/co_composed$(EXEEXT): $(unit_experimental_co_composed_OBJECTS) $(unit_experimental_co_composed_DEPENDENCIES) $(EXTRA_unit_experimental_co_composed_DEPENDENCIES) unit/experimental/$(am__dirstamp) + @rm -f unit/experimental/co_composed$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_co_composed_OBJECTS) $(unit_experimental_co_composed_LDADD) $(LIBS) +unit/experimental/concurrent_channel.$(OBJEXT): \ + unit/experimental/$(am__dirstamp) \ + unit/experimental/$(DEPDIR)/$(am__dirstamp) + +unit/experimental/concurrent_channel$(EXEEXT): $(unit_experimental_concurrent_channel_OBJECTS) $(unit_experimental_concurrent_channel_DEPENDENCIES) $(EXTRA_unit_experimental_concurrent_channel_DEPENDENCIES) unit/experimental/$(am__dirstamp) + @rm -f unit/experimental/concurrent_channel$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_concurrent_channel_OBJECTS) $(unit_experimental_concurrent_channel_LDADD) $(LIBS) unit/experimental/coro/$(am__dirstamp): @$(MKDIR_P) unit/experimental/coro @: > unit/experimental/coro/$(am__dirstamp) unit/experimental/coro/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) unit/experimental/coro/$(DEPDIR) @: > unit/experimental/coro/$(DEPDIR)/$(am__dirstamp) +unit/experimental/coro/allocator.$(OBJEXT): \ + unit/experimental/coro/$(am__dirstamp) \ + unit/experimental/coro/$(DEPDIR)/$(am__dirstamp) + +unit/experimental/coro/allocator$(EXEEXT): $(unit_experimental_coro_allocator_OBJECTS) $(unit_experimental_coro_allocator_DEPENDENCIES) $(EXTRA_unit_experimental_coro_allocator_DEPENDENCIES) unit/experimental/coro/$(am__dirstamp) + @rm -f unit/experimental/coro/allocator$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_coro_allocator_OBJECTS) $(unit_experimental_coro_allocator_LDADD) $(LIBS) unit/experimental/coro/cancel.$(OBJEXT): \ unit/experimental/coro/$(am__dirstamp) \ unit/experimental/coro/$(DEPDIR)/$(am__dirstamp) @@ -2941,6 +3255,13 @@ unit/experimental/coro/cancel.$(OBJEXT): \ unit/experimental/coro/cancel$(EXEEXT): $(unit_experimental_coro_cancel_OBJECTS) $(unit_experimental_coro_cancel_DEPENDENCIES) $(EXTRA_unit_experimental_coro_cancel_DEPENDENCIES) unit/experimental/coro/$(am__dirstamp) @rm -f unit/experimental/coro/cancel$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_coro_cancel_OBJECTS) $(unit_experimental_coro_cancel_LDADD) $(LIBS) +unit/experimental/coro/co_spawn.$(OBJEXT): \ + unit/experimental/coro/$(am__dirstamp) \ + unit/experimental/coro/$(DEPDIR)/$(am__dirstamp) + +unit/experimental/coro/co_spawn$(EXEEXT): $(unit_experimental_coro_co_spawn_OBJECTS) $(unit_experimental_coro_co_spawn_DEPENDENCIES) $(EXTRA_unit_experimental_coro_co_spawn_DEPENDENCIES) unit/experimental/coro/$(am__dirstamp) + @rm -f unit/experimental/coro/co_spawn$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_coro_co_spawn_OBJECTS) $(unit_experimental_coro_co_spawn_LDADD) $(LIBS) unit/experimental/coro/exception.$(OBJEXT): \ unit/experimental/coro/$(am__dirstamp) \ unit/experimental/coro/$(DEPDIR)/$(am__dirstamp) @@ -2948,6 +3269,13 @@ unit/experimental/coro/exception.$(OBJEXT): \ unit/experimental/coro/exception$(EXEEXT): $(unit_experimental_coro_exception_OBJECTS) $(unit_experimental_coro_exception_DEPENDENCIES) $(EXTRA_unit_experimental_coro_exception_DEPENDENCIES) unit/experimental/coro/$(am__dirstamp) @rm -f unit/experimental/coro/exception$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_coro_exception_OBJECTS) $(unit_experimental_coro_exception_LDADD) $(LIBS) +unit/experimental/coro/executor.$(OBJEXT): \ + unit/experimental/coro/$(am__dirstamp) \ + unit/experimental/coro/$(DEPDIR)/$(am__dirstamp) + +unit/experimental/coro/executor$(EXEEXT): $(unit_experimental_coro_executor_OBJECTS) $(unit_experimental_coro_executor_DEPENDENCIES) $(EXTRA_unit_experimental_coro_executor_DEPENDENCIES) unit/experimental/coro/$(am__dirstamp) + @rm -f unit/experimental/coro/executor$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_coro_executor_OBJECTS) $(unit_experimental_coro_executor_LDADD) $(LIBS) unit/experimental/coro/partial.$(OBJEXT): \ unit/experimental/coro/$(am__dirstamp) \ unit/experimental/coro/$(DEPDIR)/$(am__dirstamp) @@ -2976,13 +3304,13 @@ unit/experimental/coro/use_coro.$(OBJEXT): \ unit/experimental/coro/use_coro$(EXEEXT): $(unit_experimental_coro_use_coro_OBJECTS) $(unit_experimental_coro_use_coro_DEPENDENCIES) $(EXTRA_unit_experimental_coro_use_coro_DEPENDENCIES) unit/experimental/coro/$(am__dirstamp) @rm -f unit/experimental/coro/use_coro$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_coro_use_coro_OBJECTS) $(unit_experimental_coro_use_coro_LDADD) $(LIBS) -unit/experimental/deferred.$(OBJEXT): \ +unit/experimental/parallel_group.$(OBJEXT): \ unit/experimental/$(am__dirstamp) \ unit/experimental/$(DEPDIR)/$(am__dirstamp) -unit/experimental/deferred$(EXEEXT): $(unit_experimental_deferred_OBJECTS) $(unit_experimental_deferred_DEPENDENCIES) $(EXTRA_unit_experimental_deferred_DEPENDENCIES) unit/experimental/$(am__dirstamp) - @rm -f unit/experimental/deferred$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_deferred_OBJECTS) $(unit_experimental_deferred_LDADD) $(LIBS) +unit/experimental/parallel_group$(EXEEXT): $(unit_experimental_parallel_group_OBJECTS) $(unit_experimental_parallel_group_DEPENDENCIES) $(EXTRA_unit_experimental_parallel_group_DEPENDENCIES) unit/experimental/$(am__dirstamp) + @rm -f unit/experimental/parallel_group$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_parallel_group_OBJECTS) $(unit_experimental_parallel_group_LDADD) $(LIBS) unit/experimental/promise.$(OBJEXT): \ unit/experimental/$(am__dirstamp) \ unit/experimental/$(DEPDIR)/$(am__dirstamp) @@ -2990,6 +3318,12 @@ unit/experimental/promise.$(OBJEXT): \ unit/experimental/promise$(EXEEXT): $(unit_experimental_promise_OBJECTS) $(unit_experimental_promise_DEPENDENCIES) $(EXTRA_unit_experimental_promise_DEPENDENCIES) unit/experimental/$(am__dirstamp) @rm -f unit/experimental/promise$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_promise_OBJECTS) $(unit_experimental_promise_LDADD) $(LIBS) +unit/file_base.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/file_base$(EXEEXT): $(unit_file_base_OBJECTS) $(unit_file_base_DEPENDENCIES) $(EXTRA_unit_file_base_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/file_base$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_file_base_OBJECTS) $(unit_file_base_LDADD) $(LIBS) unit/generic/$(am__dirstamp): @$(MKDIR_P) unit/generic @: > unit/generic/$(am__dirstamp) @@ -3220,6 +3554,12 @@ unit/local/datagram_protocol.$(OBJEXT): unit/local/$(am__dirstamp) \ unit/local/datagram_protocol$(EXEEXT): $(unit_local_datagram_protocol_OBJECTS) $(unit_local_datagram_protocol_DEPENDENCIES) $(EXTRA_unit_local_datagram_protocol_DEPENDENCIES) unit/local/$(am__dirstamp) @rm -f unit/local/datagram_protocol$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_local_datagram_protocol_OBJECTS) $(unit_local_datagram_protocol_LDADD) $(LIBS) +unit/local/seq_packet_protocol.$(OBJEXT): unit/local/$(am__dirstamp) \ + unit/local/$(DEPDIR)/$(am__dirstamp) + +unit/local/seq_packet_protocol$(EXEEXT): $(unit_local_seq_packet_protocol_OBJECTS) $(unit_local_seq_packet_protocol_DEPENDENCIES) $(EXTRA_unit_local_seq_packet_protocol_DEPENDENCIES) unit/local/$(am__dirstamp) + @rm -f unit/local/seq_packet_protocol$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_local_seq_packet_protocol_OBJECTS) $(unit_local_seq_packet_protocol_LDADD) $(LIBS) unit/local/stream_protocol.$(OBJEXT): unit/local/$(am__dirstamp) \ unit/local/$(DEPDIR)/$(am__dirstamp) @@ -3281,6 +3621,18 @@ unit/post.$(OBJEXT): unit/$(am__dirstamp) \ unit/post$(EXEEXT): $(unit_post_OBJECTS) $(unit_post_DEPENDENCIES) $(EXTRA_unit_post_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/post$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_post_OBJECTS) $(unit_post_LDADD) $(LIBS) +unit/prepend.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/prepend$(EXEEXT): $(unit_prepend_OBJECTS) $(unit_prepend_DEPENDENCIES) $(EXTRA_unit_prepend_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/prepend$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_prepend_OBJECTS) $(unit_prepend_LDADD) $(LIBS) +unit/random_access_file.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/random_access_file$(EXEEXT): $(unit_random_access_file_OBJECTS) $(unit_random_access_file_DEPENDENCIES) $(EXTRA_unit_random_access_file_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/random_access_file$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_random_access_file_OBJECTS) $(unit_random_access_file_LDADD) $(LIBS) unit/read.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -3299,12 +3651,30 @@ unit/read_until.$(OBJEXT): unit/$(am__dirstamp) \ unit/read_until$(EXEEXT): $(unit_read_until_OBJECTS) $(unit_read_until_DEPENDENCIES) $(EXTRA_unit_read_until_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/read_until$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_read_until_OBJECTS) $(unit_read_until_LDADD) $(LIBS) +unit/readable_pipe.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/readable_pipe$(EXEEXT): $(unit_readable_pipe_OBJECTS) $(unit_readable_pipe_DEPENDENCIES) $(EXTRA_unit_readable_pipe_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/readable_pipe$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_readable_pipe_OBJECTS) $(unit_readable_pipe_LDADD) $(LIBS) +unit/recycling_allocator.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/recycling_allocator$(EXEEXT): $(unit_recycling_allocator_OBJECTS) $(unit_recycling_allocator_DEPENDENCIES) $(EXTRA_unit_recycling_allocator_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/recycling_allocator$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_recycling_allocator_OBJECTS) $(unit_recycling_allocator_LDADD) $(LIBS) unit/redirect_error.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) unit/redirect_error$(EXEEXT): $(unit_redirect_error_OBJECTS) $(unit_redirect_error_DEPENDENCIES) $(EXTRA_unit_redirect_error_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/redirect_error$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_redirect_error_OBJECTS) $(unit_redirect_error_LDADD) $(LIBS) +unit/registered_buffer.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/registered_buffer$(EXEEXT): $(unit_registered_buffer_OBJECTS) $(unit_registered_buffer_DEPENDENCIES) $(EXTRA_unit_registered_buffer_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/registered_buffer$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_registered_buffer_OBJECTS) $(unit_registered_buffer_LDADD) $(LIBS) unit/serial_port.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -3323,6 +3693,12 @@ unit/signal_set.$(OBJEXT): unit/$(am__dirstamp) \ unit/signal_set$(EXEEXT): $(unit_signal_set_OBJECTS) $(unit_signal_set_DEPENDENCIES) $(EXTRA_unit_signal_set_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/signal_set$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_signal_set_OBJECTS) $(unit_signal_set_LDADD) $(LIBS) +unit/signal_set_base.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/signal_set_base$(EXEEXT): $(unit_signal_set_base_OBJECTS) $(unit_signal_set_base_DEPENDENCIES) $(EXTRA_unit_signal_set_base_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/signal_set_base$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_signal_set_base_OBJECTS) $(unit_signal_set_base_LDADD) $(LIBS) unit/socket_base.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -3395,6 +3771,12 @@ unit/strand.$(OBJEXT): unit/$(am__dirstamp) \ unit/strand$(EXEEXT): $(unit_strand_OBJECTS) $(unit_strand_DEPENDENCIES) $(EXTRA_unit_strand_DEPENDENCIES) unit/$(am__dirstamp) @rm -f unit/strand$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_strand_OBJECTS) $(unit_strand_LDADD) $(LIBS) +unit/stream_file.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/stream_file$(EXEEXT): $(unit_stream_file_OBJECTS) $(unit_stream_file_DEPENDENCIES) $(EXTRA_unit_stream_file_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/stream_file$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_stream_file_OBJECTS) $(unit_stream_file_LDADD) $(LIBS) unit/streambuf.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -3587,6 +3969,12 @@ unit/windows/stream_handle.$(OBJEXT): unit/windows/$(am__dirstamp) \ unit/windows/stream_handle$(EXEEXT): $(unit_windows_stream_handle_OBJECTS) $(unit_windows_stream_handle_DEPENDENCIES) $(EXTRA_unit_windows_stream_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) @rm -f unit/windows/stream_handle$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_stream_handle_OBJECTS) $(unit_windows_stream_handle_LDADD) $(LIBS) +unit/writable_pipe.$(OBJEXT): unit/$(am__dirstamp) \ + unit/$(DEPDIR)/$(am__dirstamp) + +unit/writable_pipe$(EXEEXT): $(unit_writable_pipe_OBJECTS) $(unit_writable_pipe_DEPENDENCIES) $(EXTRA_unit_writable_pipe_DEPENDENCIES) unit/$(am__dirstamp) + @rm -f unit/writable_pipe$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(unit_writable_pipe_OBJECTS) $(unit_writable_pipe_LDADD) $(LIBS) unit/write.$(OBJEXT): unit/$(am__dirstamp) \ unit/$(DEPDIR)/$(am__dirstamp) @@ -3628,26 +4016,40 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@latency/$(DEPDIR)/udp_server.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@performance/$(DEPDIR)/client.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@performance/$(DEPDIR)/server.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/any_completion_executor.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/any_completion_handler.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/any_io_executor.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/append.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/as_tuple.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associated_allocator.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associated_cancellation_slot.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associated_executor.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associated_immediate_executor.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associator.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/async_result.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/awaitable.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_datagram_socket.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_deadline_timer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_file.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_random_access_file.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_raw_socket.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_readable_pipe.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_seq_packet_socket.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_serial_port.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_signal_set.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_socket.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_socket_acceptor.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_stream_file.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_stream_socket.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_streambuf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_waitable_timer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_writable_pipe.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/bind_allocator.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/bind_cancellation_slot.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/bind_executor.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/bind_immediate_executor.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffer_registration.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffered_read_stream.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffered_stream.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffered_write_stream.Po@am__quote@ # am--include-marker @@ -3659,15 +4061,19 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/completion_condition.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/compose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/connect.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/connect_pipe.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/consign.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/coroutine.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/deadline_timer.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/defer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/deferred.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/detached.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/dispatch.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/error.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/execution_context.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/executor.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/executor_work_guard.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/file_base.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/high_resolution_timer.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/io_context.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/io_context_strand.Po@am__quote@ # am--include-marker @@ -3676,17 +4082,24 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/packaged_task.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/placeholders.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/post.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/prepend.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/random_access_file.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/read.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/read_at.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/read_until.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/readable_pipe.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/recycling_allocator.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/redirect_error.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/registered_buffer.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/serial_port.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/serial_port_base.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/signal_set.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/signal_set_base.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/socket_base.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/static_thread_pool.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/steady_timer.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/strand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/stream_file.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/streambuf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/system_context.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/system_executor.Po@am__quote@ # am--include-marker @@ -3699,37 +4112,33 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/use_future.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/uses_executor.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/wait_traits.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/writable_pipe.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/write.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/write_at.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/any_executor.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/blocking.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/blocking_adaptation.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/bulk_execute.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/bulk_guarantee.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/connect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/context_as.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/execute.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/executor.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/invocable_archetype.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/mapping.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/operation_state.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/outstanding_work.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/prefer_only.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/receiver.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/relationship.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/schedule.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/scheduler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/sender.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/set_done.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/set_error.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/set_value.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/start.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/submit.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/awaitable_operators.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/deferred.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/basic_channel.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/basic_concurrent_channel.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/channel.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/channel_traits.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/co_composed.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/concurrent_channel.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/parallel_group.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/promise.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/allocator.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/cancel.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/co_spawn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/exception.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/executor.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/partial.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/simple_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/stack_test.Po@am__quote@ # am--include-marker @@ -3764,6 +4173,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/basic_endpoint.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/connect_pair.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/datagram_protocol.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/seq_packet_protocol.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/stream_protocol.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/basic_descriptor.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/basic_stream_descriptor.Po@am__quote@ # am--include-marker @@ -4023,7 +4433,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ @@ -4057,6 +4467,41 @@ recheck: all $(check_PROGRAMS) am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? +unit/any_completion_executor.log: unit/any_completion_executor$(EXEEXT) + @p='unit/any_completion_executor$(EXEEXT)'; \ + b='unit/any_completion_executor'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/any_completion_handler.log: unit/any_completion_handler$(EXEEXT) + @p='unit/any_completion_handler$(EXEEXT)'; \ + b='unit/any_completion_handler'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/any_io_executor.log: unit/any_io_executor$(EXEEXT) + @p='unit/any_io_executor$(EXEEXT)'; \ + b='unit/any_io_executor'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/append.log: unit/append$(EXEEXT) + @p='unit/append$(EXEEXT)'; \ + b='unit/append'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/as_tuple.log: unit/as_tuple$(EXEEXT) + @p='unit/as_tuple$(EXEEXT)'; \ + b='unit/as_tuple'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/associated_allocator.log: unit/associated_allocator$(EXEEXT) @p='unit/associated_allocator$(EXEEXT)'; \ b='unit/associated_allocator'; \ @@ -4078,6 +4523,13 @@ unit/associated_executor.log: unit/associated_executor$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/associated_immediate_executor.log: unit/associated_immediate_executor$(EXEEXT) + @p='unit/associated_immediate_executor$(EXEEXT)'; \ + b='unit/associated_immediate_executor'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/associator.log: unit/associator$(EXEEXT) @p='unit/associator$(EXEEXT)'; \ b='unit/associator'; \ @@ -4113,6 +4565,20 @@ unit/basic_deadline_timer.log: unit/basic_deadline_timer$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/basic_file.log: unit/basic_file$(EXEEXT) + @p='unit/basic_file$(EXEEXT)'; \ + b='unit/basic_file'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/basic_random_access_file.log: unit/basic_random_access_file$(EXEEXT) + @p='unit/basic_random_access_file$(EXEEXT)'; \ + b='unit/basic_random_access_file'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/basic_raw_socket.log: unit/basic_raw_socket$(EXEEXT) @p='unit/basic_raw_socket$(EXEEXT)'; \ b='unit/basic_raw_socket'; \ @@ -4120,6 +4586,13 @@ unit/basic_raw_socket.log: unit/basic_raw_socket$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/basic_readable_pipe.log: unit/basic_readable_pipe$(EXEEXT) + @p='unit/basic_readable_pipe$(EXEEXT)'; \ + b='unit/basic_readable_pipe'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/basic_seq_packet_socket.log: unit/basic_seq_packet_socket$(EXEEXT) @p='unit/basic_seq_packet_socket$(EXEEXT)'; \ b='unit/basic_seq_packet_socket'; \ @@ -4155,6 +4628,13 @@ unit/basic_socket_acceptor.log: unit/basic_socket_acceptor$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/basic_stream_file.log: unit/basic_stream_file$(EXEEXT) + @p='unit/basic_stream_file$(EXEEXT)'; \ + b='unit/basic_stream_file'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/basic_stream_socket.log: unit/basic_stream_socket$(EXEEXT) @p='unit/basic_stream_socket$(EXEEXT)'; \ b='unit/basic_stream_socket'; \ @@ -4176,6 +4656,20 @@ unit/basic_waitable_timer.log: unit/basic_waitable_timer$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/basic_writable_pipe.log: unit/basic_writable_pipe$(EXEEXT) + @p='unit/basic_writable_pipe$(EXEEXT)'; \ + b='unit/basic_writable_pipe'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/bind_allocator.log: unit/bind_allocator$(EXEEXT) + @p='unit/bind_allocator$(EXEEXT)'; \ + b='unit/bind_allocator'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/bind_cancellation_slot.log: unit/bind_cancellation_slot$(EXEEXT) @p='unit/bind_cancellation_slot$(EXEEXT)'; \ b='unit/bind_cancellation_slot'; \ @@ -4190,6 +4684,13 @@ unit/bind_executor.log: unit/bind_executor$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/bind_immediate_executor.log: unit/bind_immediate_executor$(EXEEXT) + @p='unit/bind_immediate_executor$(EXEEXT)'; \ + b='unit/bind_immediate_executor'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/buffered_read_stream.log: unit/buffered_read_stream$(EXEEXT) @p='unit/buffered_read_stream$(EXEEXT)'; \ b='unit/buffered_read_stream'; \ @@ -4218,6 +4719,13 @@ unit/buffer.log: unit/buffer$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/buffer_registration.log: unit/buffer_registration$(EXEEXT) + @p='unit/buffer_registration$(EXEEXT)'; \ + b='unit/buffer_registration'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/buffers_iterator.log: unit/buffers_iterator$(EXEEXT) @p='unit/buffers_iterator$(EXEEXT)'; \ b='unit/buffers_iterator'; \ @@ -4274,6 +4782,20 @@ unit/connect.log: unit/connect$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/connect_pipe.log: unit/connect_pipe$(EXEEXT) + @p='unit/connect_pipe$(EXEEXT)'; \ + b='unit/connect_pipe'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/consign.log: unit/consign$(EXEEXT) + @p='unit/consign$(EXEEXT)'; \ + b='unit/consign'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/deadline_timer.log: unit/deadline_timer$(EXEEXT) @p='unit/deadline_timer$(EXEEXT)'; \ b='unit/deadline_timer'; \ @@ -4288,6 +4810,13 @@ unit/defer.log: unit/defer$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/deferred.log: unit/deferred$(EXEEXT) + @p='unit/deferred$(EXEEXT)'; \ + b='unit/deferred'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/detached.log: unit/detached$(EXEEXT) @p='unit/detached$(EXEEXT)'; \ b='unit/detached'; \ @@ -4330,27 +4859,6 @@ unit/execution/blocking_adaptation.log: unit/execution/blocking_adaptation$(EXEE --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/bulk_execute.log: unit/execution/bulk_execute$(EXEEXT) - @p='unit/execution/bulk_execute$(EXEEXT)'; \ - b='unit/execution/bulk_execute'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/bulk_guarantee.log: unit/execution/bulk_guarantee$(EXEEXT) - @p='unit/execution/bulk_guarantee$(EXEEXT)'; \ - b='unit/execution/bulk_guarantee'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/connect.log: unit/execution/connect$(EXEEXT) - @p='unit/execution/connect$(EXEEXT)'; \ - b='unit/execution/connect'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) unit/execution/context_as.log: unit/execution/context_as$(EXEEXT) @p='unit/execution/context_as$(EXEEXT)'; \ b='unit/execution/context_as'; \ @@ -4358,13 +4866,6 @@ unit/execution/context_as.log: unit/execution/context_as$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/execute.log: unit/execution/execute$(EXEEXT) - @p='unit/execution/execute$(EXEEXT)'; \ - b='unit/execution/execute'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) unit/execution/executor.log: unit/execution/executor$(EXEEXT) @p='unit/execution/executor$(EXEEXT)'; \ b='unit/execution/executor'; \ @@ -4386,13 +4887,6 @@ unit/execution/mapping.log: unit/execution/mapping$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/operation_state.log: unit/execution/operation_state$(EXEEXT) - @p='unit/execution/operation_state$(EXEEXT)'; \ - b='unit/execution/operation_state'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) unit/execution/outstanding_work.log: unit/execution/outstanding_work$(EXEEXT) @p='unit/execution/outstanding_work$(EXEEXT)'; \ b='unit/execution/outstanding_work'; \ @@ -4407,13 +4901,6 @@ unit/execution/prefer_only.log: unit/execution/prefer_only$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/receiver.log: unit/execution/receiver$(EXEEXT) - @p='unit/execution/receiver$(EXEEXT)'; \ - b='unit/execution/receiver'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) unit/execution/relationship.log: unit/execution/relationship$(EXEEXT) @p='unit/execution/relationship$(EXEEXT)'; \ b='unit/execution/relationship'; \ @@ -4421,62 +4908,6 @@ unit/execution/relationship.log: unit/execution/relationship$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/schedule.log: unit/execution/schedule$(EXEEXT) - @p='unit/execution/schedule$(EXEEXT)'; \ - b='unit/execution/schedule'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/scheduler.log: unit/execution/scheduler$(EXEEXT) - @p='unit/execution/scheduler$(EXEEXT)'; \ - b='unit/execution/scheduler'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/sender.log: unit/execution/sender$(EXEEXT) - @p='unit/execution/sender$(EXEEXT)'; \ - b='unit/execution/sender'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/set_done.log: unit/execution/set_done$(EXEEXT) - @p='unit/execution/set_done$(EXEEXT)'; \ - b='unit/execution/set_done'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/set_error.log: unit/execution/set_error$(EXEEXT) - @p='unit/execution/set_error$(EXEEXT)'; \ - b='unit/execution/set_error'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/set_value.log: unit/execution/set_value$(EXEEXT) - @p='unit/execution/set_value$(EXEEXT)'; \ - b='unit/execution/set_value'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/start.log: unit/execution/start$(EXEEXT) - @p='unit/execution/start$(EXEEXT)'; \ - b='unit/execution/start'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution/submit.log: unit/execution/submit$(EXEEXT) - @p='unit/execution/submit$(EXEEXT)'; \ - b='unit/execution/submit'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) unit/execution_context.log: unit/execution_context$(EXEEXT) @p='unit/execution_context$(EXEEXT)'; \ b='unit/execution_context'; \ @@ -4498,6 +4929,13 @@ unit/executor_work_guard.log: unit/executor_work_guard$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/file_base.log: unit/file_base$(EXEEXT) + @p='unit/file_base$(EXEEXT)'; \ + b='unit/file_base'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/high_resolution_timer.log: unit/high_resolution_timer$(EXEEXT) @p='unit/high_resolution_timer$(EXEEXT)'; \ b='unit/high_resolution_timer'; \ @@ -4708,6 +5146,13 @@ unit/local/datagram_protocol.log: unit/local/datagram_protocol$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/local/seq_packet_protocol.log: unit/local/seq_packet_protocol$(EXEEXT) + @p='unit/local/seq_packet_protocol$(EXEEXT)'; \ + b='unit/local/seq_packet_protocol'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/local/stream_protocol.log: unit/local/stream_protocol$(EXEEXT) @p='unit/local/stream_protocol$(EXEEXT)'; \ b='unit/local/stream_protocol'; \ @@ -4771,6 +5216,20 @@ unit/post.log: unit/post$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/prepend.log: unit/prepend$(EXEEXT) + @p='unit/prepend$(EXEEXT)'; \ + b='unit/prepend'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/random_access_file.log: unit/random_access_file$(EXEEXT) + @p='unit/random_access_file$(EXEEXT)'; \ + b='unit/random_access_file'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/read.log: unit/read$(EXEEXT) @p='unit/read$(EXEEXT)'; \ b='unit/read'; \ @@ -4792,6 +5251,20 @@ unit/read_until.log: unit/read_until$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/readable_pipe.log: unit/readable_pipe$(EXEEXT) + @p='unit/readable_pipe$(EXEEXT)'; \ + b='unit/readable_pipe'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/recycling_allocator.log: unit/recycling_allocator$(EXEEXT) + @p='unit/recycling_allocator$(EXEEXT)'; \ + b='unit/recycling_allocator'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/redirect_error.log: unit/redirect_error$(EXEEXT) @p='unit/redirect_error$(EXEEXT)'; \ b='unit/redirect_error'; \ @@ -4799,6 +5272,13 @@ unit/redirect_error.log: unit/redirect_error$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/registered_buffer.log: unit/registered_buffer$(EXEEXT) + @p='unit/registered_buffer$(EXEEXT)'; \ + b='unit/registered_buffer'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/serial_port.log: unit/serial_port$(EXEEXT) @p='unit/serial_port$(EXEEXT)'; \ b='unit/serial_port'; \ @@ -4820,6 +5300,13 @@ unit/signal_set.log: unit/signal_set$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/signal_set_base.log: unit/signal_set_base$(EXEEXT) + @p='unit/signal_set_base$(EXEEXT)'; \ + b='unit/signal_set_base'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/socket_base.log: unit/socket_base$(EXEEXT) @p='unit/socket_base$(EXEEXT)'; \ b='unit/socket_base'; \ @@ -4848,6 +5335,13 @@ unit/strand.log: unit/strand$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/stream_file.log: unit/stream_file$(EXEEXT) + @p='unit/stream_file$(EXEEXT)'; \ + b='unit/stream_file'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/streambuf.log: unit/streambuf$(EXEEXT) @p='unit/streambuf$(EXEEXT)'; \ b='unit/streambuf'; \ @@ -5051,6 +5545,13 @@ unit/windows/stream_handle.log: unit/windows/stream_handle$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/writable_pipe.log: unit/writable_pipe$(EXEEXT) + @p='unit/writable_pipe$(EXEEXT)'; \ + b='unit/writable_pipe'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/write.log: unit/write$(EXEEXT) @p='unit/write$(EXEEXT)'; \ b='unit/write'; \ @@ -5065,9 +5566,44 @@ unit/write_at.log: unit/write_at$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/experimental/deferred.log: unit/experimental/deferred$(EXEEXT) - @p='unit/experimental/deferred$(EXEEXT)'; \ - b='unit/experimental/deferred'; \ +unit/experimental/basic_channel.log: unit/experimental/basic_channel$(EXEEXT) + @p='unit/experimental/basic_channel$(EXEEXT)'; \ + b='unit/experimental/basic_channel'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/experimental/basic_concurrent_channel.log: unit/experimental/basic_concurrent_channel$(EXEEXT) + @p='unit/experimental/basic_concurrent_channel$(EXEEXT)'; \ + b='unit/experimental/basic_concurrent_channel'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/experimental/channel.log: unit/experimental/channel$(EXEEXT) + @p='unit/experimental/channel$(EXEEXT)'; \ + b='unit/experimental/channel'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/experimental/channel_traits.log: unit/experimental/channel_traits$(EXEEXT) + @p='unit/experimental/channel_traits$(EXEEXT)'; \ + b='unit/experimental/channel_traits'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/experimental/concurrent_channel.log: unit/experimental/concurrent_channel$(EXEEXT) + @p='unit/experimental/concurrent_channel$(EXEEXT)'; \ + b='unit/experimental/concurrent_channel'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/experimental/parallel_group.log: unit/experimental/parallel_group$(EXEEXT) + @p='unit/experimental/parallel_group$(EXEEXT)'; \ + b='unit/experimental/parallel_group'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ @@ -5086,6 +5622,20 @@ unit/experimental/awaitable_operators.log: unit/experimental/awaitable_operators --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/experimental/co_composed.log: unit/experimental/co_composed$(EXEEXT) + @p='unit/experimental/co_composed$(EXEEXT)'; \ + b='unit/experimental/co_composed'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/experimental/coro/allocator.log: unit/experimental/coro/allocator$(EXEEXT) + @p='unit/experimental/coro/allocator$(EXEEXT)'; \ + b='unit/experimental/coro/allocator'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/experimental/coro/cancel.log: unit/experimental/coro/cancel$(EXEEXT) @p='unit/experimental/coro/cancel$(EXEEXT)'; \ b='unit/experimental/coro/cancel'; \ @@ -5093,6 +5643,13 @@ unit/experimental/coro/cancel.log: unit/experimental/coro/cancel$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/experimental/coro/co_spawn.log: unit/experimental/coro/co_spawn$(EXEEXT) + @p='unit/experimental/coro/co_spawn$(EXEEXT)'; \ + b='unit/experimental/coro/co_spawn'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/experimental/coro/exception.log: unit/experimental/coro/exception$(EXEEXT) @p='unit/experimental/coro/exception$(EXEEXT)'; \ b='unit/experimental/coro/exception'; \ @@ -5100,6 +5657,13 @@ unit/experimental/coro/exception.log: unit/experimental/coro/exception$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +unit/experimental/coro/executor.log: unit/experimental/coro/executor$(EXEEXT) + @p='unit/experimental/coro/executor$(EXEEXT)'; \ + b='unit/experimental/coro/executor'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) unit/experimental/coro/partial.log: unit/experimental/coro/partial$(EXEEXT) @p='unit/experimental/coro/partial$(EXEEXT)'; \ b='unit/experimental/coro/partial'; \ @@ -5191,7 +5755,6 @@ unit/ssl/stream.log: unit/ssl/stream$(EXEEXT) @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -5333,26 +5896,40 @@ distclean: distclean-recursive -rm -f latency/$(DEPDIR)/udp_server.Po -rm -f performance/$(DEPDIR)/client.Po -rm -f performance/$(DEPDIR)/server.Po + -rm -f unit/$(DEPDIR)/any_completion_executor.Po + -rm -f unit/$(DEPDIR)/any_completion_handler.Po + -rm -f unit/$(DEPDIR)/any_io_executor.Po + -rm -f unit/$(DEPDIR)/append.Po + -rm -f unit/$(DEPDIR)/as_tuple.Po -rm -f unit/$(DEPDIR)/associated_allocator.Po -rm -f unit/$(DEPDIR)/associated_cancellation_slot.Po -rm -f unit/$(DEPDIR)/associated_executor.Po + -rm -f unit/$(DEPDIR)/associated_immediate_executor.Po -rm -f unit/$(DEPDIR)/associator.Po -rm -f unit/$(DEPDIR)/async_result.Po -rm -f unit/$(DEPDIR)/awaitable.Po -rm -f unit/$(DEPDIR)/basic_datagram_socket.Po -rm -f unit/$(DEPDIR)/basic_deadline_timer.Po + -rm -f unit/$(DEPDIR)/basic_file.Po + -rm -f unit/$(DEPDIR)/basic_random_access_file.Po -rm -f unit/$(DEPDIR)/basic_raw_socket.Po + -rm -f unit/$(DEPDIR)/basic_readable_pipe.Po -rm -f unit/$(DEPDIR)/basic_seq_packet_socket.Po -rm -f unit/$(DEPDIR)/basic_serial_port.Po -rm -f unit/$(DEPDIR)/basic_signal_set.Po -rm -f unit/$(DEPDIR)/basic_socket.Po -rm -f unit/$(DEPDIR)/basic_socket_acceptor.Po + -rm -f unit/$(DEPDIR)/basic_stream_file.Po -rm -f unit/$(DEPDIR)/basic_stream_socket.Po -rm -f unit/$(DEPDIR)/basic_streambuf.Po -rm -f unit/$(DEPDIR)/basic_waitable_timer.Po + -rm -f unit/$(DEPDIR)/basic_writable_pipe.Po + -rm -f unit/$(DEPDIR)/bind_allocator.Po -rm -f unit/$(DEPDIR)/bind_cancellation_slot.Po -rm -f unit/$(DEPDIR)/bind_executor.Po + -rm -f unit/$(DEPDIR)/bind_immediate_executor.Po -rm -f unit/$(DEPDIR)/buffer.Po + -rm -f unit/$(DEPDIR)/buffer_registration.Po -rm -f unit/$(DEPDIR)/buffered_read_stream.Po -rm -f unit/$(DEPDIR)/buffered_stream.Po -rm -f unit/$(DEPDIR)/buffered_write_stream.Po @@ -5364,15 +5941,19 @@ distclean: distclean-recursive -rm -f unit/$(DEPDIR)/completion_condition.Po -rm -f unit/$(DEPDIR)/compose.Po -rm -f unit/$(DEPDIR)/connect.Po + -rm -f unit/$(DEPDIR)/connect_pipe.Po + -rm -f unit/$(DEPDIR)/consign.Po -rm -f unit/$(DEPDIR)/coroutine.Po -rm -f unit/$(DEPDIR)/deadline_timer.Po -rm -f unit/$(DEPDIR)/defer.Po + -rm -f unit/$(DEPDIR)/deferred.Po -rm -f unit/$(DEPDIR)/detached.Po -rm -f unit/$(DEPDIR)/dispatch.Po -rm -f unit/$(DEPDIR)/error.Po -rm -f unit/$(DEPDIR)/execution_context.Po -rm -f unit/$(DEPDIR)/executor.Po -rm -f unit/$(DEPDIR)/executor_work_guard.Po + -rm -f unit/$(DEPDIR)/file_base.Po -rm -f unit/$(DEPDIR)/high_resolution_timer.Po -rm -f unit/$(DEPDIR)/io_context.Po -rm -f unit/$(DEPDIR)/io_context_strand.Po @@ -5381,17 +5962,24 @@ distclean: distclean-recursive -rm -f unit/$(DEPDIR)/packaged_task.Po -rm -f unit/$(DEPDIR)/placeholders.Po -rm -f unit/$(DEPDIR)/post.Po + -rm -f unit/$(DEPDIR)/prepend.Po + -rm -f unit/$(DEPDIR)/random_access_file.Po -rm -f unit/$(DEPDIR)/read.Po -rm -f unit/$(DEPDIR)/read_at.Po -rm -f unit/$(DEPDIR)/read_until.Po + -rm -f unit/$(DEPDIR)/readable_pipe.Po + -rm -f unit/$(DEPDIR)/recycling_allocator.Po -rm -f unit/$(DEPDIR)/redirect_error.Po + -rm -f unit/$(DEPDIR)/registered_buffer.Po -rm -f unit/$(DEPDIR)/serial_port.Po -rm -f unit/$(DEPDIR)/serial_port_base.Po -rm -f unit/$(DEPDIR)/signal_set.Po + -rm -f unit/$(DEPDIR)/signal_set_base.Po -rm -f unit/$(DEPDIR)/socket_base.Po -rm -f unit/$(DEPDIR)/static_thread_pool.Po -rm -f unit/$(DEPDIR)/steady_timer.Po -rm -f unit/$(DEPDIR)/strand.Po + -rm -f unit/$(DEPDIR)/stream_file.Po -rm -f unit/$(DEPDIR)/streambuf.Po -rm -f unit/$(DEPDIR)/system_context.Po -rm -f unit/$(DEPDIR)/system_executor.Po @@ -5404,37 +5992,33 @@ distclean: distclean-recursive -rm -f unit/$(DEPDIR)/use_future.Po -rm -f unit/$(DEPDIR)/uses_executor.Po -rm -f unit/$(DEPDIR)/wait_traits.Po + -rm -f unit/$(DEPDIR)/writable_pipe.Po -rm -f unit/$(DEPDIR)/write.Po -rm -f unit/$(DEPDIR)/write_at.Po -rm -f unit/execution/$(DEPDIR)/any_executor.Po -rm -f unit/execution/$(DEPDIR)/blocking.Po -rm -f unit/execution/$(DEPDIR)/blocking_adaptation.Po - -rm -f unit/execution/$(DEPDIR)/bulk_execute.Po - -rm -f unit/execution/$(DEPDIR)/bulk_guarantee.Po - -rm -f unit/execution/$(DEPDIR)/connect.Po -rm -f unit/execution/$(DEPDIR)/context_as.Po - -rm -f unit/execution/$(DEPDIR)/execute.Po -rm -f unit/execution/$(DEPDIR)/executor.Po -rm -f unit/execution/$(DEPDIR)/invocable_archetype.Po -rm -f unit/execution/$(DEPDIR)/mapping.Po - -rm -f unit/execution/$(DEPDIR)/operation_state.Po -rm -f unit/execution/$(DEPDIR)/outstanding_work.Po -rm -f unit/execution/$(DEPDIR)/prefer_only.Po - -rm -f unit/execution/$(DEPDIR)/receiver.Po -rm -f unit/execution/$(DEPDIR)/relationship.Po - -rm -f unit/execution/$(DEPDIR)/schedule.Po - -rm -f unit/execution/$(DEPDIR)/scheduler.Po - -rm -f unit/execution/$(DEPDIR)/sender.Po - -rm -f unit/execution/$(DEPDIR)/set_done.Po - -rm -f unit/execution/$(DEPDIR)/set_error.Po - -rm -f unit/execution/$(DEPDIR)/set_value.Po - -rm -f unit/execution/$(DEPDIR)/start.Po - -rm -f unit/execution/$(DEPDIR)/submit.Po -rm -f unit/experimental/$(DEPDIR)/awaitable_operators.Po - -rm -f unit/experimental/$(DEPDIR)/deferred.Po + -rm -f unit/experimental/$(DEPDIR)/basic_channel.Po + -rm -f unit/experimental/$(DEPDIR)/basic_concurrent_channel.Po + -rm -f unit/experimental/$(DEPDIR)/channel.Po + -rm -f unit/experimental/$(DEPDIR)/channel_traits.Po + -rm -f unit/experimental/$(DEPDIR)/co_composed.Po + -rm -f unit/experimental/$(DEPDIR)/concurrent_channel.Po + -rm -f unit/experimental/$(DEPDIR)/parallel_group.Po -rm -f unit/experimental/$(DEPDIR)/promise.Po + -rm -f unit/experimental/coro/$(DEPDIR)/allocator.Po -rm -f unit/experimental/coro/$(DEPDIR)/cancel.Po + -rm -f unit/experimental/coro/$(DEPDIR)/co_spawn.Po -rm -f unit/experimental/coro/$(DEPDIR)/exception.Po + -rm -f unit/experimental/coro/$(DEPDIR)/executor.Po -rm -f unit/experimental/coro/$(DEPDIR)/partial.Po -rm -f unit/experimental/coro/$(DEPDIR)/simple_test.Po -rm -f unit/experimental/coro/$(DEPDIR)/stack_test.Po @@ -5469,6 +6053,7 @@ distclean: distclean-recursive -rm -f unit/local/$(DEPDIR)/basic_endpoint.Po -rm -f unit/local/$(DEPDIR)/connect_pair.Po -rm -f unit/local/$(DEPDIR)/datagram_protocol.Po + -rm -f unit/local/$(DEPDIR)/seq_packet_protocol.Po -rm -f unit/local/$(DEPDIR)/stream_protocol.Po -rm -f unit/posix/$(DEPDIR)/basic_descriptor.Po -rm -f unit/posix/$(DEPDIR)/basic_stream_descriptor.Po @@ -5552,26 +6137,40 @@ maintainer-clean: maintainer-clean-recursive -rm -f latency/$(DEPDIR)/udp_server.Po -rm -f performance/$(DEPDIR)/client.Po -rm -f performance/$(DEPDIR)/server.Po + -rm -f unit/$(DEPDIR)/any_completion_executor.Po + -rm -f unit/$(DEPDIR)/any_completion_handler.Po + -rm -f unit/$(DEPDIR)/any_io_executor.Po + -rm -f unit/$(DEPDIR)/append.Po + -rm -f unit/$(DEPDIR)/as_tuple.Po -rm -f unit/$(DEPDIR)/associated_allocator.Po -rm -f unit/$(DEPDIR)/associated_cancellation_slot.Po -rm -f unit/$(DEPDIR)/associated_executor.Po + -rm -f unit/$(DEPDIR)/associated_immediate_executor.Po -rm -f unit/$(DEPDIR)/associator.Po -rm -f unit/$(DEPDIR)/async_result.Po -rm -f unit/$(DEPDIR)/awaitable.Po -rm -f unit/$(DEPDIR)/basic_datagram_socket.Po -rm -f unit/$(DEPDIR)/basic_deadline_timer.Po + -rm -f unit/$(DEPDIR)/basic_file.Po + -rm -f unit/$(DEPDIR)/basic_random_access_file.Po -rm -f unit/$(DEPDIR)/basic_raw_socket.Po + -rm -f unit/$(DEPDIR)/basic_readable_pipe.Po -rm -f unit/$(DEPDIR)/basic_seq_packet_socket.Po -rm -f unit/$(DEPDIR)/basic_serial_port.Po -rm -f unit/$(DEPDIR)/basic_signal_set.Po -rm -f unit/$(DEPDIR)/basic_socket.Po -rm -f unit/$(DEPDIR)/basic_socket_acceptor.Po + -rm -f unit/$(DEPDIR)/basic_stream_file.Po -rm -f unit/$(DEPDIR)/basic_stream_socket.Po -rm -f unit/$(DEPDIR)/basic_streambuf.Po -rm -f unit/$(DEPDIR)/basic_waitable_timer.Po + -rm -f unit/$(DEPDIR)/basic_writable_pipe.Po + -rm -f unit/$(DEPDIR)/bind_allocator.Po -rm -f unit/$(DEPDIR)/bind_cancellation_slot.Po -rm -f unit/$(DEPDIR)/bind_executor.Po + -rm -f unit/$(DEPDIR)/bind_immediate_executor.Po -rm -f unit/$(DEPDIR)/buffer.Po + -rm -f unit/$(DEPDIR)/buffer_registration.Po -rm -f unit/$(DEPDIR)/buffered_read_stream.Po -rm -f unit/$(DEPDIR)/buffered_stream.Po -rm -f unit/$(DEPDIR)/buffered_write_stream.Po @@ -5583,15 +6182,19 @@ maintainer-clean: maintainer-clean-recursive -rm -f unit/$(DEPDIR)/completion_condition.Po -rm -f unit/$(DEPDIR)/compose.Po -rm -f unit/$(DEPDIR)/connect.Po + -rm -f unit/$(DEPDIR)/connect_pipe.Po + -rm -f unit/$(DEPDIR)/consign.Po -rm -f unit/$(DEPDIR)/coroutine.Po -rm -f unit/$(DEPDIR)/deadline_timer.Po -rm -f unit/$(DEPDIR)/defer.Po + -rm -f unit/$(DEPDIR)/deferred.Po -rm -f unit/$(DEPDIR)/detached.Po -rm -f unit/$(DEPDIR)/dispatch.Po -rm -f unit/$(DEPDIR)/error.Po -rm -f unit/$(DEPDIR)/execution_context.Po -rm -f unit/$(DEPDIR)/executor.Po -rm -f unit/$(DEPDIR)/executor_work_guard.Po + -rm -f unit/$(DEPDIR)/file_base.Po -rm -f unit/$(DEPDIR)/high_resolution_timer.Po -rm -f unit/$(DEPDIR)/io_context.Po -rm -f unit/$(DEPDIR)/io_context_strand.Po @@ -5600,17 +6203,24 @@ maintainer-clean: maintainer-clean-recursive -rm -f unit/$(DEPDIR)/packaged_task.Po -rm -f unit/$(DEPDIR)/placeholders.Po -rm -f unit/$(DEPDIR)/post.Po + -rm -f unit/$(DEPDIR)/prepend.Po + -rm -f unit/$(DEPDIR)/random_access_file.Po -rm -f unit/$(DEPDIR)/read.Po -rm -f unit/$(DEPDIR)/read_at.Po -rm -f unit/$(DEPDIR)/read_until.Po + -rm -f unit/$(DEPDIR)/readable_pipe.Po + -rm -f unit/$(DEPDIR)/recycling_allocator.Po -rm -f unit/$(DEPDIR)/redirect_error.Po + -rm -f unit/$(DEPDIR)/registered_buffer.Po -rm -f unit/$(DEPDIR)/serial_port.Po -rm -f unit/$(DEPDIR)/serial_port_base.Po -rm -f unit/$(DEPDIR)/signal_set.Po + -rm -f unit/$(DEPDIR)/signal_set_base.Po -rm -f unit/$(DEPDIR)/socket_base.Po -rm -f unit/$(DEPDIR)/static_thread_pool.Po -rm -f unit/$(DEPDIR)/steady_timer.Po -rm -f unit/$(DEPDIR)/strand.Po + -rm -f unit/$(DEPDIR)/stream_file.Po -rm -f unit/$(DEPDIR)/streambuf.Po -rm -f unit/$(DEPDIR)/system_context.Po -rm -f unit/$(DEPDIR)/system_executor.Po @@ -5623,37 +6233,33 @@ maintainer-clean: maintainer-clean-recursive -rm -f unit/$(DEPDIR)/use_future.Po -rm -f unit/$(DEPDIR)/uses_executor.Po -rm -f unit/$(DEPDIR)/wait_traits.Po + -rm -f unit/$(DEPDIR)/writable_pipe.Po -rm -f unit/$(DEPDIR)/write.Po -rm -f unit/$(DEPDIR)/write_at.Po -rm -f unit/execution/$(DEPDIR)/any_executor.Po -rm -f unit/execution/$(DEPDIR)/blocking.Po -rm -f unit/execution/$(DEPDIR)/blocking_adaptation.Po - -rm -f unit/execution/$(DEPDIR)/bulk_execute.Po - -rm -f unit/execution/$(DEPDIR)/bulk_guarantee.Po - -rm -f unit/execution/$(DEPDIR)/connect.Po -rm -f unit/execution/$(DEPDIR)/context_as.Po - -rm -f unit/execution/$(DEPDIR)/execute.Po -rm -f unit/execution/$(DEPDIR)/executor.Po -rm -f unit/execution/$(DEPDIR)/invocable_archetype.Po -rm -f unit/execution/$(DEPDIR)/mapping.Po - -rm -f unit/execution/$(DEPDIR)/operation_state.Po -rm -f unit/execution/$(DEPDIR)/outstanding_work.Po -rm -f unit/execution/$(DEPDIR)/prefer_only.Po - -rm -f unit/execution/$(DEPDIR)/receiver.Po -rm -f unit/execution/$(DEPDIR)/relationship.Po - -rm -f unit/execution/$(DEPDIR)/schedule.Po - -rm -f unit/execution/$(DEPDIR)/scheduler.Po - -rm -f unit/execution/$(DEPDIR)/sender.Po - -rm -f unit/execution/$(DEPDIR)/set_done.Po - -rm -f unit/execution/$(DEPDIR)/set_error.Po - -rm -f unit/execution/$(DEPDIR)/set_value.Po - -rm -f unit/execution/$(DEPDIR)/start.Po - -rm -f unit/execution/$(DEPDIR)/submit.Po -rm -f unit/experimental/$(DEPDIR)/awaitable_operators.Po - -rm -f unit/experimental/$(DEPDIR)/deferred.Po + -rm -f unit/experimental/$(DEPDIR)/basic_channel.Po + -rm -f unit/experimental/$(DEPDIR)/basic_concurrent_channel.Po + -rm -f unit/experimental/$(DEPDIR)/channel.Po + -rm -f unit/experimental/$(DEPDIR)/channel_traits.Po + -rm -f unit/experimental/$(DEPDIR)/co_composed.Po + -rm -f unit/experimental/$(DEPDIR)/concurrent_channel.Po + -rm -f unit/experimental/$(DEPDIR)/parallel_group.Po -rm -f unit/experimental/$(DEPDIR)/promise.Po + -rm -f unit/experimental/coro/$(DEPDIR)/allocator.Po -rm -f unit/experimental/coro/$(DEPDIR)/cancel.Po + -rm -f unit/experimental/coro/$(DEPDIR)/co_spawn.Po -rm -f unit/experimental/coro/$(DEPDIR)/exception.Po + -rm -f unit/experimental/coro/$(DEPDIR)/executor.Po -rm -f unit/experimental/coro/$(DEPDIR)/partial.Po -rm -f unit/experimental/coro/$(DEPDIR)/simple_test.Po -rm -f unit/experimental/coro/$(DEPDIR)/stack_test.Po @@ -5688,6 +6294,7 @@ maintainer-clean: maintainer-clean-recursive -rm -f unit/local/$(DEPDIR)/basic_endpoint.Po -rm -f unit/local/$(DEPDIR)/connect_pair.Po -rm -f unit/local/$(DEPDIR)/datagram_protocol.Po + -rm -f unit/local/$(DEPDIR)/seq_packet_protocol.Po -rm -f unit/local/$(DEPDIR)/stream_protocol.Po -rm -f unit/posix/$(DEPDIR)/basic_descriptor.Po -rm -f unit/posix/$(DEPDIR)/basic_stream_descriptor.Po diff --git a/3rdparty/asio/src/tests/latency/allocator.hpp b/3rdparty/asio/src/tests/latency/allocator.hpp index ec437013eb7..2b186aef8ec 100644 --- a/3rdparty/asio/src/tests/latency/allocator.hpp +++ b/3rdparty/asio/src/tests/latency/allocator.hpp @@ -2,7 +2,7 @@ // allocator.hpp // ~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/latency/high_res_clock.hpp b/3rdparty/asio/src/tests/latency/high_res_clock.hpp index 1467f86cb80..a497834d6d8 100644 --- a/3rdparty/asio/src/tests/latency/high_res_clock.hpp +++ b/3rdparty/asio/src/tests/latency/high_res_clock.hpp @@ -2,7 +2,7 @@ // high_res_clock.hpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/latency/tcp_client.cpp b/3rdparty/asio/src/tests/latency/tcp_client.cpp index eb4c96d6d3b..2a4c5b7640f 100644 --- a/3rdparty/asio/src/tests/latency/tcp_client.cpp +++ b/3rdparty/asio/src/tests/latency/tcp_client.cpp @@ -2,7 +2,7 @@ // tcp_client.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/latency/tcp_server.cpp b/3rdparty/asio/src/tests/latency/tcp_server.cpp index 59569509b24..c26c8509a45 100644 --- a/3rdparty/asio/src/tests/latency/tcp_server.cpp +++ b/3rdparty/asio/src/tests/latency/tcp_server.cpp @@ -2,7 +2,7 @@ // tcp_server.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/latency/udp_client.cpp b/3rdparty/asio/src/tests/latency/udp_client.cpp index cb55cfdb210..484ba085cd8 100644 --- a/3rdparty/asio/src/tests/latency/udp_client.cpp +++ b/3rdparty/asio/src/tests/latency/udp_client.cpp @@ -2,7 +2,7 @@ // udp_client.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/latency/udp_server.cpp b/3rdparty/asio/src/tests/latency/udp_server.cpp index 0bf333cfc4f..13483fab76f 100644 --- a/3rdparty/asio/src/tests/latency/udp_server.cpp +++ b/3rdparty/asio/src/tests/latency/udp_server.cpp @@ -2,7 +2,7 @@ // udp_server.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/performance/client.cpp b/3rdparty/asio/src/tests/performance/client.cpp index 720b909ad4a..b42a6c50930 100644 --- a/3rdparty/asio/src/tests/performance/client.cpp +++ b/3rdparty/asio/src/tests/performance/client.cpp @@ -2,7 +2,7 @@ // client.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/performance/handler_allocator.hpp b/3rdparty/asio/src/tests/performance/handler_allocator.hpp index 4f4a94e9195..6c1b98532ab 100644 --- a/3rdparty/asio/src/tests/performance/handler_allocator.hpp +++ b/3rdparty/asio/src/tests/performance/handler_allocator.hpp @@ -2,7 +2,7 @@ // handler_allocator.cpp // ~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/performance/server.cpp b/3rdparty/asio/src/tests/performance/server.cpp index 374992178b3..9de3c1294f8 100644 --- a/3rdparty/asio/src/tests/performance/server.cpp +++ b/3rdparty/asio/src/tests/performance/server.cpp @@ -2,7 +2,7 @@ // server.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/Makefile.in b/3rdparty/asio/src/tests/properties/Makefile.in index 344bf54cf0e..fb6b500f02e 100644 --- a/3rdparty/asio/src/tests/properties/Makefile.in +++ b/3rdparty/asio/src/tests/properties/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1898,8 +1898,6 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no @@ -2082,6 +2080,7 @@ am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` +AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log @@ -2118,8 +2117,9 @@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ @@ -2128,9 +2128,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ -GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -2197,9 +2196,11 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -3828,7 +3829,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ @@ -5073,7 +5074,6 @@ cpp14/can_prefer_not_preferable_unsupported.log: cpp14/can_prefer_not_preferable @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_prefer.cpp index e24f31bb0c1..e9784f60661 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_prefer.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_free_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_require.cpp index ef2d216581a..693a46150d1 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_require.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_free_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_prefer.cpp index 968e252aad5..011a34764dc 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_prefer.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_member_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_require.cpp index d388248b142..9364391c935 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_require.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_member_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_prefer.cpp index 1f87fa26591..8fd11c6f659 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_prefer.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_not_applicable_free_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_require.cpp index 03816adb6a8..5c205ada2e7 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_require.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_not_applicable_free_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_prefer.cpp index f86fa17cea9..15e93fd3a51 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_prefer.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_not_applicable_member_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_require.cpp index 9f99138e175..0a0f1f6ecf0 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_require.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_not_applicable_member_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_static.cpp index 493405acdac..f564d2fae01 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_static.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_not_applicable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_unsupported.cpp index 4699ef77b51..0711d7c4a4d 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_not_applicable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_prefer.cpp index 1d49f4c2c7b..3a522e5bed4 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_prefer.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_not_preferable_free_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_require.cpp index 47fa9662103..39ea91fefcb 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_require.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_not_preferable_free_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_prefer.cpp index 31d460f6057..e61f89872d0 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_prefer.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_not_preferable_member_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_require.cpp index b6be9cac436..0052cc3ee50 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_require.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_not_preferable_member_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_static.cpp index d634c64a517..f3428066587 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_static.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_not_preferable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_unsupported.cpp index 3fb6f0bc14c..14695938c99 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_not_preferable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_static.cpp index 3adeb26d02c..ac1f5c186aa 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_static.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_unsupported.cpp index c3d95841f17..e59e5d098f8 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_unsupported.cpp @@ -2,7 +2,7 @@ // cpp03/can_prefer_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_query_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_free.cpp index 9664a989e7d..d0d42fe7bdd 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_query_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_free.cpp @@ -2,7 +2,7 @@ // cpp03/can_query_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_query_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_member.cpp index 040dbba8baf..9ead9be9751 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_query_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_member.cpp @@ -2,7 +2,7 @@ // cpp03/can_query_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_free.cpp index 3a0344320f5..b360327c132 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_free.cpp @@ -2,7 +2,7 @@ // cpp03/can_query_not_applicable_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_member.cpp index b846c332943..be339d05522 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_member.cpp @@ -2,7 +2,7 @@ // cpp03/can_query_not_applicable_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_static.cpp index 4f41e2c2d6c..127e2ace42e 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_static.cpp @@ -2,7 +2,7 @@ // cpp03/can_query_not_applicable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_unsupported.cpp index a59edd14b2b..ec1c07affc1 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp03/can_query_not_applicable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_query_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_static.cpp index a8c5e95d24d..9a305712f1d 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_query_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_static.cpp @@ -2,7 +2,7 @@ // cpp03/can_query_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_query_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_unsupported.cpp index bebd3cb3201..8eefbe9bd14 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_query_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_unsupported.cpp @@ -2,7 +2,7 @@ // cpp03/can_query_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_free.cpp index a8cb9bbea0c..810dfc240a2 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_free.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_concept_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_member.cpp index ca478809cfc..615e8a09cd7 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_member.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_concept_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_free.cpp index 67b4b5fb245..c076dd416cd 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_free.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_concept_not_applicable_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_member.cpp index e76a9838587..e6e258e8424 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_member.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_concept_not_applicable_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_static.cpp index 171a7d254c4..c42a1b3fca4 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_static.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_concept_not_applicable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_unsupported.cpp index 02a6ff17515..261c4be3728 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_concept_not_applicable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_static.cpp index f2c328bf355..3c7d7bf4508 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_static.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_concept_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_unsupported.cpp index 0d71c25c32c..0fbcbd36525 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_unsupported.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_concept_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_free.cpp index e8eb9788268..fdd9241efa0 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_free.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_member.cpp index 9a89c4146c8..3f9a427333a 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_member.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_free.cpp index afa26616096..4bf8ca32a2c 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_free.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_not_applicable_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_member.cpp index 1a3bbdd3819..842c8d4bee9 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_member.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_not_applicable_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_static.cpp index f35a5a10fc2..e8d9ac63aa2 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_static.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_not_applicable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_unsupported.cpp index f8aa00678eb..6fe234731dc 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_not_applicable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_static.cpp index 858c685d37f..5d4a65749b2 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_static.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_require_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_unsupported.cpp index a58f47c64c9..f3bf74b0499 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/can_require_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_unsupported.cpp @@ -2,7 +2,7 @@ // cpp03/can_require_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/prefer_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/prefer_free_prefer.cpp index b663bbcd9ca..dcf89c7f4af 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/prefer_free_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/prefer_free_prefer.cpp @@ -2,7 +2,7 @@ // cpp03/prefer_free_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/prefer_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/prefer_free_require.cpp index 357e25c9654..223d3a60921 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/prefer_free_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/prefer_free_require.cpp @@ -2,7 +2,7 @@ // cpp03/prefer_free_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/prefer_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/prefer_member_prefer.cpp index 8b814d049ab..538f7b2662a 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/prefer_member_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/prefer_member_prefer.cpp @@ -2,7 +2,7 @@ // cpp03/prefer_member_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/prefer_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/prefer_member_require.cpp index ee0b5efb090..f659b6fc2bd 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/prefer_member_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/prefer_member_require.cpp @@ -2,7 +2,7 @@ // cpp03/prefer_member_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/prefer_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/prefer_static.cpp index e75139966a8..f5fcb7f89a0 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/prefer_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/prefer_static.cpp @@ -2,7 +2,7 @@ // cpp03/prefer_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/prefer_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/prefer_unsupported.cpp index 7fad5253acc..25e0f308a4a 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/prefer_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/prefer_unsupported.cpp @@ -2,7 +2,7 @@ // cpp03/prefer_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/query_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/query_free.cpp index 8611f725972..a9aae563293 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/query_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/query_free.cpp @@ -2,7 +2,7 @@ // cpp03/query_free.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/query_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/query_member.cpp index 71be73d58a6..a1ab83e0200 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/query_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/query_member.cpp @@ -2,7 +2,7 @@ // cpp03/query_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/query_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/query_static.cpp index aab3f4e8ac4..b0e0b4040e4 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/query_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/query_static.cpp @@ -2,7 +2,7 @@ // cpp03/query_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/require_concept_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/require_concept_free.cpp index 5476d5cb69c..6cccdd2774e 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/require_concept_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/require_concept_free.cpp @@ -2,7 +2,7 @@ // cpp03/require_concept_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/require_concept_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/require_concept_member.cpp index e3359eb11cf..673493292be 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/require_concept_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/require_concept_member.cpp @@ -2,7 +2,7 @@ // cpp03/require_concept_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/require_concept_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/require_concept_static.cpp index 7f514cf052e..e92ffa1ef61 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/require_concept_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/require_concept_static.cpp @@ -2,7 +2,7 @@ // cpp03/require_concept_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/require_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/require_free.cpp index 50e99283f14..04734ac3192 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/require_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/require_free.cpp @@ -2,7 +2,7 @@ // cpp03/require_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/require_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/require_member.cpp index b3fea49348b..fc6bdc2c9c9 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/require_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/require_member.cpp @@ -2,7 +2,7 @@ // cpp03/require_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp03/require_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/require_static.cpp index 25e9e1d4ef1..33512b32924 100644 --- a/3rdparty/asio/src/tests/properties/cpp03/require_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp03/require_static.cpp @@ -2,7 +2,7 @@ // cpp03/require_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_prefer.cpp index 2ccdf2c7574..860fa6fad5b 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_prefer.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_free_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_require.cpp index f5179ffb170..b842e9aa4e9 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_require.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_free_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_prefer.cpp index 6c8d00a9b73..9f00cbcaf38 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_prefer.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_member_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_require.cpp index 9ce08fa5cb7..a81bae1ae1c 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_require.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_member_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_prefer.cpp index 766ba61c76a..9079c1fc832 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_prefer.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_not_applicable_free_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_require.cpp index 29b19d39f7c..52fc618ac97 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_require.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_not_applicable_free_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_prefer.cpp index 2774f1f29ef..93f0c85c934 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_prefer.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_not_applicable_member_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_require.cpp index de3feb9e444..e17ec93f80a 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_require.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_not_applicable_member_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_static.cpp index 73ddc0c3f11..9087ed42332 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_static.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_not_applicable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_unsupported.cpp index f3fd5a6e3e0..b09d15708a1 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_not_applicable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_prefer.cpp index 1d1dc98e199..28a1d151b2d 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_prefer.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_not_preferable_free_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_require.cpp index ca4d5c3c8df..cbb105416a4 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_require.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_not_preferable_free_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_prefer.cpp index a568e8b048b..2d460503b79 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_prefer.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_not_preferable_member_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_require.cpp index 29eede3bd64..4e03c02d895 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_require.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_not_preferable_member_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_static.cpp index 88d7fffd390..0791d8a02f5 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_static.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_not_preferable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_unsupported.cpp index d1de18a0a81..059944ece37 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_not_preferable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_static.cpp index a7dd5dc3051..c928f7ffd63 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_static.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_unsupported.cpp index cd3fc009075..32d6ac5c0d3 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_unsupported.cpp @@ -2,7 +2,7 @@ // cpp11/can_prefer_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_query_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_free.cpp index 525c1111d80..330493ba328 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_query_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_free.cpp @@ -2,7 +2,7 @@ // cpp11/can_query_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_query_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_member.cpp index c4e562d16e8..e1442d9f296 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_query_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_member.cpp @@ -2,7 +2,7 @@ // cpp11/can_query_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_free.cpp index 76da584f8d6..2be49af0c64 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_free.cpp @@ -2,7 +2,7 @@ // cpp11/can_query_not_applicable_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_member.cpp index 8ae6d284998..788148df4a9 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_member.cpp @@ -2,7 +2,7 @@ // cpp11/can_query_not_applicable_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_static.cpp index 3f70747cb25..c57848c7a9f 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_static.cpp @@ -2,7 +2,7 @@ // cpp11/can_query_not_applicable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_unsupported.cpp index 0eab9f9e0dd..79bff6231ab 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp11/can_query_not_applicable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_query_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_static.cpp index 1aae961ac63..6dc25819a43 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_query_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_static.cpp @@ -2,7 +2,7 @@ // cpp11/can_query_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_query_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_unsupported.cpp index 4d5bb401b7d..369955e474a 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_query_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_unsupported.cpp @@ -2,7 +2,7 @@ // cpp11/can_query_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_free.cpp index 250bdce7df7..3dd617097a2 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_free.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_concept_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_member.cpp index 81aaeadcc91..55ac468247b 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_member.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_concept_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_free.cpp index 5a5acbbb962..af40b48bdec 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_free.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_concept_not_applicable_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_member.cpp index dfa1d367d90..baf6b9f482f 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_member.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_concept_not_applicable_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_static.cpp index ed1dbff5d45..7d7f13876d8 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_static.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_concept_not_applicable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_unsupported.cpp index 05ae9ff923a..13e05b231b5 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_concept_not_applicable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_static.cpp index 898f132f18b..07973a5bd14 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_static.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_concept_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_unsupported.cpp index 878f16268f2..4a4fee1f705 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_unsupported.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_concept_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_free.cpp index e248e9338f4..b66965e60e1 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_free.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_member.cpp index 8f9fd03a97c..cac464174f1 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_member.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_free.cpp index 20ed4ed0e8d..9705b87b244 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_free.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_not_applicable_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_member.cpp index e896ad061a7..cd7f75fef34 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_member.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_not_applicable_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_static.cpp index 6bb8faa0f75..f852e451513 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_static.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_not_applicable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_unsupported.cpp index 2dd98405224..e6286aba02c 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_not_applicable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_static.cpp index ee8d5555a67..4c1b38fc2c0 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_static.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/can_require_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_unsupported.cpp index 0426abd46a6..bc9c4ed2072 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/can_require_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_unsupported.cpp @@ -2,7 +2,7 @@ // cpp11/can_require_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/prefer_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/prefer_free_prefer.cpp index 0c42fdfc80b..3faf0019399 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/prefer_free_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/prefer_free_prefer.cpp @@ -2,7 +2,7 @@ // cpp11/prefer_free_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/prefer_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/prefer_free_require.cpp index 8597c0d38c1..f30d0fbb06f 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/prefer_free_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/prefer_free_require.cpp @@ -2,7 +2,7 @@ // cpp11/prefer_free_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/prefer_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/prefer_member_prefer.cpp index b97c45ff9ae..9803d5e5e95 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/prefer_member_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/prefer_member_prefer.cpp @@ -2,7 +2,7 @@ // cpp11/prefer_member_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/prefer_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/prefer_member_require.cpp index a896efd7437..701fb2dec81 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/prefer_member_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/prefer_member_require.cpp @@ -2,7 +2,7 @@ // cpp11/prefer_member_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/prefer_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/prefer_static.cpp index 721ff7ae037..18cd713d9d0 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/prefer_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/prefer_static.cpp @@ -2,7 +2,7 @@ // cpp11/prefer_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/prefer_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/prefer_unsupported.cpp index 0eaaf9105c5..8eb542301ec 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/prefer_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/prefer_unsupported.cpp @@ -2,7 +2,7 @@ // cpp11/prefer_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/query_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/query_free.cpp index 0a872cd0233..17a14dc3f5a 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/query_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/query_free.cpp @@ -2,7 +2,7 @@ // cpp11/query_free.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/query_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/query_member.cpp index 0c9a576f8ea..18ea24171ab 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/query_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/query_member.cpp @@ -2,7 +2,7 @@ // cpp11/query_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/query_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/query_static.cpp index c7cde46cb01..3290ab0971f 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/query_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/query_static.cpp @@ -2,7 +2,7 @@ // cpp11/query_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/require_concept_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/require_concept_free.cpp index 5179852e1ae..3f422988d2a 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/require_concept_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/require_concept_free.cpp @@ -2,7 +2,7 @@ // cpp11/require_concept_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/require_concept_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/require_concept_member.cpp index 4f71dc0c22a..1f8bbf65b42 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/require_concept_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/require_concept_member.cpp @@ -2,7 +2,7 @@ // cpp11/require_concept_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/require_concept_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/require_concept_static.cpp index 7f57963fb3d..b2a6f9dde39 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/require_concept_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/require_concept_static.cpp @@ -2,7 +2,7 @@ // cpp11/require_concept_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/require_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/require_free.cpp index bd1569f361c..1acd5bc78ce 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/require_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/require_free.cpp @@ -2,7 +2,7 @@ // cpp11/require_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/require_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/require_member.cpp index 545d2c3a112..e9192830811 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/require_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/require_member.cpp @@ -2,7 +2,7 @@ // cpp11/require_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp11/require_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/require_static.cpp index 7ea70271312..e752dac10a4 100644 --- a/3rdparty/asio/src/tests/properties/cpp11/require_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp11/require_static.cpp @@ -2,7 +2,7 @@ // cpp11/require_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_prefer.cpp index 30e8a97bbdf..f7f2854233c 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_prefer.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_free_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_require.cpp index 3f18f1c4f6e..a2a01e4d739 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_require.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_free_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_prefer.cpp index 2140e3175c3..b0d9622bd5b 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_prefer.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_member_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_require.cpp index 99b1cff35fa..9d1146ad323 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_require.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_member_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_prefer.cpp index b1290243f7b..1a305fc3ae6 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_prefer.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_not_applicable_free_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_require.cpp index e71bf759aa9..c5d732441d7 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_require.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_not_applicable_free_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_prefer.cpp index 6caced35383..66af105ead3 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_prefer.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_not_applicable_member_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_require.cpp index 3fb4c48c74a..a2bf20b6e89 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_require.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_not_applicable_member_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_static.cpp index d5c275ee61d..123fd863f48 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_static.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_not_applicable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_unsupported.cpp index 2e9f78e7fed..ed67b39d6a2 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_not_applicable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_prefer.cpp index 7dc29e0d8a6..99cb8074746 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_prefer.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_not_preferable_free_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_require.cpp index 964c259f883..0e3329de423 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_require.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_not_preferable_free_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_prefer.cpp index 2f61538ea96..12213cd57e9 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_prefer.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_not_preferable_member_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_require.cpp index 0bb32d97c5e..d801a808b4d 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_require.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_not_preferable_member_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_static.cpp index 38c4309e9a0..cbaf4eecc46 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_static.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_not_preferable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_unsupported.cpp index e9b18bf297f..aa37aedd3c6 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_not_preferable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_static.cpp index 8437f9b62ec..3933a78839b 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_static.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_unsupported.cpp index 0bf1ce07d9d..09ce8e02f18 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_unsupported.cpp @@ -2,7 +2,7 @@ // cpp14/can_prefer_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_query_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_free.cpp index 1a6c19e9766..7654a78a06a 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_query_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_free.cpp @@ -2,7 +2,7 @@ // cpp14/can_query_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_query_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_member.cpp index 49bf42c387e..6bd6c02c98b 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_query_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_member.cpp @@ -2,7 +2,7 @@ // cpp14/can_query_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_free.cpp index c1b7ed540e7..bda1770699b 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_free.cpp @@ -2,7 +2,7 @@ // cpp14/can_query_not_applicable_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_member.cpp index 56e2dc5342d..25b6ab9c793 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_member.cpp @@ -2,7 +2,7 @@ // cpp14/can_query_not_applicable_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_static.cpp index 28e27c3529d..299a5e1f2a5 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_static.cpp @@ -2,7 +2,7 @@ // cpp14/can_query_not_applicable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_unsupported.cpp index 1b89d2b02a6..cec0aea9167 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp14/can_query_not_applicable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_query_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_static.cpp index 7d1bb34fd7c..67b19ac74ed 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_query_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_static.cpp @@ -2,7 +2,7 @@ // cpp14/can_query_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_query_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_unsupported.cpp index 34c752c367d..7e8f63f1405 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_query_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_unsupported.cpp @@ -2,7 +2,7 @@ // cpp14/can_query_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_free.cpp index ff5163bc02b..e0dea96edf0 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_free.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_concept_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_member.cpp index 8d2d1b16a53..7da0a580a6f 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_member.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_concept_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_free.cpp index 80b857747ca..f6d48165356 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_free.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_concept_not_applicable_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_member.cpp index 9e6691030b8..5252cb77447 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_member.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_concept_not_applicable_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_static.cpp index 304acf95bdf..7da83a988fb 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_static.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_concept_not_applicable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_unsupported.cpp index d6154dc4e3b..939b450be73 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_concept_not_applicable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_static.cpp index 845e800d64c..577363a0eea 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_static.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_concept_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_unsupported.cpp index 2b68ec48e3f..2bcdc6c7606 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_unsupported.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_concept_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_free.cpp index 1d1bfe3cbda..f0bda074d5a 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_free.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_member.cpp index 0bb144c24a6..0eeb0aa45c5 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_member.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_free.cpp index ce377e825e3..f68576e2f1c 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_free.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_not_applicable_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_member.cpp index 2e4479ee6a7..1c7aa953aeb 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_member.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_not_applicable_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_static.cpp index 19fe61e0c12..ba7b5a80ccc 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_static.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_not_applicable_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_unsupported.cpp index b86790f8269..25d71e35d48 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_unsupported.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_not_applicable_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_static.cpp index 27f802e4c52..f92c0b56c8a 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_static.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/can_require_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_unsupported.cpp index 9c06f0dc905..4cf2756d40b 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/can_require_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_unsupported.cpp @@ -2,7 +2,7 @@ // cpp14/can_require_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/prefer_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/prefer_free_prefer.cpp index 5c49b9d56bb..fce83ed6b9f 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/prefer_free_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/prefer_free_prefer.cpp @@ -2,7 +2,7 @@ // cpp14/prefer_free_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/prefer_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/prefer_free_require.cpp index 9244a030554..349aebeb515 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/prefer_free_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/prefer_free_require.cpp @@ -2,7 +2,7 @@ // cpp14/prefer_free_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/prefer_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/prefer_member_prefer.cpp index 0b0b03055d5..56d29efd34c 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/prefer_member_prefer.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/prefer_member_prefer.cpp @@ -2,7 +2,7 @@ // cpp14/prefer_member_prefer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/prefer_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/prefer_member_require.cpp index cdcad780c91..7b88df406e8 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/prefer_member_require.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/prefer_member_require.cpp @@ -2,7 +2,7 @@ // cpp14/prefer_member_require.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/prefer_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/prefer_static.cpp index 874f64673d6..8fd537ae74b 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/prefer_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/prefer_static.cpp @@ -2,7 +2,7 @@ // cpp14/prefer_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/prefer_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/prefer_unsupported.cpp index 34f7e0eb330..50b8da0f9d3 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/prefer_unsupported.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/prefer_unsupported.cpp @@ -2,7 +2,7 @@ // cpp14/prefer_unsupported.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/query_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/query_free.cpp index 128e0d184c3..24be8dbe945 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/query_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/query_free.cpp @@ -2,7 +2,7 @@ // cpp14/query_free.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/query_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/query_member.cpp index 8c61f5405d9..fab0bed9d03 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/query_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/query_member.cpp @@ -2,7 +2,7 @@ // cpp14/query_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/query_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/query_static.cpp index c277fffaa54..d13ad85c3c6 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/query_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/query_static.cpp @@ -2,7 +2,7 @@ // cpp14/query_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/require_concept_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/require_concept_free.cpp index 43ecc9c2328..d7323db95ba 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/require_concept_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/require_concept_free.cpp @@ -2,7 +2,7 @@ // cpp14/require_concept_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/require_concept_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/require_concept_member.cpp index 99c43d336ed..e21dda3f6e4 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/require_concept_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/require_concept_member.cpp @@ -2,7 +2,7 @@ // cpp14/require_concept_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/require_concept_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/require_concept_static.cpp index 1cb7c35d68c..523ed758061 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/require_concept_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/require_concept_static.cpp @@ -2,7 +2,7 @@ // cpp14/require_concept_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/require_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/require_free.cpp index a139175f032..32893ff26ee 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/require_free.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/require_free.cpp @@ -2,7 +2,7 @@ // cpp14/require_free.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/require_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/require_member.cpp index 80bde893291..f2e58aa2f76 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/require_member.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/require_member.cpp @@ -2,7 +2,7 @@ // cpp14/require_member.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/properties/cpp14/require_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/require_static.cpp index 86403d5c6d6..acdd7fbf499 100644 --- a/3rdparty/asio/src/tests/properties/cpp14/require_static.cpp +++ b/3rdparty/asio/src/tests/properties/cpp14/require_static.cpp @@ -2,7 +2,7 @@ // cpp14/require_static.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/any_completion_executor.cpp b/3rdparty/asio/src/tests/unit/any_completion_executor.cpp new file mode 100644 index 00000000000..5d1d5b1e271 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/any_completion_executor.cpp @@ -0,0 +1,463 @@ +// +// any_completion_executor.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/any_completion_executor.hpp" + +#include <cstring> +#include <functional> +#include "asio/system_executor.hpp" +#include "asio/thread_pool.hpp" +#include "unit_test.hpp" + +using namespace asio; +namespace bindns = std; + +static bool next_nothrow_new_fails = false; + +void* operator new(std::size_t n, + const std::nothrow_t&) noexcept +{ + if (next_nothrow_new_fails) + { + next_nothrow_new_fails = false; + return 0; + } + return ::operator new(n); +} + +struct fat_executor +{ + fat_executor(int id) + : id_(id) + { + std::memset(data_, 0, sizeof(data_)); + } + + template <typename F> + void execute(const F&) const + { + } + + friend bool operator==(const fat_executor& a, + const fat_executor& b) noexcept + { + return a.id_ == b.id_; + } + + friend bool operator!=(const fat_executor& a, + const fat_executor& b) noexcept + { + return a.id_ != b.id_; + } + + int id_; + unsigned char data_[1024]; +}; + +namespace asio { +namespace traits { + +#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +template <typename F> +struct execute_member<fat_executor, F> +{ + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = false; + typedef void result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +template <> +struct equality_comparable<fat_executor> +{ + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +} // namespace traits +} // namespace asio + +void increment(int* count) +{ + ++(*count); +} + +void any_completion_executor_construction_test() +{ + thread_pool pool(1); + asio::nullptr_t null_ptr = asio::nullptr_t(); + + asio::any_completion_executor ex1; + + ASIO_CHECK(ex1.target<void>() == 0); + ASIO_CHECK(ex1 == null_ptr); + + asio::any_completion_executor ex2(null_ptr); + + ASIO_CHECK(ex2.target<void>() == 0); + ASIO_CHECK(ex2 == null_ptr); + ASIO_CHECK(ex2 == ex1); + + asio::any_completion_executor ex3(pool.executor()); + + ASIO_CHECK(ex3.target<void>() != 0); + ASIO_CHECK(ex3 != null_ptr); + ASIO_CHECK(ex3 != ex1); + + asio::any_completion_executor ex4(ex1); + + ASIO_CHECK(ex4.target<void>() == 0); + ASIO_CHECK(ex4 == null_ptr); + ASIO_CHECK(ex4 == ex1); + + asio::any_completion_executor ex5(ex3); + + ASIO_CHECK(ex5.target<void>() != 0); + ASIO_CHECK(ex5 != null_ptr); + ASIO_CHECK(ex5 == ex3); + + asio::any_completion_executor ex6 = fat_executor(1); + + ASIO_CHECK(ex6.target<void>() != 0); + ASIO_CHECK(ex6 != null_ptr); + ASIO_CHECK(ex6 != ex1); + + asio::any_completion_executor ex7 = fat_executor(1); + + ASIO_CHECK(ex7.target<void>() != 0); + ASIO_CHECK(ex7 != null_ptr); + ASIO_CHECK(ex7 != ex1); + ASIO_CHECK(ex7 == ex6); + + asio::any_completion_executor ex8 = fat_executor(2); + + ASIO_CHECK(ex8.target<void>() != 0); + ASIO_CHECK(ex8 != null_ptr); + ASIO_CHECK(ex8 != ex1); + ASIO_CHECK(ex8 != ex6); + ASIO_CHECK(ex8 != ex7); + + asio::any_completion_executor ex9(ex6); + + ASIO_CHECK(ex9.target<void>() != 0); + ASIO_CHECK(ex9 != null_ptr); + ASIO_CHECK(ex9 != ex1); + ASIO_CHECK(ex9 == ex6); + ASIO_CHECK(ex9 == ex7); + ASIO_CHECK(ex9 != ex8); + + asio::any_completion_executor ex10(std::move(ex1)); + + ASIO_CHECK(ex10.target<void>() == 0); + ASIO_CHECK(ex10 == null_ptr); + ASIO_CHECK(ex1.target<void>() == 0); + ASIO_CHECK(ex1 == null_ptr); + + asio::any_completion_executor ex11(std::move(ex3)); + + ASIO_CHECK(ex11.target<void>() != 0); + ASIO_CHECK(ex11 != null_ptr); + ASIO_CHECK(ex3.target<void>() == 0); + ASIO_CHECK(ex3 == null_ptr); + ASIO_CHECK(ex11 == ex5); + + asio::any_completion_executor ex12(std::move(ex7)); + + ASIO_CHECK(ex12.target<void>() != 0); + ASIO_CHECK(ex12 != null_ptr); + ASIO_CHECK(ex7.target<void>() == 0); + ASIO_CHECK(ex7 == null_ptr); + ASIO_CHECK(ex12 == ex6); + ASIO_CHECK(ex12 != ex8); +} + +void any_completion_executor_nothrow_construction_test() +{ + thread_pool pool(1); + asio::nullptr_t null_ptr = asio::nullptr_t(); + + asio::any_completion_executor ex1; + + ASIO_CHECK(ex1.target<void>() == 0); + ASIO_CHECK(ex1 == null_ptr); + + asio::any_completion_executor ex2(null_ptr); + + ASIO_CHECK(ex2.target<void>() == 0); + ASIO_CHECK(ex2 == null_ptr); + ASIO_CHECK(ex2 == ex1); + + asio::any_completion_executor ex3(std::nothrow, pool.executor()); + + ASIO_CHECK(ex3.target<void>() != 0); + ASIO_CHECK(ex3 != null_ptr); + ASIO_CHECK(ex3 != ex1); + + asio::any_completion_executor ex4(std::nothrow, ex1); + + ASIO_CHECK(ex4.target<void>() == 0); + ASIO_CHECK(ex4 == null_ptr); + ASIO_CHECK(ex4 == ex1); + + asio::any_completion_executor ex5(std::nothrow, ex3); + + ASIO_CHECK(ex5.target<void>() != 0); + ASIO_CHECK(ex5 != null_ptr); + ASIO_CHECK(ex5 == ex3); + + asio::any_completion_executor ex6(std::nothrow, fat_executor(1)); + + ASIO_CHECK(ex6.target<void>() != 0); + ASIO_CHECK(ex6 != null_ptr); + ASIO_CHECK(ex6 != ex1); + + asio::any_completion_executor ex7(std::nothrow, fat_executor(1)); + + ASIO_CHECK(ex7.target<void>() != 0); + ASIO_CHECK(ex7 != null_ptr); + ASIO_CHECK(ex7 != ex1); + ASIO_CHECK(ex7 == ex6); + + asio::any_completion_executor ex8(std::nothrow, fat_executor(2)); + + ASIO_CHECK(ex8.target<void>() != 0); + ASIO_CHECK(ex8 != null_ptr); + ASIO_CHECK(ex8 != ex1); + ASIO_CHECK(ex8 != ex6); + ASIO_CHECK(ex8 != ex7); + + asio::any_completion_executor ex9(std::nothrow, ex6); + + ASIO_CHECK(ex9.target<void>() != 0); + ASIO_CHECK(ex9 != null_ptr); + ASIO_CHECK(ex9 != ex1); + ASIO_CHECK(ex9 == ex6); + ASIO_CHECK(ex9 == ex7); + ASIO_CHECK(ex9 != ex8); + + asio::any_completion_executor ex10(std::nothrow, std::move(ex1)); + + ASIO_CHECK(ex10.target<void>() == 0); + ASIO_CHECK(ex10 == null_ptr); + ASIO_CHECK(ex1.target<void>() == 0); + ASIO_CHECK(ex1 == null_ptr); + + asio::any_completion_executor ex11(std::nothrow, std::move(ex3)); + + ASIO_CHECK(ex11.target<void>() != 0); + ASIO_CHECK(ex11 != null_ptr); + ASIO_CHECK(ex3.target<void>() == 0); + ASIO_CHECK(ex3 == null_ptr); + ASIO_CHECK(ex11 == ex5); + + asio::any_completion_executor ex12(std::nothrow, std::move(ex7)); + + ASIO_CHECK(ex12.target<void>() != 0); + ASIO_CHECK(ex12 != null_ptr); + ASIO_CHECK(ex7.target<void>() == 0); + ASIO_CHECK(ex7 == null_ptr); + ASIO_CHECK(ex12 == ex6); + ASIO_CHECK(ex12 != ex8); + + next_nothrow_new_fails = true; + asio::any_completion_executor ex13(std::nothrow, fat_executor(3)); + + ASIO_CHECK(ex13.target<void>() == 0); + ASIO_CHECK(ex13 == null_ptr); + ASIO_CHECK(ex13 == ex1); +} + +void any_completion_executor_assignment_test() +{ + thread_pool pool(1); + asio::nullptr_t null_ptr = asio::nullptr_t(); + + asio::any_completion_executor ex1; + + asio::any_completion_executor ex2; + ex2 = null_ptr; + + ASIO_CHECK(ex2.target<void>() == 0); + + asio::any_completion_executor ex3; + ex3 = pool.executor(); + + ASIO_CHECK(ex3.target<void>() != 0); + + asio::any_completion_executor ex4; + ex4 = ex1; + + ASIO_CHECK(ex4.target<void>() == 0); + ASIO_CHECK(ex4 == ex1); + + ex4 = ex3; + + ASIO_CHECK(ex4.target<void>() != 0); + ASIO_CHECK(ex4 == ex3); + + asio::any_completion_executor ex5; + ex5 = fat_executor(1); + + ASIO_CHECK(ex5.target<void>() != 0); + ASIO_CHECK(ex5 != null_ptr); + ASIO_CHECK(ex5 != ex1); + + asio::any_completion_executor ex6; + ex6 = fat_executor(1); + + ASIO_CHECK(ex6.target<void>() != 0); + ASIO_CHECK(ex6 != null_ptr); + ASIO_CHECK(ex6 != ex1); + ASIO_CHECK(ex6 == ex5); + + ex6 = fat_executor(2); + + ASIO_CHECK(ex6.target<void>() != 0); + ASIO_CHECK(ex6 != null_ptr); + ASIO_CHECK(ex6 != ex1); + ASIO_CHECK(ex6 != ex5); + + asio::any_completion_executor ex7; + ex7 = ex5; + + ASIO_CHECK(ex7.target<void>() != 0); + ASIO_CHECK(ex7 != null_ptr); + ASIO_CHECK(ex7 != ex1); + ASIO_CHECK(ex7 == ex5); + ASIO_CHECK(ex7 != ex6); + + asio::any_completion_executor ex8; + ex8 = std::move(ex1); + + ASIO_CHECK(ex8.target<void>() == 0); + ASIO_CHECK(ex1.target<void>() == 0); + + ex8 = std::move(ex3); + + ASIO_CHECK(ex8.target<void>() != 0); + ASIO_CHECK(ex3.target<void>() == 0); + ASIO_CHECK(ex8 == ex4); + + ex8 = std::move(ex5); + + ASIO_CHECK(ex8.target<void>() != 0); + ASIO_CHECK(ex5.target<void>() == 0); + ASIO_CHECK(ex8 == ex7); +} + +void any_completion_executor_swap_test() +{ + thread_pool pool1(1); + thread_pool pool2(1); + + asio::any_completion_executor ex1(pool1.executor()); + asio::any_completion_executor ex2(pool2.executor()); + + asio::any_completion_executor ex3(ex1); + asio::any_completion_executor ex4(ex2); + + ASIO_CHECK(ex3 == ex1); + ASIO_CHECK(ex4 == ex2); + + ex3.swap(ex4); + + ASIO_CHECK(ex3 == ex2); + ASIO_CHECK(ex4 == ex1); + + execution::swap(ex3, ex4); + + ASIO_CHECK(ex3 == ex1); + ASIO_CHECK(ex4 == ex2); +} + +void any_completion_executor_query_test() +{ + thread_pool pool(1); + asio::any_completion_executor ex(pool.executor()); + + ASIO_CHECK( + asio::query(ex, asio::execution::blocking) + == asio::execution::blocking.possibly); + + ASIO_CHECK( + asio::query(ex, asio::execution::blocking.possibly) + == asio::execution::blocking.possibly); + + ASIO_CHECK( + asio::query(ex, asio::execution::outstanding_work) + == asio::execution::outstanding_work.untracked); + + ASIO_CHECK( + asio::query(ex, asio::execution::outstanding_work.untracked) + == asio::execution::outstanding_work.untracked); + + ASIO_CHECK( + asio::query(ex, asio::execution::relationship) + == asio::execution::relationship.fork); + + ASIO_CHECK( + asio::query(ex, asio::execution::relationship.fork) + == asio::execution::relationship.fork); +} + +void any_completion_executor_execute_test() +{ + int count = 0; + thread_pool pool(1); + asio::any_completion_executor ex(pool.executor()); + + ex.execute(bindns::bind(increment, &count)); + + asio::prefer(ex, asio::execution::blocking.possibly).execute( + bindns::bind(increment, &count)); + + asio::prefer(ex, + asio::execution::blocking.possibly, + asio::execution::outstanding_work.tracked + ).execute(bindns::bind(increment, &count)); + + asio::prefer(ex, + asio::execution::blocking.possibly, + asio::execution::outstanding_work.untracked + ).execute(bindns::bind(increment, &count)); + + asio::prefer(ex, + asio::execution::blocking.possibly, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.continuation + ).execute(bindns::bind(increment, &count)); + + pool.wait(); + + ASIO_CHECK(count == 5); +} + +ASIO_TEST_SUITE +( + "any_completion_executor", + ASIO_TEST_CASE(any_completion_executor_construction_test) + ASIO_TEST_CASE(any_completion_executor_nothrow_construction_test) + ASIO_TEST_CASE(any_completion_executor_assignment_test) + ASIO_TEST_CASE(any_completion_executor_swap_test) + ASIO_TEST_CASE(any_completion_executor_query_test) + ASIO_TEST_CASE(any_completion_executor_execute_test) +) diff --git a/3rdparty/asio/src/tests/unit/any_completion_handler.cpp b/3rdparty/asio/src/tests/unit/any_completion_handler.cpp new file mode 100644 index 00000000000..887402de8d3 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/any_completion_handler.cpp @@ -0,0 +1,260 @@ +// +// any_completion_handler.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/any_completion_handler.hpp" + +#include "unit_test.hpp" + +#include <functional> +#include "asio/bind_allocator.hpp" +#include "asio/bind_cancellation_slot.hpp" +#include "asio/bind_executor.hpp" +#include "asio/bind_immediate_executor.hpp" +#include "asio/error.hpp" +#include "asio/thread_pool.hpp" + +namespace bindns = std; + +void increment(int* count) +{ + ++(*count); +} + +void any_completion_handler_construction_test() +{ + int count = 0; + asio::nullptr_t null_ptr = asio::nullptr_t(); + + asio::any_completion_handler<void()> h1; + + ASIO_CHECK(!h1); + ASIO_CHECK(h1 == null_ptr); + + asio::any_completion_handler<void()> h2(null_ptr); + + ASIO_CHECK(!h2); + ASIO_CHECK(h2 == null_ptr); + + asio::any_completion_handler<void()> h3( + bindns::bind(&increment, &count)); + + ASIO_CHECK(!!h3); + ASIO_CHECK(h3 != null_ptr); + + asio::any_completion_handler<void()> h4(std::move(h1)); + + ASIO_CHECK(!h4); + ASIO_CHECK(h4 == null_ptr); + ASIO_CHECK(!h1); + ASIO_CHECK(h1 == null_ptr); + + asio::any_completion_handler<void()> h5(std::move(h3)); + + ASIO_CHECK(!!h5); + ASIO_CHECK(h5 != null_ptr); + ASIO_CHECK(!h3); + ASIO_CHECK(h3 == null_ptr); + + asio::any_completion_handler<void()> h6(std::move(h5)); + + ASIO_CHECK(!!h6); + ASIO_CHECK(h6 != null_ptr); + ASIO_CHECK(!h5); + ASIO_CHECK(h5 == null_ptr); +} + +void any_completion_handler_assignment_test() +{ + int count = 0; + asio::nullptr_t null_ptr = asio::nullptr_t(); + + asio::any_completion_handler<void()> h1; + + asio::any_completion_handler<void()> h2; + h2 = null_ptr; + + ASIO_CHECK(!h2); + + asio::any_completion_handler<void()> h3; + h3 = bindns::bind(&increment, &count); + + ASIO_CHECK(!!h3); + + asio::any_completion_handler<void()> h4; + h4 = std::move(h1); + + ASIO_CHECK(!h4); + ASIO_CHECK(!h1); + + h4 = std::move(h3); + + ASIO_CHECK(!!h4); + ASIO_CHECK(!h3); +} + +template <typename T> +class handler_allocator +{ +public: + using value_type = T; + + explicit handler_allocator(int* count) + : count_(count) + { + } + + template <typename U> + handler_allocator(const handler_allocator<U>& other) noexcept + : count_(other.count_) + { + } + + bool operator==(const handler_allocator& other) const noexcept + { + return &count_ == &other.count_; + } + + bool operator!=(const handler_allocator& other) const noexcept + { + return &count_ != &other.count_; + } + + T* allocate(std::size_t n) const + { + ++(*count_); + return static_cast<T*>(::operator new(sizeof(T) * n)); + } + + void deallocate(T* p, std::size_t /*n*/) const + { + ::operator delete(p); + } + +private: + template <typename> friend class handler_allocator; + + int* count_; +}; + +class cancel_handler +{ +public: + explicit cancel_handler(int* count) + : count_(count) + { + } + + void operator()(asio::cancellation_type_t) + { + ++(*count_); + } + +private: + int* count_; +}; + +void any_completion_handler_associator_test() +{ + typedef asio::any_completion_handler<void()> handler_type; + + int count = 0; + int alloc_count = 0; + int cancel_count = 0; + asio::thread_pool pool(1); + asio::cancellation_signal sig; + + asio::any_completion_handler<void()> h1( + asio::bind_allocator(handler_allocator<char>(&alloc_count), + asio::bind_cancellation_slot(sig.slot(), + asio::bind_executor(pool.get_executor(), + asio::bind_immediate_executor(asio::system_executor(), + bindns::bind(&increment, &count)))))); + + ASIO_CHECK(alloc_count == 1); + + ASIO_REBIND_ALLOC(asio::associated_allocator<handler_type>::type, + char) alloc1(asio::get_associated_allocator(h1)); + alloc1.deallocate(alloc1.allocate(1), 1); + + ASIO_CHECK(alloc_count == 2); + + asio::associated_cancellation_slot<handler_type>::type slot1 + = asio::get_associated_cancellation_slot(h1); + + ASIO_CHECK(slot1.is_connected()); + + slot1.emplace<cancel_handler>(&cancel_count); + + ASIO_CHECK(cancel_count == 0); + + sig.emit(asio::cancellation_type::terminal); + + ASIO_CHECK(cancel_count == 1); + + asio::associated_executor<handler_type>::type ex1 + = asio::get_associated_executor(h1); + + ASIO_CHECK(ex1 == pool.get_executor()); + + asio::associated_immediate_executor< + handler_type, asio::thread_pool::executor_type>::type ex2 + = asio::get_associated_immediate_executor(h1, pool.get_executor()); + + ASIO_CHECK(ex2 == asio::system_executor()); +} + +void increment_with_error(asio::error_code ec, + asio::error_code* out_ec, int* count) +{ + *out_ec = ec; + ++(*count); +} + +void any_completion_handler_invocation_test() +{ + int count = 0; + asio::error_code ec; + + asio::any_completion_handler<void()> h1( + bindns::bind(&increment, &count)); + + ASIO_CHECK(count == 0); + + std::move(h1)(); + + ASIO_CHECK(count == 1); + + asio::any_completion_handler<void(asio::error_code)> h2( + bindns::bind(&increment_with_error, + bindns::placeholders::_1, &ec, &count)); + + ASIO_CHECK(!ec); + ASIO_CHECK(count == 1); + + std::move(h2)(asio::error::eof); + + ASIO_CHECK(ec == asio::error::eof); + ASIO_CHECK(count == 2); +} + +ASIO_TEST_SUITE +( + "any_completion_handler", + ASIO_TEST_CASE(any_completion_handler_construction_test) + ASIO_TEST_CASE(any_completion_handler_assignment_test) + ASIO_TEST_CASE(any_completion_handler_associator_test) + ASIO_TEST_CASE(any_completion_handler_invocation_test) +) diff --git a/3rdparty/asio/src/tests/unit/any_io_executor.cpp b/3rdparty/asio/src/tests/unit/any_io_executor.cpp new file mode 100644 index 00000000000..e0a32ba3838 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/any_io_executor.cpp @@ -0,0 +1,515 @@ +// +// any_io_executor.cpp +// ~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/any_io_executor.hpp" + +#include <cstring> +#include <functional> +#include "asio/system_executor.hpp" +#include "asio/thread_pool.hpp" +#include "unit_test.hpp" + +using namespace asio; +namespace bindns = std; + +static bool next_nothrow_new_fails = false; + +void* operator new(std::size_t n, + const std::nothrow_t&) noexcept +{ + if (next_nothrow_new_fails) + { + next_nothrow_new_fails = false; + return 0; + } + return ::operator new(n); +} + +struct fat_executor +{ + fat_executor(int id) + : id_(id) + { + std::memset(data_, 0, sizeof(data_)); + } + + template <typename F> + void execute(const F&) const + { + } + + execution_context& query(execution::context_t) const noexcept + { + return asio::query(system_executor(), execution::context); + } + + constexpr static execution::blocking_t::never_t query( + execution::blocking_t) noexcept + { + return execution::blocking.never; + } + + friend bool operator==(const fat_executor& a, + const fat_executor& b) noexcept + { + return a.id_ == b.id_; + } + + friend bool operator!=(const fat_executor& a, + const fat_executor& b) noexcept + { + return a.id_ != b.id_; + } + + int id_; + unsigned char data_[1024]; +}; + +namespace asio { +namespace traits { + +#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +template <typename F> +struct execute_member<fat_executor, F> +{ + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = false; + typedef void result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) + +template <> +struct query_member<fat_executor, execution::context_t> +{ + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; + typedef execution_context& result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT) + +template <typename Property> +struct query_static_constexpr_member<fat_executor, Property, + typename asio::enable_if< + asio::is_convertible< + Property, + asio::execution::blocking_t + >::value + >::type + > +{ + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; + typedef execution::blocking_t::never_t result_type; + + static constexpr result_type value() noexcept + { + return result_type(); + } +}; + +#endif // !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +template <> +struct equality_comparable<fat_executor> +{ + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +} // namespace traits +} // namespace asio + +void increment(int* count) +{ + ++(*count); +} + +void any_io_executor_construction_test() +{ + thread_pool pool(1); + asio::nullptr_t null_ptr = asio::nullptr_t(); + + asio::any_io_executor ex1; + + ASIO_CHECK(ex1.target<void>() == 0); + ASIO_CHECK(ex1 == null_ptr); + + asio::any_io_executor ex2(null_ptr); + + ASIO_CHECK(ex2.target<void>() == 0); + ASIO_CHECK(ex2 == null_ptr); + ASIO_CHECK(ex2 == ex1); + + asio::any_io_executor ex3(pool.executor()); + + ASIO_CHECK(ex3.target<void>() != 0); + ASIO_CHECK(ex3 != null_ptr); + ASIO_CHECK(ex3 != ex1); + + asio::any_io_executor ex4(ex1); + + ASIO_CHECK(ex4.target<void>() == 0); + ASIO_CHECK(ex4 == null_ptr); + ASIO_CHECK(ex4 == ex1); + + asio::any_io_executor ex5(ex3); + + ASIO_CHECK(ex5.target<void>() != 0); + ASIO_CHECK(ex5 != null_ptr); + ASIO_CHECK(ex5 == ex3); + + asio::any_io_executor ex6 = fat_executor(1); + + ASIO_CHECK(ex6.target<void>() != 0); + ASIO_CHECK(ex6 != null_ptr); + ASIO_CHECK(ex6 != ex1); + + asio::any_io_executor ex7 = fat_executor(1); + + ASIO_CHECK(ex7.target<void>() != 0); + ASIO_CHECK(ex7 != null_ptr); + ASIO_CHECK(ex7 != ex1); + ASIO_CHECK(ex7 == ex6); + + asio::any_io_executor ex8 = fat_executor(2); + + ASIO_CHECK(ex8.target<void>() != 0); + ASIO_CHECK(ex8 != null_ptr); + ASIO_CHECK(ex8 != ex1); + ASIO_CHECK(ex8 != ex6); + ASIO_CHECK(ex8 != ex7); + + asio::any_io_executor ex9(ex6); + + ASIO_CHECK(ex9.target<void>() != 0); + ASIO_CHECK(ex9 != null_ptr); + ASIO_CHECK(ex9 != ex1); + ASIO_CHECK(ex9 == ex6); + ASIO_CHECK(ex9 == ex7); + ASIO_CHECK(ex9 != ex8); + + asio::any_io_executor ex10(std::move(ex1)); + + ASIO_CHECK(ex10.target<void>() == 0); + ASIO_CHECK(ex10 == null_ptr); + ASIO_CHECK(ex1.target<void>() == 0); + ASIO_CHECK(ex1 == null_ptr); + + asio::any_io_executor ex11(std::move(ex3)); + + ASIO_CHECK(ex11.target<void>() != 0); + ASIO_CHECK(ex11 != null_ptr); + ASIO_CHECK(ex3.target<void>() == 0); + ASIO_CHECK(ex3 == null_ptr); + ASIO_CHECK(ex11 == ex5); + + asio::any_io_executor ex12(std::move(ex7)); + + ASIO_CHECK(ex12.target<void>() != 0); + ASIO_CHECK(ex12 != null_ptr); + ASIO_CHECK(ex7.target<void>() == 0); + ASIO_CHECK(ex7 == null_ptr); + ASIO_CHECK(ex12 == ex6); + ASIO_CHECK(ex12 != ex8); +} + +void any_io_executor_nothrow_construction_test() +{ + thread_pool pool(1); + asio::nullptr_t null_ptr = asio::nullptr_t(); + + asio::any_io_executor ex1; + + ASIO_CHECK(ex1.target<void>() == 0); + ASIO_CHECK(ex1 == null_ptr); + + asio::any_io_executor ex2(null_ptr); + + ASIO_CHECK(ex2.target<void>() == 0); + ASIO_CHECK(ex2 == null_ptr); + ASIO_CHECK(ex2 == ex1); + + asio::any_io_executor ex3(std::nothrow, pool.executor()); + + ASIO_CHECK(ex3.target<void>() != 0); + ASIO_CHECK(ex3 != null_ptr); + ASIO_CHECK(ex3 != ex1); + + asio::any_io_executor ex4(std::nothrow, ex1); + + ASIO_CHECK(ex4.target<void>() == 0); + ASIO_CHECK(ex4 == null_ptr); + ASIO_CHECK(ex4 == ex1); + + asio::any_io_executor ex5(std::nothrow, ex3); + + ASIO_CHECK(ex5.target<void>() != 0); + ASIO_CHECK(ex5 != null_ptr); + ASIO_CHECK(ex5 == ex3); + + asio::any_io_executor ex6(std::nothrow, fat_executor(1)); + + ASIO_CHECK(ex6.target<void>() != 0); + ASIO_CHECK(ex6 != null_ptr); + ASIO_CHECK(ex6 != ex1); + + asio::any_io_executor ex7(std::nothrow, fat_executor(1)); + + ASIO_CHECK(ex7.target<void>() != 0); + ASIO_CHECK(ex7 != null_ptr); + ASIO_CHECK(ex7 != ex1); + ASIO_CHECK(ex7 == ex6); + + asio::any_io_executor ex8(std::nothrow, fat_executor(2)); + + ASIO_CHECK(ex8.target<void>() != 0); + ASIO_CHECK(ex8 != null_ptr); + ASIO_CHECK(ex8 != ex1); + ASIO_CHECK(ex8 != ex6); + ASIO_CHECK(ex8 != ex7); + + asio::any_io_executor ex9(std::nothrow, ex6); + + ASIO_CHECK(ex9.target<void>() != 0); + ASIO_CHECK(ex9 != null_ptr); + ASIO_CHECK(ex9 != ex1); + ASIO_CHECK(ex9 == ex6); + ASIO_CHECK(ex9 == ex7); + ASIO_CHECK(ex9 != ex8); + + asio::any_io_executor ex10(std::nothrow, std::move(ex1)); + + ASIO_CHECK(ex10.target<void>() == 0); + ASIO_CHECK(ex10 == null_ptr); + ASIO_CHECK(ex1.target<void>() == 0); + ASIO_CHECK(ex1 == null_ptr); + + asio::any_io_executor ex11(std::nothrow, std::move(ex3)); + + ASIO_CHECK(ex11.target<void>() != 0); + ASIO_CHECK(ex11 != null_ptr); + ASIO_CHECK(ex3.target<void>() == 0); + ASIO_CHECK(ex3 == null_ptr); + ASIO_CHECK(ex11 == ex5); + + asio::any_io_executor ex12(std::nothrow, std::move(ex7)); + + ASIO_CHECK(ex12.target<void>() != 0); + ASIO_CHECK(ex12 != null_ptr); + ASIO_CHECK(ex7.target<void>() == 0); + ASIO_CHECK(ex7 == null_ptr); + ASIO_CHECK(ex12 == ex6); + ASIO_CHECK(ex12 != ex8); + + next_nothrow_new_fails = true; + asio::any_io_executor ex13(std::nothrow, fat_executor(3)); + + ASIO_CHECK(ex13.target<void>() == 0); + ASIO_CHECK(ex13 == null_ptr); + ASIO_CHECK(ex13 == ex1); +} + +void any_io_executor_assignment_test() +{ + thread_pool pool(1); + asio::nullptr_t null_ptr = asio::nullptr_t(); + + asio::any_io_executor ex1; + + asio::any_io_executor ex2; + ex2 = null_ptr; + + ASIO_CHECK(ex2.target<void>() == 0); + + asio::any_io_executor ex3; + ex3 = pool.executor(); + + ASIO_CHECK(ex3.target<void>() != 0); + + asio::any_io_executor ex4; + ex4 = ex1; + + ASIO_CHECK(ex4.target<void>() == 0); + ASIO_CHECK(ex4 == ex1); + + ex4 = ex3; + + ASIO_CHECK(ex4.target<void>() != 0); + ASIO_CHECK(ex4 == ex3); + + asio::any_io_executor ex5; + ex5 = fat_executor(1); + + ASIO_CHECK(ex5.target<void>() != 0); + ASIO_CHECK(ex5 != null_ptr); + ASIO_CHECK(ex5 != ex1); + + asio::any_io_executor ex6; + ex6 = fat_executor(1); + + ASIO_CHECK(ex6.target<void>() != 0); + ASIO_CHECK(ex6 != null_ptr); + ASIO_CHECK(ex6 != ex1); + ASIO_CHECK(ex6 == ex5); + + ex6 = fat_executor(2); + + ASIO_CHECK(ex6.target<void>() != 0); + ASIO_CHECK(ex6 != null_ptr); + ASIO_CHECK(ex6 != ex1); + ASIO_CHECK(ex6 != ex5); + + asio::any_io_executor ex7; + ex7 = ex5; + + ASIO_CHECK(ex7.target<void>() != 0); + ASIO_CHECK(ex7 != null_ptr); + ASIO_CHECK(ex7 != ex1); + ASIO_CHECK(ex7 == ex5); + ASIO_CHECK(ex7 != ex6); + + asio::any_io_executor ex8; + ex8 = std::move(ex1); + + ASIO_CHECK(ex8.target<void>() == 0); + ASIO_CHECK(ex1.target<void>() == 0); + + ex8 = std::move(ex3); + + ASIO_CHECK(ex8.target<void>() != 0); + ASIO_CHECK(ex3.target<void>() == 0); + ASIO_CHECK(ex8 == ex4); + + ex8 = std::move(ex5); + + ASIO_CHECK(ex8.target<void>() != 0); + ASIO_CHECK(ex5.target<void>() == 0); + ASIO_CHECK(ex8 == ex7); +} + +void any_io_executor_swap_test() +{ + thread_pool pool1(1); + thread_pool pool2(1); + + asio::any_io_executor ex1(pool1.executor()); + asio::any_io_executor ex2(pool2.executor()); + + asio::any_io_executor ex3(ex1); + asio::any_io_executor ex4(ex2); + + ASIO_CHECK(ex3 == ex1); + ASIO_CHECK(ex4 == ex2); + + ex3.swap(ex4); + + ASIO_CHECK(ex3 == ex2); + ASIO_CHECK(ex4 == ex1); + + execution::swap(ex3, ex4); + + ASIO_CHECK(ex3 == ex1); + ASIO_CHECK(ex4 == ex2); +} + +void any_io_executor_query_test() +{ + thread_pool pool(1); + asio::any_io_executor ex(pool.executor()); + + ASIO_CHECK( + asio::query(ex, asio::execution::blocking) + == asio::execution::blocking.possibly); + + ASIO_CHECK( + asio::query(ex, asio::execution::blocking.possibly) + == asio::execution::blocking.possibly); + + ASIO_CHECK( + asio::query(ex, asio::execution::outstanding_work) + == asio::execution::outstanding_work.untracked); + + ASIO_CHECK( + asio::query(ex, asio::execution::outstanding_work.untracked) + == asio::execution::outstanding_work.untracked); + + ASIO_CHECK( + asio::query(ex, asio::execution::relationship) + == asio::execution::relationship.fork); + + ASIO_CHECK( + asio::query(ex, asio::execution::relationship.fork) + == asio::execution::relationship.fork); +} + +void any_io_executor_execute_test() +{ + int count = 0; + thread_pool pool(1); + asio::any_io_executor ex(pool.executor()); + + ex.execute(bindns::bind(increment, &count)); + + asio::prefer(ex, asio::execution::blocking.possibly).execute( + bindns::bind(increment, &count)); + + asio::require(ex, asio::execution::blocking.never).execute( + bindns::bind(increment, &count)); + + asio::require( + asio::prefer(ex, asio::execution::outstanding_work.tracked), + asio::execution::blocking.never + ).execute(bindns::bind(increment, &count)); + + asio::require( + asio::prefer(ex, + asio::execution::outstanding_work.untracked), + asio::execution::blocking.never + ).execute(bindns::bind(increment, &count)); + + asio::require( + asio::prefer(ex, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.continuation), + asio::execution::blocking.never + ).execute(bindns::bind(increment, &count)); + + pool.wait(); + + ASIO_CHECK(count == 6); +} + +ASIO_TEST_SUITE +( + "any_io_executor", + ASIO_TEST_CASE(any_io_executor_construction_test) + ASIO_TEST_CASE(any_io_executor_nothrow_construction_test) + ASIO_TEST_CASE(any_io_executor_assignment_test) + ASIO_TEST_CASE(any_io_executor_swap_test) + ASIO_TEST_CASE(any_io_executor_query_test) + ASIO_TEST_CASE(any_io_executor_execute_test) +) diff --git a/3rdparty/asio/src/tests/unit/append.cpp b/3rdparty/asio/src/tests/unit/append.cpp new file mode 100644 index 00000000000..9aa00e3bfa4 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/append.cpp @@ -0,0 +1,58 @@ +// +// append.cpp +// ~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/append.hpp" + +#include "asio/bind_executor.hpp" +#include "asio/io_context.hpp" +#include "asio/post.hpp" +#include "asio/system_timer.hpp" +#include "unit_test.hpp" + +void append_test() +{ + asio::io_context io1; + asio::io_context io2; + asio::system_timer timer1(io1); + int count = 0; + + timer1.expires_after(asio::chrono::seconds(0)); + timer1.async_wait( + asio::append( + asio::bind_executor(io2.get_executor(), + [&count](asio::error_code, int a, int b) + { + ++count; + ASIO_CHECK(a == 123); + ASIO_CHECK(b == 321); + }), 123, 321)); + + ASIO_CHECK(count == 0); + + io1.run(); + + ASIO_CHECK(count == 0); + + io2.run(); + + ASIO_CHECK(count == 1); +} + +ASIO_TEST_SUITE +( + "append", + ASIO_TEST_CASE(append_test) +) diff --git a/3rdparty/asio/src/tests/unit/archetypes/async_ops.hpp b/3rdparty/asio/src/tests/unit/archetypes/async_ops.hpp index 80364af575b..3c2b1308bd8 100644 --- a/3rdparty/asio/src/tests/unit/archetypes/async_ops.hpp +++ b/3rdparty/asio/src/tests/unit/archetypes/async_ops.hpp @@ -1,8 +1,8 @@ // -// async_ops.hpp -// ~~~~~~~~~~~~~ +// archetypes/async_ops.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -11,30 +11,22 @@ #ifndef ARCHETYPES_ASYNC_OPS_HPP #define ARCHETYPES_ASYNC_OPS_HPP -#include <asio/associated_allocator.hpp> -#include <asio/associated_executor.hpp> -#include <asio/async_result.hpp> -#include <asio/error.hpp> - -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) +#include <functional> +#include "asio/associated_allocator.hpp" +#include "asio/associated_executor.hpp" +#include "asio/async_result.hpp" +#include "asio/error.hpp" namespace archetypes { -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) template <typename CompletionToken> -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) -async_op_0(ASIO_MOVE_ARG(CompletionToken) token) +typename asio::async_result<asio::decay_t<CompletionToken>, + void()>::return_type +async_op_0(CompletionToken&& token) { - typedef typename asio::async_completion<CompletionToken, + typedef typename asio::async_result<asio::decay_t<CompletionToken>, void()>::completion_handler_type handler_type; asio::async_completion<CompletionToken, @@ -46,16 +38,17 @@ async_op_0(ASIO_MOVE_ARG(CompletionToken) token) typename asio::associated_executor<handler_type>::type ex = asio::get_associated_executor(completion.completion_handler); - ex.post(ASIO_MOVE_CAST(handler_type)(completion.completion_handler), a); + ex.post(static_cast<handler_type&&>(completion.completion_handler), a); return completion.result.get(); } template <typename CompletionToken> -ASIO_INITFN_RESULT_TYPE(CompletionToken, void(asio::error_code)) +typename asio::async_result<asio::decay_t<CompletionToken>, + void(asio::error_code)>::return_type async_op_ec_0(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { - typedef typename asio::async_completion<CompletionToken, + typedef typename asio::async_result<asio::decay_t<CompletionToken>, void(asio::error_code)>::completion_handler_type handler_type; asio::async_completion<CompletionToken, @@ -71,14 +64,14 @@ async_op_ec_0(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), asio::error_code()), a); } else { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), asio::error_code(asio::error::operation_aborted)), a); } @@ -86,10 +79,11 @@ async_op_ec_0(bool ok, ASIO_MOVE_ARG(CompletionToken) token) } template <typename CompletionToken> -ASIO_INITFN_RESULT_TYPE(CompletionToken, void(std::exception_ptr)) +typename asio::async_result<asio::decay_t<CompletionToken>, + void(std::exception_ptr)>::return_type async_op_ex_0(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { - typedef typename asio::async_completion<CompletionToken, + typedef typename asio::async_result<asio::decay_t<CompletionToken>, void(std::exception_ptr)>::completion_handler_type handler_type; asio::async_completion<CompletionToken, @@ -105,14 +99,14 @@ async_op_ex_0(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), std::exception_ptr()), a); } else { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), std::make_exception_ptr(std::runtime_error("blah"))), a); } @@ -120,10 +114,11 @@ async_op_ex_0(bool ok, ASIO_MOVE_ARG(CompletionToken) token) } template <typename CompletionToken> -ASIO_INITFN_RESULT_TYPE(CompletionToken, void(int)) +typename asio::async_result<asio::decay_t<CompletionToken>, + void(int)>::return_type async_op_1(ASIO_MOVE_ARG(CompletionToken) token) { - typedef typename asio::async_completion<CompletionToken, + typedef typename asio::async_result<asio::decay_t<CompletionToken>, void(int)>::completion_handler_type handler_type; asio::async_completion<CompletionToken, @@ -137,18 +132,18 @@ async_op_1(ASIO_MOVE_ARG(CompletionToken) token) ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), 42), a); return completion.result.get(); } template <typename CompletionToken> -ASIO_INITFN_RESULT_TYPE(CompletionToken, - void(asio::error_code, int)) +typename asio::async_result<asio::decay_t<CompletionToken>, + void(asio::error_code, int)>::return_type async_op_ec_1(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { - typedef typename asio::async_completion<CompletionToken, + typedef typename asio::async_result<asio::decay_t<CompletionToken>, void(asio::error_code, int)>::completion_handler_type handler_type; @@ -165,14 +160,14 @@ async_op_ec_1(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), asio::error_code(), 42), a); } else { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), asio::error_code(asio::error::operation_aborted), 0), a); } @@ -181,10 +176,11 @@ async_op_ec_1(bool ok, ASIO_MOVE_ARG(CompletionToken) token) } template <typename CompletionToken> -ASIO_INITFN_RESULT_TYPE(CompletionToken, void(std::exception_ptr, int)) +typename asio::async_result<asio::decay_t<CompletionToken>, + void(std::exception_ptr, int)>::return_type async_op_ex_1(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { - typedef typename asio::async_completion<CompletionToken, + typedef typename asio::async_result<asio::decay_t<CompletionToken>, void(std::exception_ptr, int)>::completion_handler_type handler_type; @@ -201,14 +197,14 @@ async_op_ex_1(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), std::exception_ptr(), 42), a); } else { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), std::make_exception_ptr(std::runtime_error("blah")), 0), a); } @@ -216,10 +212,11 @@ async_op_ex_1(bool ok, ASIO_MOVE_ARG(CompletionToken) token) } template <typename CompletionToken> -ASIO_INITFN_RESULT_TYPE(CompletionToken, void(int, double)) +typename asio::async_result<asio::decay_t<CompletionToken>, + void(int, double)>::return_type async_op_2(ASIO_MOVE_ARG(CompletionToken) token) { - typedef typename asio::async_completion<CompletionToken, + typedef typename asio::async_result<asio::decay_t<CompletionToken>, void(int, double)>::completion_handler_type handler_type; asio::async_completion<CompletionToken, @@ -233,18 +230,18 @@ async_op_2(ASIO_MOVE_ARG(CompletionToken) token) ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), 42, 2.0), a); return completion.result.get(); } template <typename CompletionToken> -ASIO_INITFN_RESULT_TYPE(CompletionToken, - void(asio::error_code, int, double)) +typename asio::async_result<asio::decay_t<CompletionToken>, + void(asio::error_code, int, double)>::return_type async_op_ec_2(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { - typedef typename asio::async_completion<CompletionToken, + typedef typename asio::async_result<asio::decay_t<CompletionToken>, void(asio::error_code, int, double)>::completion_handler_type handler_type; @@ -261,14 +258,14 @@ async_op_ec_2(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), asio::error_code(), 42, 2.0), a); } else { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), asio::error_code(asio::error::operation_aborted), 0, 0.0), a); } @@ -277,11 +274,11 @@ async_op_ec_2(bool ok, ASIO_MOVE_ARG(CompletionToken) token) } template <typename CompletionToken> -ASIO_INITFN_RESULT_TYPE(CompletionToken, - void(std::exception_ptr, int, double)) +typename asio::async_result<asio::decay_t<CompletionToken>, + void(std::exception_ptr, int, double)>::return_type async_op_ex_2(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { - typedef typename asio::async_completion<CompletionToken, + typedef typename asio::async_result<asio::decay_t<CompletionToken>, void(std::exception_ptr, int, double)>::completion_handler_type handler_type; @@ -298,14 +295,14 @@ async_op_ex_2(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), std::exception_ptr(), 42, 2.0), a); } else { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), std::make_exception_ptr(std::runtime_error("blah")), 0, 0.0), a); } @@ -313,10 +310,11 @@ async_op_ex_2(bool ok, ASIO_MOVE_ARG(CompletionToken) token) } template <typename CompletionToken> -ASIO_INITFN_RESULT_TYPE(CompletionToken, void(int, double, char)) +typename asio::async_result<asio::decay_t<CompletionToken>, + void(int, double, char)>::return_type async_op_3(ASIO_MOVE_ARG(CompletionToken) token) { - typedef typename asio::async_completion<CompletionToken, + typedef typename asio::async_result<asio::decay_t<CompletionToken>, void(int, double, char)>::completion_handler_type handler_type; asio::async_completion<CompletionToken, @@ -330,18 +328,18 @@ async_op_3(ASIO_MOVE_ARG(CompletionToken) token) ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), 42, 2.0, 'a'), a); return completion.result.get(); } template <typename CompletionToken> -ASIO_INITFN_RESULT_TYPE(CompletionToken, - void(asio::error_code, int, double, char)) +typename asio::async_result<asio::decay_t<CompletionToken>, + void(asio::error_code, int, double, char)>::return_type async_op_ec_3(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { - typedef typename asio::async_completion<CompletionToken, + typedef typename asio::async_result<asio::decay_t<CompletionToken>, void(asio::error_code, int, double, char)>::completion_handler_type handler_type; @@ -358,14 +356,14 @@ async_op_ec_3(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), asio::error_code(), 42, 2.0, 'a'), a); } else { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), asio::error_code(asio::error::operation_aborted), 0, 0.0, 'z'), a); } @@ -374,11 +372,11 @@ async_op_ec_3(bool ok, ASIO_MOVE_ARG(CompletionToken) token) } template <typename CompletionToken> -ASIO_INITFN_RESULT_TYPE(CompletionToken, - void(std::exception_ptr, int, double, char)) +typename asio::async_result<asio::decay_t<CompletionToken>, + void(std::exception_ptr, int, double, char)>::return_type async_op_ex_3(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { - typedef typename asio::async_completion<CompletionToken, + typedef typename asio::async_result<asio::decay_t<CompletionToken>, void(std::exception_ptr, int, double, char)>::completion_handler_type handler_type; @@ -395,14 +393,14 @@ async_op_ex_3(bool ok, ASIO_MOVE_ARG(CompletionToken) token) { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), std::exception_ptr(), 42, 2.0, 'a'), a); } else { ex.post( bindns::bind( - ASIO_MOVE_CAST(handler_type)(completion.completion_handler), + static_cast<handler_type&&>(completion.completion_handler), std::make_exception_ptr(std::runtime_error("blah")), 0, 0.0, 'z'), a); } diff --git a/3rdparty/asio/src/tests/unit/archetypes/async_result.hpp b/3rdparty/asio/src/tests/unit/archetypes/async_result.hpp index 4c26a3f0c61..bfd9cf1aac2 100644 --- a/3rdparty/asio/src/tests/unit/archetypes/async_result.hpp +++ b/3rdparty/asio/src/tests/unit/archetypes/async_result.hpp @@ -2,7 +2,7 @@ // async_result.hpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -12,9 +12,14 @@ #define ARCHETYPES_ASYNC_RESULT_HPP #include <asio/async_result.hpp> +#include <asio/system_executor.hpp> namespace archetypes { +struct immediate_handler +{ +}; + struct lazy_handler { }; @@ -25,7 +30,7 @@ struct concrete_handler; template <typename R, typename Arg1> struct concrete_handler<R(Arg1)> { - concrete_handler(lazy_handler) + concrete_handler() { } @@ -33,29 +38,53 @@ struct concrete_handler<R(Arg1)> { } -#if defined(ASIO_HAS_MOVE) concrete_handler(concrete_handler&&) {} private: concrete_handler(const concrete_handler&); -#endif // defined(ASIO_HAS_MOVE) }; template <typename R, typename Arg1, typename Arg2> struct concrete_handler<R(Arg1, Arg2)> { - concrete_handler(lazy_handler) + concrete_handler() { } - void operator()(typename asio::decay<Arg1>::type, typename asio::decay<Arg2>::type) + void operator()(typename asio::decay<Arg1>::type, + typename asio::decay<Arg2>::type) { } +}; -#if defined(ASIO_HAS_MOVE) - concrete_handler(concrete_handler&&) {} +template <typename Signature> +struct immediate_concrete_handler : concrete_handler<Signature> +{ + typedef asio::system_executor immediate_executor_type; + + immediate_concrete_handler(immediate_handler) + { + } + + immediate_executor_type get_immediate_executor() const noexcept + { + return immediate_executor_type(); + } + + immediate_concrete_handler(immediate_concrete_handler&&) {} private: - concrete_handler(const concrete_handler&); -#endif // defined(ASIO_HAS_MOVE) + immediate_concrete_handler(const immediate_concrete_handler&); +}; + +template <typename Signature> +struct lazy_concrete_handler : concrete_handler<Signature> +{ + lazy_concrete_handler(lazy_handler) + { + } + + lazy_concrete_handler(lazy_concrete_handler&&) {} +private: + lazy_concrete_handler(const lazy_concrete_handler&); }; } // namespace archetypes @@ -63,11 +92,38 @@ private: namespace asio { template <typename Signature> +class async_result<archetypes::immediate_handler, Signature> +{ +public: + // The concrete completion handler type. + typedef archetypes::immediate_concrete_handler<Signature> + completion_handler_type; + + // The return type of the initiating function. + typedef void return_type; + + // Construct an async_result from a given handler. + explicit async_result(completion_handler_type&) + { + } + + // Obtain the value to be returned from the initiating function. + void get() + { + } + +private: + // Disallow copying and assignment. + async_result(const async_result&) = delete; + async_result& operator=(const async_result&) = delete; +}; + +template <typename Signature> class async_result<archetypes::lazy_handler, Signature> { public: // The concrete completion handler type. - typedef archetypes::concrete_handler<Signature> completion_handler_type; + typedef archetypes::lazy_concrete_handler<Signature> completion_handler_type; // The return type of the initiating function. typedef int return_type; @@ -85,8 +141,8 @@ public: private: // Disallow copying and assignment. - async_result(const async_result&) ASIO_DELETED; - async_result& operator=(const async_result&) ASIO_DELETED; + async_result(const async_result&) = delete; + async_result& operator=(const async_result&) = delete; }; } // namespace asio diff --git a/3rdparty/asio/src/tests/unit/archetypes/gettable_socket_option.hpp b/3rdparty/asio/src/tests/unit/archetypes/gettable_socket_option.hpp index 17f1518f3ba..e1c2d3f0d4e 100644 --- a/3rdparty/asio/src/tests/unit/archetypes/gettable_socket_option.hpp +++ b/3rdparty/asio/src/tests/unit/archetypes/gettable_socket_option.hpp @@ -2,7 +2,7 @@ // gettable_socket_option.hpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/archetypes/io_control_command.hpp b/3rdparty/asio/src/tests/unit/archetypes/io_control_command.hpp index 00bdd657079..45ed07cf481 100644 --- a/3rdparty/asio/src/tests/unit/archetypes/io_control_command.hpp +++ b/3rdparty/asio/src/tests/unit/archetypes/io_control_command.hpp @@ -2,7 +2,7 @@ // io_control_command.hpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/archetypes/settable_socket_option.hpp b/3rdparty/asio/src/tests/unit/archetypes/settable_socket_option.hpp index 50b33d3ffad..7a5867ba800 100644 --- a/3rdparty/asio/src/tests/unit/archetypes/settable_socket_option.hpp +++ b/3rdparty/asio/src/tests/unit/archetypes/settable_socket_option.hpp @@ -2,7 +2,7 @@ // settable_socket_option.hpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/as_tuple.cpp b/3rdparty/asio/src/tests/unit/as_tuple.cpp new file mode 100644 index 00000000000..a176d95bb2e --- /dev/null +++ b/3rdparty/asio/src/tests/unit/as_tuple.cpp @@ -0,0 +1,122 @@ +// +// as_tuple.cpp +// ~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/as_tuple.hpp" + +#include "asio/bind_executor.hpp" +#include "asio/deferred.hpp" +#include "asio/io_context.hpp" +#include "asio/post.hpp" +#include "asio/system_timer.hpp" +#include "asio/use_future.hpp" +#include "unit_test.hpp" + +void as_tuple_test() +{ + asio::io_context io1; + asio::io_context io2; + asio::system_timer timer1(io1); + int count = 0; + + timer1.expires_after(asio::chrono::seconds(0)); + timer1.async_wait( + asio::as_tuple( + asio::bind_executor(io2.get_executor(), + [&count](std::tuple<asio::error_code>) + { + ++count; + }))); + + ASIO_CHECK(count == 0); + + io1.run(); + + ASIO_CHECK(count == 0); + + io2.run(); + + ASIO_CHECK(count == 1); + + timer1.async_wait( + asio::as_tuple( + asio::bind_executor(io2.get_executor(), + asio::deferred)))( + [&count](std::tuple<asio::error_code>) + { + ++count; + }); + + ASIO_CHECK(count == 1); + + io1.restart(); + io1.run(); + + ASIO_CHECK(count == 1); + + io2.restart(); + io2.run(); + + ASIO_CHECK(count == 2); + +# if defined(ASIO_HAS_STD_FUTURE_CLASS) + std::future<std::tuple<asio::error_code> > f = timer1.async_wait( + asio::as_tuple( + asio::bind_executor(io2.get_executor(), + asio::use_future))); + + ASIO_CHECK(f.wait_for(std::chrono::seconds(0)) + == std::future_status::timeout); + + io1.restart(); + io1.run(); + + ASIO_CHECK(f.wait_for(std::chrono::seconds(0)) + == std::future_status::timeout); + + io2.restart(); + io2.run(); + + ASIO_CHECK(f.wait_for(std::chrono::seconds(0)) + == std::future_status::ready); +# endif // defined(ASIO_HAS_STD_FUTURE_CLASS) +} + +void as_tuple_constness_test() +{ +# if defined(ASIO_HAS_STD_FUTURE_CLASS) + asio::io_context io1; + asio::system_timer timer1(io1); + + auto tok1 = asio::as_tuple(asio::use_future); + (void)timer1.async_wait(tok1); + (void)timer1.async_wait(std::move(tok1)); + + const auto tok2 = asio::as_tuple(asio::use_future); + (void)timer1.async_wait(tok2); + (void)timer1.async_wait(std::move(tok2)); + + constexpr auto tok3 = asio::as_tuple(asio::use_future); + (void)timer1.async_wait(tok3); + (void)timer1.async_wait(std::move(tok3)); +# endif // defined(ASIO_HAS_STD_FUTURE_CLASS) +} + +ASIO_TEST_SUITE +( + "as_tuple", + ASIO_TEST_CASE(as_tuple_test) + ASIO_COMPILE_TEST_CASE(as_tuple_constness_test) +) diff --git a/3rdparty/asio/src/tests/unit/associated_allocator.cpp b/3rdparty/asio/src/tests/unit/associated_allocator.cpp index 63ee6828ed2..69a8afb0d41 100644 --- a/3rdparty/asio/src/tests/unit/associated_allocator.cpp +++ b/3rdparty/asio/src/tests/unit/associated_allocator.cpp @@ -2,7 +2,7 @@ // associated_allocator.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/associated_cancellation_slot.cpp b/3rdparty/asio/src/tests/unit/associated_cancellation_slot.cpp index 9e1105d5332..96d488458cb 100644 --- a/3rdparty/asio/src/tests/unit/associated_cancellation_slot.cpp +++ b/3rdparty/asio/src/tests/unit/associated_cancellation_slot.cpp @@ -2,7 +2,7 @@ // associated_cancellation_slot.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/associated_executor.cpp b/3rdparty/asio/src/tests/unit/associated_executor.cpp index c9533a84609..60b1f00657f 100644 --- a/3rdparty/asio/src/tests/unit/associated_executor.cpp +++ b/3rdparty/asio/src/tests/unit/associated_executor.cpp @@ -2,7 +2,7 @@ // associated_executor.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/associated_immediate_executor.cpp b/3rdparty/asio/src/tests/unit/associated_immediate_executor.cpp new file mode 100644 index 00000000000..f085a2cfcee --- /dev/null +++ b/3rdparty/asio/src/tests/unit/associated_immediate_executor.cpp @@ -0,0 +1,25 @@ +// +// associated_immediate_executor.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2022 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/associated_immediate_executor.hpp" + +#include "unit_test.hpp" + +ASIO_TEST_SUITE +( + "associated_immediate_executor", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/associator.cpp b/3rdparty/asio/src/tests/unit/associator.cpp index e79fe677fe2..a35d95c66e0 100644 --- a/3rdparty/asio/src/tests/unit/associator.cpp +++ b/3rdparty/asio/src/tests/unit/associator.cpp @@ -2,7 +2,7 @@ // associator.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/async_result.cpp b/3rdparty/asio/src/tests/unit/async_result.cpp index 5002559dd12..75a4e91b71e 100644 --- a/3rdparty/asio/src/tests/unit/async_result.cpp +++ b/3rdparty/asio/src/tests/unit/async_result.cpp @@ -2,7 +2,7 @@ // async_result.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/awaitable.cpp b/3rdparty/asio/src/tests/unit/awaitable.cpp index a1e9077765d..39ca8ddfdbe 100644 --- a/3rdparty/asio/src/tests/unit/awaitable.cpp +++ b/3rdparty/asio/src/tests/unit/awaitable.cpp @@ -2,7 +2,7 @@ // awaitable.cpp // ~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/basic_datagram_socket.cpp b/3rdparty/asio/src/tests/unit/basic_datagram_socket.cpp index 28e78c10194..44fa2561646 100644 --- a/3rdparty/asio/src/tests/unit/basic_datagram_socket.cpp +++ b/3rdparty/asio/src/tests/unit/basic_datagram_socket.cpp @@ -2,7 +2,7 @@ // basic_datagram_socket.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/basic_deadline_timer.cpp b/3rdparty/asio/src/tests/unit/basic_deadline_timer.cpp index 2ea478da3b3..ec6a6e37d18 100644 --- a/3rdparty/asio/src/tests/unit/basic_deadline_timer.cpp +++ b/3rdparty/asio/src/tests/unit/basic_deadline_timer.cpp @@ -2,7 +2,7 @@ // basic_deadline_timer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/basic_file.cpp b/3rdparty/asio/src/tests/unit/basic_file.cpp new file mode 100644 index 00000000000..5308d1268b0 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/basic_file.cpp @@ -0,0 +1,25 @@ +// +// basic_file.cpp +// ~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/basic_file.hpp" + +#include "unit_test.hpp" + +ASIO_TEST_SUITE +( + "basic_file", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/basic_random_access_file.cpp b/3rdparty/asio/src/tests/unit/basic_random_access_file.cpp new file mode 100644 index 00000000000..fffaee3e8a2 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/basic_random_access_file.cpp @@ -0,0 +1,25 @@ +// +// basic_random_access_file.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/basic_random_access_file.hpp" + +#include "unit_test.hpp" + +ASIO_TEST_SUITE +( + "basic_random_access_file", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/basic_raw_socket.cpp b/3rdparty/asio/src/tests/unit/basic_raw_socket.cpp index 3e87d6dd915..127df060b0c 100644 --- a/3rdparty/asio/src/tests/unit/basic_raw_socket.cpp +++ b/3rdparty/asio/src/tests/unit/basic_raw_socket.cpp @@ -2,7 +2,7 @@ // basic_raw_socket.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/basic_readable_pipe.cpp b/3rdparty/asio/src/tests/unit/basic_readable_pipe.cpp new file mode 100644 index 00000000000..f390acf4f98 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/basic_readable_pipe.cpp @@ -0,0 +1,25 @@ +// +// basic_readable_pipe.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/basic_readable_pipe.hpp" + +#include "unit_test.hpp" + +ASIO_TEST_SUITE +( + "basic_readable_pipe", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/basic_seq_packet_socket.cpp b/3rdparty/asio/src/tests/unit/basic_seq_packet_socket.cpp index 3c48c0353e1..c8b9bfa67bc 100644 --- a/3rdparty/asio/src/tests/unit/basic_seq_packet_socket.cpp +++ b/3rdparty/asio/src/tests/unit/basic_seq_packet_socket.cpp @@ -2,7 +2,7 @@ // basic_seq_packet_socket.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/basic_serial_port.cpp b/3rdparty/asio/src/tests/unit/basic_serial_port.cpp index 519c04df421..1a64348a989 100644 --- a/3rdparty/asio/src/tests/unit/basic_serial_port.cpp +++ b/3rdparty/asio/src/tests/unit/basic_serial_port.cpp @@ -2,7 +2,7 @@ // basic_serial_port.cpp // ~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdparty/asio/src/tests/unit/basic_signal_set.cpp b/3rdparty/asio/src/tests/unit/basic_signal_set.cpp index d2880b544f2..01340178e69 100644 --- a/3rdparty/asio/src/tests/unit/basic_signal_set.cpp +++ b/3rdparty/asio/src/tests/unit/basic_signal_set.cpp @@ -2,7 +2,7 @@ // basic_signal_set.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/basic_socket.cpp b/3rdparty/asio/src/tests/unit/basic_socket.cpp index def16e0fab2..c2814e6b96d 100644 --- a/3rdparty/asio/src/tests/unit/basic_socket.cpp +++ b/3rdparty/asio/src/tests/unit/basic_socket.cpp @@ -2,7 +2,7 @@ // basic_socket.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/basic_socket_acceptor.cpp b/3rdparty/asio/src/tests/unit/basic_socket_acceptor.cpp index 49cb72a953c..021a81628ae 100644 --- a/3rdparty/asio/src/tests/unit/basic_socket_acceptor.cpp +++ b/3rdparty/asio/src/tests/unit/basic_socket_acceptor.cpp @@ -2,7 +2,7 @@ // basic_socket_acceptor.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/basic_stream_file.cpp b/3rdparty/asio/src/tests/unit/basic_stream_file.cpp new file mode 100644 index 00000000000..9902122c9cb --- /dev/null +++ b/3rdparty/asio/src/tests/unit/basic_stream_file.cpp @@ -0,0 +1,25 @@ +// +// basic_stream_file.cpp +// ~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/basic_stream_file.hpp" + +#include "unit_test.hpp" + +ASIO_TEST_SUITE +( + "basic_stream_file", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/basic_stream_socket.cpp b/3rdparty/asio/src/tests/unit/basic_stream_socket.cpp index ab0e6d0759a..1edbe5a530c 100644 --- a/3rdparty/asio/src/tests/unit/basic_stream_socket.cpp +++ b/3rdparty/asio/src/tests/unit/basic_stream_socket.cpp @@ -2,7 +2,7 @@ // basic_stream_socket.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/basic_streambuf.cpp b/3rdparty/asio/src/tests/unit/basic_streambuf.cpp index 8172bef62b6..9529dd801fe 100644 --- a/3rdparty/asio/src/tests/unit/basic_streambuf.cpp +++ b/3rdparty/asio/src/tests/unit/basic_streambuf.cpp @@ -2,7 +2,7 @@ // basic_streambuf.cpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/basic_waitable_timer.cpp b/3rdparty/asio/src/tests/unit/basic_waitable_timer.cpp index 8cb0ca0ffb1..9d6be41b754 100644 --- a/3rdparty/asio/src/tests/unit/basic_waitable_timer.cpp +++ b/3rdparty/asio/src/tests/unit/basic_waitable_timer.cpp @@ -2,7 +2,7 @@ // basic_waitable_timer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/basic_writable_pipe.cpp b/3rdparty/asio/src/tests/unit/basic_writable_pipe.cpp new file mode 100644 index 00000000000..fc0d0fdd955 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/basic_writable_pipe.cpp @@ -0,0 +1,25 @@ +// +// basic_writable_pipe.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/basic_writable_pipe.hpp" + +#include "unit_test.hpp" + +ASIO_TEST_SUITE +( + "basic_writable_pipe", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/bind_allocator.cpp b/3rdparty/asio/src/tests/unit/bind_allocator.cpp new file mode 100644 index 00000000000..b7c11ffb53c --- /dev/null +++ b/3rdparty/asio/src/tests/unit/bind_allocator.cpp @@ -0,0 +1,237 @@ +// +// bind_allocator.cpp +// ~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/bind_allocator.hpp" + +#include <functional> +#include "asio/io_context.hpp" +#include "asio/steady_timer.hpp" +#include "unit_test.hpp" + +#if defined(ASIO_HAS_BOOST_DATE_TIME) +# include "asio/deadline_timer.hpp" +#else // defined(ASIO_HAS_BOOST_DATE_TIME) +# include "asio/steady_timer.hpp" +#endif // defined(ASIO_HAS_BOOST_DATE_TIME) + +using namespace asio; +namespace bindns = std; + +#if defined(ASIO_HAS_BOOST_DATE_TIME) +typedef deadline_timer timer; +namespace chronons = boost::posix_time; +#else // defined(ASIO_HAS_BOOST_DATE_TIME) +typedef steady_timer timer; +namespace chronons = asio::chrono; +#endif // defined(ASIO_HAS_BOOST_DATE_TIME) + +template <typename T> +class test_allocator +{ +public: + typedef T value_type; + + explicit test_allocator(int* allocations) + : allocations_(allocations) + { + } + + template <typename U> + test_allocator(const test_allocator<U>& other) + : allocations_(other.allocations_) + { + } + + template <typename U> + struct rebind + { + typedef test_allocator<U> other; + }; + + bool operator==(const test_allocator&) const + { + return true; + } + + bool operator!=(const test_allocator&) const + { + return false; + } + + T* allocate(std::size_t n) const + { + ++(*allocations_); + return static_cast<T*>(::operator new(sizeof(T) * n)); + } + + void deallocate(T* p, std::size_t /*n*/) const + { + --(*allocations_); + ::operator delete(p); + } + +//private: + int* allocations_; +}; + +void increment(int* count) +{ + ++(*count); +} + +void bind_allocator_to_function_object_test() +{ + io_context ioc; + + int count = 0; + int allocations = 0; + + timer t(ioc, chronons::seconds(1)); + t.async_wait( + bind_allocator( + test_allocator<int>(&allocations), + bindns::bind(&increment, &count))); + + ASIO_CHECK(count == 0); + ASIO_CHECK(allocations == 1); + + ioc.run(); + + ASIO_CHECK(count == 1); + ASIO_CHECK(allocations == 0); + + t.async_wait( + bind_allocator( + test_allocator<int>(&allocations), + bind_allocator( + std::allocator<void>(), + bindns::bind(&increment, &count)))); + + ASIO_CHECK(count == 1); + ASIO_CHECK(allocations == 1); + + ioc.restart(); + ioc.run(); + + ASIO_CHECK(count == 2); + ASIO_CHECK(allocations == 0); +} + +struct incrementer_token_v1 +{ + explicit incrementer_token_v1(int* c) : count(c) {} + int* count; +}; + +struct incrementer_handler_v1 +{ + explicit incrementer_handler_v1(incrementer_token_v1 t) : count(t.count) {} + void operator()(asio::error_code){ increment(count); } + int* count; +}; + +namespace asio { + +template <> +class async_result<incrementer_token_v1, void(asio::error_code)> +{ +public: + typedef incrementer_handler_v1 completion_handler_type; + typedef void return_type; + explicit async_result(completion_handler_type&) {} + return_type get() {} +}; + +} // namespace asio + +void bind_allocator_to_completion_token_v1_test() +{ + io_context ioc; + + int count = 0; + int allocations = 0; + + timer t(ioc, chronons::seconds(1)); + t.async_wait( + bind_allocator( + test_allocator<int>(&allocations), + incrementer_token_v1(&count))); + + ASIO_CHECK(count == 0); + ASIO_CHECK(allocations == 1); + + ioc.run(); + + ASIO_CHECK(count == 1); + ASIO_CHECK(allocations == 0); +} + +struct incrementer_token_v2 +{ + explicit incrementer_token_v2(int* c) : count(c) {} + int* count; +}; + +namespace asio { + +template <> +class async_result<incrementer_token_v2, void(asio::error_code)> +{ +public: +#if !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION) + typedef void return_type; +#endif // !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION) + + template <typename Initiation, typename... Args> + static void initiate(Initiation initiation, + incrementer_token_v2 token, Args&&... args) + { + initiation(bindns::bind(&increment, token.count), + static_cast<Args&&>(args)...); + } +}; + +} // namespace asio + +void bind_allocator_to_completion_token_v2_test() +{ + io_context ioc; + + int count = 0; + int allocations = 0; + + timer t(ioc, chronons::seconds(1)); + t.async_wait( + bind_allocator( + test_allocator<int>(&allocations), + incrementer_token_v2(&count))); + + ASIO_CHECK(count == 0); + ASIO_CHECK(allocations == 1); + + ioc.run(); + + ASIO_CHECK(count == 1); + ASIO_CHECK(allocations == 0); +} + +ASIO_TEST_SUITE +( + "bind_allocator", + ASIO_TEST_CASE(bind_allocator_to_function_object_test) + ASIO_TEST_CASE(bind_allocator_to_completion_token_v1_test) + ASIO_TEST_CASE(bind_allocator_to_completion_token_v2_test) +) diff --git a/3rdparty/asio/src/tests/unit/bind_cancellation_slot.cpp b/3rdparty/asio/src/tests/unit/bind_cancellation_slot.cpp index 48cc1baf17b..25b0ff1c995 100644 --- a/3rdparty/asio/src/tests/unit/bind_cancellation_slot.cpp +++ b/3rdparty/asio/src/tests/unit/bind_cancellation_slot.cpp @@ -2,7 +2,7 @@ // bind_cancellation_slot.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,6 +16,7 @@ // Test that header file is self-contained. #include "asio/bind_cancellation_slot.hpp" +#include <functional> #include "asio/cancellation_signal.hpp" #include "asio/io_context.hpp" #include "asio/steady_timer.hpp" @@ -27,24 +28,13 @@ # include "asio/steady_timer.hpp" #endif // defined(ASIO_HAS_BOOST_DATE_TIME) -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - using namespace asio; - -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif #if defined(ASIO_HAS_BOOST_DATE_TIME) typedef deadline_timer timer; namespace chronons = boost::posix_time; -#elif defined(ASIO_HAS_CHRONO) +#else // defined(ASIO_HAS_BOOST_DATE_TIME) typedef steady_timer timer; namespace chronons = asio::chrono; #endif // defined(ASIO_HAS_BOOST_DATE_TIME) @@ -77,64 +67,110 @@ void bind_cancellation_slot_to_function_object_test() ioc.run(); ASIO_CHECK(count == 1); + + t.async_wait( + bind_cancellation_slot(sig.slot(), + bind_cancellation_slot(sig.slot(), + bindns::bind(&increment_on_cancel, + &count, bindns::placeholders::_1)))); + + ioc.restart(); + ioc.poll(); + + ASIO_CHECK(count == 1); + + sig.emit(asio::cancellation_type::all); + + ioc.run(); + + ASIO_CHECK(count == 2); } -struct incrementer_token +struct incrementer_token_v1 +{ + explicit incrementer_token_v1(int* c) : count(c) {} + int* count; +}; + +struct incrementer_handler_v1 { - explicit incrementer_token(int* c) : count(c) {} + explicit incrementer_handler_v1(incrementer_token_v1 t) : count(t.count) {} + + void operator()(asio::error_code error) + { + increment_on_cancel(count, error); + } + int* count; }; namespace asio { template <> -class async_result<incrementer_token, void(asio::error_code)> +class async_result<incrementer_token_v1, void(asio::error_code)> { public: + typedef incrementer_handler_v1 completion_handler_type; typedef void return_type; + explicit async_result(completion_handler_type&) {} + return_type get() {} +}; + +} // namespace asio + +void bind_cancellation_slot_to_completion_token_v1_test() +{ + io_context ioc; + cancellation_signal sig; + + int count = 0; -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) + timer t(ioc, chronons::seconds(5)); + t.async_wait( + bind_cancellation_slot(sig.slot(), + incrementer_token_v1(&count))); + + ioc.poll(); + + ASIO_CHECK(count == 0); + + sig.emit(asio::cancellation_type::all); + + ioc.run(); + + ASIO_CHECK(count == 1); +} + +struct incrementer_token_v2 +{ + explicit incrementer_token_v2(int* c) : count(c) {} + int* count; +}; + +namespace asio { + +template <> +class async_result<incrementer_token_v2, void(asio::error_code)> +{ +public: +#if !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION) + typedef void return_type; +#endif // !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION) template <typename Initiation, typename... Args> static void initiate(Initiation initiation, - incrementer_token token, ASIO_MOVE_ARG(Args)... args) + incrementer_token_v2 token, Args&&... args) { initiation( bindns::bind(&increment_on_cancel, token.count, bindns::placeholders::_1), - ASIO_MOVE_CAST(Args)(args)...); - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template <typename Initiation> - static void initiate(Initiation initiation, incrementer_token token) - { - initiation( - bindns::bind(&increment_on_cancel, - token.count, bindns::placeholders::_1)); + static_cast<Args&&>(args)...); } - -#define ASIO_PRIVATE_INITIATE_DEF(n) \ - template <typename Initiation, ASIO_VARIADIC_TPARAMS(n)> \ - static return_type initiate(Initiation initiation, \ - incrementer_token token, ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - initiation( \ - bindns::bind(&increment_on_cancel, \ - token.count, bindns::placeholders::_1), \ - ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_INITIATE_DEF) -#undef ASIO_PRIVATE_INITIATE_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) }; } // namespace asio -void bind_cancellation_slot_to_completion_token_test() +void bind_cancellation_slot_to_completion_token_v2_test() { io_context ioc; cancellation_signal sig; @@ -144,7 +180,7 @@ void bind_cancellation_slot_to_completion_token_test() timer t(ioc, chronons::seconds(5)); t.async_wait( bind_cancellation_slot(sig.slot(), - incrementer_token(&count))); + incrementer_token_v2(&count))); ioc.poll(); @@ -161,5 +197,6 @@ ASIO_TEST_SUITE ( "bind_cancellation_slot", ASIO_TEST_CASE(bind_cancellation_slot_to_function_object_test) - ASIO_TEST_CASE(bind_cancellation_slot_to_completion_token_test) + ASIO_TEST_CASE(bind_cancellation_slot_to_completion_token_v1_test) + ASIO_TEST_CASE(bind_cancellation_slot_to_completion_token_v2_test) ) diff --git a/3rdparty/asio/src/tests/unit/bind_executor.cpp b/3rdparty/asio/src/tests/unit/bind_executor.cpp index 8b1ea70f6b2..59be1cd14f3 100644 --- a/3rdparty/asio/src/tests/unit/bind_executor.cpp +++ b/3rdparty/asio/src/tests/unit/bind_executor.cpp @@ -2,7 +2,7 @@ // bind_executor.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,6 +16,7 @@ // Test that header file is self-contained. #include "asio/bind_executor.hpp" +#include <functional> #include "asio/io_context.hpp" #include "asio/steady_timer.hpp" #include "unit_test.hpp" @@ -26,24 +27,13 @@ # include "asio/steady_timer.hpp" #endif // defined(ASIO_HAS_BOOST_DATE_TIME) -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - using namespace asio; - -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif #if defined(ASIO_HAS_BOOST_DATE_TIME) typedef deadline_timer timer; namespace chronons = boost::posix_time; -#elif defined(ASIO_HAS_CHRONO) +#else // defined(ASIO_HAS_BOOST_DATE_TIME) typedef steady_timer timer; namespace chronons = asio::chrono; #endif // defined(ASIO_HAS_BOOST_DATE_TIME) @@ -73,58 +63,102 @@ void bind_executor_to_function_object_test() ioc2.run(); ASIO_CHECK(count == 1); + + t.async_wait( + bind_executor( + ioc2.get_executor(), + bind_executor( + asio::system_executor(), + bindns::bind(&increment, &count)))); + + ioc1.restart(); + ioc1.run(); + + ASIO_CHECK(count == 1); + + ioc2.restart(); + ioc2.run(); + + ASIO_CHECK(count == 2); } -struct incrementer_token +struct incrementer_token_v1 { - explicit incrementer_token(int* c) : count(c) {} + explicit incrementer_token_v1(int* c) : count(c) {} + int* count; +}; + +struct incrementer_handler_v1 +{ + explicit incrementer_handler_v1(incrementer_token_v1 t) : count(t.count) {} + void operator()(asio::error_code){ increment(count); } int* count; }; namespace asio { template <> -class async_result<incrementer_token, void(asio::error_code)> +class async_result<incrementer_token_v1, void(asio::error_code)> { public: + typedef incrementer_handler_v1 completion_handler_type; typedef void return_type; + explicit async_result(completion_handler_type&) {} + return_type get() {} +}; + +} // namespace asio + +void bind_executor_to_completion_token_v1_test() +{ + io_context ioc1; + io_context ioc2; + + int count = 0; + + timer t(ioc1, chronons::seconds(1)); + t.async_wait( + bind_executor( + ioc2.get_executor(), + incrementer_token_v1(&count))); + + ioc1.run(); + + ASIO_CHECK(count == 0); + + ioc2.run(); + + ASIO_CHECK(count == 1); +} + +struct incrementer_token_v2 +{ + explicit incrementer_token_v2(int* c) : count(c) {} + int* count; +}; -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) +namespace asio { + +template <> +class async_result<incrementer_token_v2, void(asio::error_code)> +{ +public: +#if !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION) + typedef void return_type; +#endif // !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION) template <typename Initiation, typename... Args> static void initiate(Initiation initiation, - incrementer_token token, ASIO_MOVE_ARG(Args)... args) + incrementer_token_v2 token, Args&&... args) { initiation(bindns::bind(&increment, token.count), - ASIO_MOVE_CAST(Args)(args)...); + static_cast<Args&&>(args)...); } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template <typename Initiation> - static void initiate(Initiation initiation, incrementer_token token) - { - initiation(bindns::bind(&increment, token.count)); - } - -#define ASIO_PRIVATE_INITIATE_DEF(n) \ - template <typename Initiation, ASIO_VARIADIC_TPARAMS(n)> \ - static return_type initiate(Initiation initiation, \ - incrementer_token token, ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - initiation(bindns::bind(&increment, token.count), \ - ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_INITIATE_DEF) -#undef ASIO_PRIVATE_INITIATE_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) }; } // namespace asio -void bind_executor_to_completion_token_test() +void bind_executor_to_completion_token_v2_test() { io_context ioc1; io_context ioc2; @@ -135,7 +169,7 @@ void bind_executor_to_completion_token_test() t.async_wait( bind_executor( ioc2.get_executor(), - incrementer_token(&count))); + incrementer_token_v2(&count))); ioc1.run(); @@ -150,5 +184,6 @@ ASIO_TEST_SUITE ( "bind_executor", ASIO_TEST_CASE(bind_executor_to_function_object_test) - ASIO_TEST_CASE(bind_executor_to_completion_token_test) + ASIO_TEST_CASE(bind_executor_to_completion_token_v1_test) + ASIO_TEST_CASE(bind_executor_to_completion_token_v2_test) ) diff --git a/3rdparty/asio/src/tests/unit/bind_immediate_executor.cpp b/3rdparty/asio/src/tests/unit/bind_immediate_executor.cpp new file mode 100644 index 00000000000..ecf82de7470 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/bind_immediate_executor.cpp @@ -0,0 +1,199 @@ +// +// bind_immediate_executor.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/bind_immediate_executor.hpp" + +#include <functional> +#include "asio/dispatch.hpp" +#include "asio/io_context.hpp" +#include "unit_test.hpp" + +#if defined(ASIO_HAS_BOOST_DATE_TIME) +# include "asio/deadline_timer.hpp" +#else // defined(ASIO_HAS_BOOST_DATE_TIME) +# include "asio/steady_timer.hpp" +#endif // defined(ASIO_HAS_BOOST_DATE_TIME) + +using namespace asio; +namespace bindns = std; + +struct initiate_immediate +{ + template <typename Handler> + void operator()(Handler&& handler, io_context* ctx) const + { + typename associated_immediate_executor< + Handler, io_context::executor_type>::type ex = + get_associated_immediate_executor(handler, ctx->get_executor()); + dispatch(ex, static_cast<Handler&&>(handler)); + } +}; + +template <ASIO_COMPLETION_TOKEN_FOR(void()) Token> +ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(Token, void()) +async_immediate(io_context& ctx, Token&& token) + ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + async_initiate<Token, void()>(declval<initiate_immediate>(), token))) +{ + return async_initiate<Token, void()>(initiate_immediate(), token, &ctx); +} + +void increment(int* count) +{ + ++(*count); +} + +void bind_immediate_executor_to_function_object_test() +{ + io_context ioc1; + io_context ioc2; + + int count = 0; + + async_immediate(ioc1, + bind_immediate_executor( + ioc2.get_executor(), + bindns::bind(&increment, &count))); + + ioc1.run(); + + ASIO_CHECK(count == 0); + + ioc2.run(); + + ASIO_CHECK(count == 1); + + async_immediate(ioc1, + bind_immediate_executor( + ioc2.get_executor(), + bind_immediate_executor( + asio::system_executor(), + bindns::bind(&increment, &count)))); + + ioc1.restart(); + ioc1.run(); + + ASIO_CHECK(count == 1); + + ioc2.restart(); + ioc2.run(); + + ASIO_CHECK(count == 2); +} + +struct incrementer_token_v1 +{ + explicit incrementer_token_v1(int* c) : count(c) {} + int* count; +}; + +struct incrementer_handler_v1 +{ + explicit incrementer_handler_v1(incrementer_token_v1 t) : count(t.count) {} + void operator()(){ increment(count); } + int* count; +}; + +namespace asio { + +template <> +class async_result<incrementer_token_v1, void()> +{ +public: + typedef incrementer_handler_v1 completion_handler_type; + typedef void return_type; + explicit async_result(completion_handler_type&) {} + return_type get() {} +}; + +} // namespace asio + +void bind_immediate_executor_to_completion_token_v1_test() +{ + io_context ioc1; + io_context ioc2; + + int count = 0; + + async_immediate(ioc1, + bind_immediate_executor( + ioc2.get_executor(), + incrementer_token_v1(&count))); + + ioc1.run(); + + ASIO_CHECK(count == 0); + + ioc2.run(); + + ASIO_CHECK(count == 1); +} + +struct incrementer_token_v2 +{ + explicit incrementer_token_v2(int* c) : count(c) {} + int* count; +}; + +namespace asio { + +template <> +class async_result<incrementer_token_v2, void()> +{ +public: +#if !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION) + typedef void return_type; +#endif // !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION) + + template <typename Initiation, typename... Args> + static void initiate(Initiation initiation, + incrementer_token_v2 token, Args&&... args) + { + initiation(bindns::bind(&increment, token.count), + static_cast<Args&&>(args)...); + } +}; + +} // namespace asio + +void bind_immediate_executor_to_completion_token_v2_test() +{ + io_context ioc1; + io_context ioc2; + + int count = 0; + + async_immediate(ioc1, + bind_immediate_executor( + ioc2.get_executor(), + incrementer_token_v2(&count))); + + ioc1.run(); + + ASIO_CHECK(count == 0); + + ioc2.run(); + + ASIO_CHECK(count == 1); +} + +ASIO_TEST_SUITE +( + "bind_immediate_executor", + ASIO_TEST_CASE(bind_immediate_executor_to_function_object_test) + ASIO_TEST_CASE(bind_immediate_executor_to_completion_token_v1_test) + ASIO_TEST_CASE(bind_immediate_executor_to_completion_token_v2_test) +) diff --git a/3rdparty/asio/src/tests/unit/buffer.cpp b/3rdparty/asio/src/tests/unit/buffer.cpp index f66a8f0122e..9fa1db6e67f 100644 --- a/3rdparty/asio/src/tests/unit/buffer.cpp +++ b/3rdparty/asio/src/tests/unit/buffer.cpp @@ -2,7 +2,7 @@ // buffer.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,16 +16,14 @@ // Test that header file is self-contained. #include "asio/buffer.hpp" +#include <array> +#include <cstring> #include "unit_test.hpp" #if defined(ASIO_HAS_BOOST_ARRAY) # include <boost/array.hpp> #endif // defined(ASIO_HAS_BOOST_ARRAY) -#if defined(ASIO_HAS_STD_ARRAY) -# include <array> -#endif // defined(ASIO_HAS_STD_ARRAY) - //------------------------------------------------------------------------------ // buffer_compile test @@ -37,6 +35,42 @@ namespace buffer_compile { using namespace asio; +template <typename T> +class mutable_contiguous_container +{ +public: + typedef T value_type; + typedef T* iterator; + typedef const T* const_iterator; + typedef T& reference; + typedef const T& const_reference; + + mutable_contiguous_container() {} + std::size_t size() const { return 0; } + iterator begin() { return 0; } + const_iterator begin() const { return 0; } + iterator end() { return 0; } + const_iterator end() const { return 0; } +}; + +template <typename T> +class const_contiguous_container +{ +public: + typedef const T value_type; + typedef const T* iterator; + typedef const T* const_iterator; + typedef const T& reference; + typedef const T& const_reference; + + const_contiguous_container() {} + std::size_t size() const { return 0; } + iterator begin() { return 0; } + const_iterator begin() const { return 0; } + iterator end() { return 0; } + const_iterator end() const { return 0; } +}; + void test() { try @@ -50,11 +84,9 @@ void test() const boost::array<char, 1024>& const_array_data_1 = array_data; boost::array<const char, 1024> const_array_data_2 = { { 0 } }; #endif // defined(ASIO_HAS_BOOST_ARRAY) -#if defined(ASIO_HAS_STD_ARRAY) std::array<char, 1024> std_array_data; const std::array<char, 1024>& const_std_array_data_1 = std_array_data; std::array<const char, 1024> const_std_array_data_2 = { { 0 } }; -#endif // defined(ASIO_HAS_STD_ARRAY) std::vector<char> vector_data(1024); const std::vector<char>& const_vector_data = vector_data; std::string string_data(1024, ' '); @@ -66,6 +98,10 @@ void test() #elif defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) std::experimental::string_view string_view_data(string_data); #endif // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) + mutable_contiguous_container<char> mutable_contiguous_data; + const mutable_contiguous_container<char> const_mutable_contiguous_data; + const_contiguous_container<char> const_contiguous_data; + const const_contiguous_container<char> const_const_contiguous_data; // mutable_buffer constructors. @@ -189,14 +225,12 @@ void test() cb1 = buffer(const_array_data_2); cb1 = buffer(const_array_data_2, 1024); #endif // defined(ASIO_HAS_BOOST_ARRAY) -#if defined(ASIO_HAS_STD_ARRAY) mb1 = buffer(std_array_data); mb1 = buffer(std_array_data, 1024); cb1 = buffer(const_std_array_data_1); cb1 = buffer(const_std_array_data_1, 1024); cb1 = buffer(const_std_array_data_2); cb1 = buffer(const_std_array_data_2, 1024); -#endif // defined(ASIO_HAS_STD_ARRAY) mb1 = buffer(vector_data); mb1 = buffer(vector_data, 1024); cb1 = buffer(const_vector_data); @@ -209,6 +243,14 @@ void test() cb1 = buffer(string_view_data); cb1 = buffer(string_view_data, 1024); #endif // defined(ASIO_HAS_STRING_VIEW) + mb1 = buffer(mutable_contiguous_data); + mb1 = buffer(mutable_contiguous_data, 1024); + cb1 = buffer(const_mutable_contiguous_data); + cb1 = buffer(const_mutable_contiguous_data, 1024); + cb1 = buffer(const_contiguous_data); + cb1 = buffer(const_contiguous_data, 1024); + cb1 = buffer(const_const_contiguous_data); + cb1 = buffer(const_const_contiguous_data, 1024); // buffer_copy function overloads. @@ -600,13 +642,11 @@ struct valid_const_a const_buffer* end() const { return 0; } }; -#if defined(ASIO_HAS_DECLTYPE) struct valid_const_b { const_buffer* begin() const { return 0; } const_buffer* end() const { return 0; } }; -#endif // defined(ASIO_HAS_DECLTYPE) struct valid_mutable_a { @@ -616,13 +656,11 @@ struct valid_mutable_a mutable_buffer* end() const { return 0; } }; -#if defined(ASIO_HAS_DECLTYPE) struct valid_mutable_b { mutable_buffer* begin() const { return 0; } mutable_buffer* end() const { return 0; } }; -#endif // defined(ASIO_HAS_DECLTYPE) struct invalid_const_a { @@ -643,7 +681,6 @@ struct invalid_const_c const_buffer* end() const { return 0; } }; -#if defined(ASIO_HAS_DECLTYPE) struct invalid_const_d { int* begin() const { return 0; } @@ -659,7 +696,6 @@ struct invalid_const_f { const_buffer* end() const { return 0; } }; -#endif // defined(ASIO_HAS_DECLTYPE) struct invalid_mutable_a { @@ -680,7 +716,6 @@ struct invalid_mutable_c mutable_buffer* end() const { return 0; } }; -#if defined(ASIO_HAS_DECLTYPE) struct invalid_mutable_d { int* begin() const { return 0; } @@ -696,7 +731,6 @@ struct invalid_mutable_f { mutable_buffer* end() const { return 0; } }; -#endif // defined(ASIO_HAS_DECLTYPE) void test() { @@ -751,14 +785,12 @@ void test() ASIO_CHECK(buffer_sequence_begin(b7) == b7.begin()); ASIO_CHECK(buffer_sequence_end(b7) == b7.end()); -#if defined(ASIO_HAS_DECLTYPE) ASIO_CHECK(is_const_buffer_sequence<valid_const_b>::value); ASIO_CHECK(!is_mutable_buffer_sequence<valid_const_b>::value); valid_const_b b8; ASIO_CHECK(buffer_sequence_begin(b8) == b8.begin()); ASIO_CHECK(buffer_sequence_end(b8) == b8.end()); -#endif // defined(ASIO_HAS_DECLTYPE) ASIO_CHECK(is_const_buffer_sequence<valid_mutable_a>::value); ASIO_CHECK(is_mutable_buffer_sequence<valid_mutable_a>::value); @@ -767,14 +799,12 @@ void test() ASIO_CHECK(buffer_sequence_begin(b9) == b9.begin()); ASIO_CHECK(buffer_sequence_end(b9) == b9.end()); -#if defined(ASIO_HAS_DECLTYPE) ASIO_CHECK(is_const_buffer_sequence<valid_mutable_b>::value); ASIO_CHECK(is_mutable_buffer_sequence<valid_mutable_b>::value); valid_mutable_b b10; ASIO_CHECK(buffer_sequence_begin(b10) == b10.begin()); ASIO_CHECK(buffer_sequence_end(b10) == b10.end()); -#endif // defined(ASIO_HAS_DECLTYPE) ASIO_CHECK(!is_const_buffer_sequence<invalid_const_a>::value); ASIO_CHECK(!is_mutable_buffer_sequence<invalid_const_a>::value); @@ -785,7 +815,6 @@ void test() ASIO_CHECK(!is_const_buffer_sequence<invalid_const_c>::value); ASIO_CHECK(!is_mutable_buffer_sequence<invalid_const_c>::value); -#if defined(ASIO_HAS_DECLTYPE) ASIO_CHECK(!is_const_buffer_sequence<invalid_const_d>::value); ASIO_CHECK(!is_mutable_buffer_sequence<invalid_const_d>::value); @@ -794,7 +823,6 @@ void test() ASIO_CHECK(!is_const_buffer_sequence<invalid_const_f>::value); ASIO_CHECK(!is_mutable_buffer_sequence<invalid_const_f>::value); -#endif // defined(ASIO_HAS_DECLTYPE) ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_a>::value); ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_a>::value); @@ -805,7 +833,6 @@ void test() ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_c>::value); ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_c>::value); -#if defined(ASIO_HAS_DECLTYPE) ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_d>::value); ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_d>::value); @@ -814,11 +841,66 @@ void test() ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_f>::value); ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_f>::value); -#endif // defined(ASIO_HAS_DECLTYPE) } } // namespace buffer_sequence +namespace buffer_literals { + +void test() +{ +#if defined(ASIO_HAS_USER_DEFINED_LITERALS) + using namespace asio::buffer_literals; + using namespace std; // For memcmp. + + asio::const_buffer b1 = ""_buf; + ASIO_CHECK(b1.size() == 0); + + asio::const_buffer b2 = "hello"_buf; + ASIO_CHECK(b2.size() == 5); + ASIO_CHECK(memcmp(b2.data(), "hello", 5) == 0); + + asio::const_buffer b3 = 0x00_buf; + ASIO_CHECK(b3.size() == 1); + ASIO_CHECK(memcmp(b3.data(), "\x00", 1) == 0); + + asio::const_buffer b4 = 0X01_buf; + ASIO_CHECK(b4.size() == 1); + ASIO_CHECK(memcmp(b4.data(), "\x01", 1) == 0); + + asio::const_buffer b5 = 0xaB_buf; + ASIO_CHECK(b5.size() == 1); + ASIO_CHECK(memcmp(b5.data(), "\xab", 1) == 0); + + asio::const_buffer b6 = 0xABcd_buf; + ASIO_CHECK(b6.size() == 2); + ASIO_CHECK(memcmp(b6.data(), "\xab\xcd", 2) == 0); + + asio::const_buffer b7 = 0x01ab01cd01ef01ba01dc01fe_buf; + ASIO_CHECK(b7.size() == 12); + ASIO_CHECK(memcmp(b7.data(), + "\x01\xab\x01\xcd\x01\xef\x01\xba\x01\xdc\x01\xfe", 12) == 0); + + asio::const_buffer b8 = 0b00000000_buf; + ASIO_CHECK(b8.size() == 1); + ASIO_CHECK(memcmp(b8.data(), "\x00", 1) == 0); + + asio::const_buffer b9 = 0B00000001_buf; + ASIO_CHECK(b9.size() == 1); + ASIO_CHECK(memcmp(b9.data(), "\x01", 1) == 0); + + asio::const_buffer b10 = 0B11111111_buf; + ASIO_CHECK(b10.size() == 1); + ASIO_CHECK(memcmp(b10.data(), "\xFF", 1) == 0); + + asio::const_buffer b11 = 0b1111000000001111_buf; + ASIO_CHECK(b11.size() == 2); + ASIO_CHECK(memcmp(b11.data(), "\xF0\x0F", 2) == 0); +#endif // (defined(ASIO_HAS_USER_DEFINED_LITERALS) +} + +} // namespace buffer_literals + //------------------------------------------------------------------------------ ASIO_TEST_SUITE @@ -827,4 +909,5 @@ ASIO_TEST_SUITE ASIO_COMPILE_TEST_CASE(buffer_compile::test) ASIO_TEST_CASE(buffer_copy_runtime::test) ASIO_TEST_CASE(buffer_sequence::test) + ASIO_TEST_CASE(buffer_literals::test) ) diff --git a/3rdparty/asio/src/tests/unit/buffer_registration.cpp b/3rdparty/asio/src/tests/unit/buffer_registration.cpp new file mode 100644 index 00000000000..72826a394cc --- /dev/null +++ b/3rdparty/asio/src/tests/unit/buffer_registration.cpp @@ -0,0 +1,25 @@ +// +// buffer_registration.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/buffer_registration.hpp" + +#include "unit_test.hpp" + +ASIO_TEST_SUITE +( + "buffer_registration", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/buffered_read_stream.cpp b/3rdparty/asio/src/tests/unit/buffered_read_stream.cpp index d517dbb96ea..21b4abc0bbb 100644 --- a/3rdparty/asio/src/tests/unit/buffered_read_stream.cpp +++ b/3rdparty/asio/src/tests/unit/buffered_read_stream.cpp @@ -2,7 +2,7 @@ // buffered_read_stream.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -17,6 +17,7 @@ #include "asio/buffered_read_stream.hpp" #include <cstring> +#include <functional> #include "archetypes/async_result.hpp" #include "asio/buffer.hpp" #include "asio/io_context.hpp" @@ -30,12 +31,6 @@ # include <array> #endif // defined(ASIO_HAS_BOOST_ARRAY) -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - typedef asio::buffered_read_stream< asio::ip::tcp::socket> stream_type; @@ -247,11 +242,7 @@ void test_async_operations() { using namespace std; // For memcmp. -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -332,7 +323,7 @@ void test_async_operations() ASIO_TEST_SUITE ( "buffered_read_stream", - ASIO_TEST_CASE(test_compile) + ASIO_COMPILE_TEST_CASE(test_compile) ASIO_TEST_CASE(test_sync_operations) ASIO_TEST_CASE(test_async_operations) ) diff --git a/3rdparty/asio/src/tests/unit/buffered_stream.cpp b/3rdparty/asio/src/tests/unit/buffered_stream.cpp index d9cf845c0d0..4830ec277de 100644 --- a/3rdparty/asio/src/tests/unit/buffered_stream.cpp +++ b/3rdparty/asio/src/tests/unit/buffered_stream.cpp @@ -2,7 +2,7 @@ // buffered_stream.cpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -17,6 +17,7 @@ #include "asio/buffered_stream.hpp" #include <cstring> +#include <functional> #include "archetypes/async_result.hpp" #include "asio/buffer.hpp" #include "asio/io_context.hpp" @@ -30,12 +31,6 @@ # include <array> #endif // defined(ASIO_HAS_BOOST_ARRAY) -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - typedef asio::buffered_stream< asio::ip::tcp::socket> stream_type; @@ -265,11 +260,7 @@ void test_async_operations() { using namespace std; // For memcmp. -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -358,7 +349,7 @@ void test_async_operations() ASIO_TEST_SUITE ( "buffered_stream", - ASIO_TEST_CASE(test_compile) + ASIO_COMPILE_TEST_CASE(test_compile) ASIO_TEST_CASE(test_sync_operations) ASIO_TEST_CASE(test_async_operations) ) diff --git a/3rdparty/asio/src/tests/unit/buffered_write_stream.cpp b/3rdparty/asio/src/tests/unit/buffered_write_stream.cpp index 8ddbec7abb1..635ff984b8d 100644 --- a/3rdparty/asio/src/tests/unit/buffered_write_stream.cpp +++ b/3rdparty/asio/src/tests/unit/buffered_write_stream.cpp @@ -2,7 +2,7 @@ // buffered_write_stream.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -17,6 +17,7 @@ #include "asio/buffered_write_stream.hpp" #include <cstring> +#include <functional> #include "archetypes/async_result.hpp" #include "asio/buffer.hpp" #include "asio/io_context.hpp" @@ -30,12 +31,6 @@ # include <array> #endif // defined(ASIO_HAS_BOOST_ARRAY) -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - typedef asio::buffered_write_stream< asio::ip::tcp::socket> stream_type; @@ -254,11 +249,7 @@ void test_async_operations() { using namespace std; // For memcmp. -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -347,7 +338,7 @@ void test_async_operations() ASIO_TEST_SUITE ( "buffered_write_stream", - ASIO_TEST_CASE(test_compile) + ASIO_COMPILE_TEST_CASE(test_compile) ASIO_TEST_CASE(test_sync_operations) ASIO_TEST_CASE(test_async_operations) ) diff --git a/3rdparty/asio/src/tests/unit/buffers_iterator.cpp b/3rdparty/asio/src/tests/unit/buffers_iterator.cpp index 27df26340a4..071dc1bb8b3 100644 --- a/3rdparty/asio/src/tests/unit/buffers_iterator.cpp +++ b/3rdparty/asio/src/tests/unit/buffers_iterator.cpp @@ -2,7 +2,7 @@ // buffers_iterator.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,17 +16,10 @@ // Test that header file is self-contained. #include "asio/buffers_iterator.hpp" +#include <array> #include "asio/buffer.hpp" #include "unit_test.hpp" -#if defined(ASIO_HAS_BOOST_ARRAY) -# include <boost/array.hpp> -#endif // defined(ASIO_HAS_BOOST_ARRAY) - -#if defined(ASIO_HAS_STD_ARRAY) -# include <array> -#endif // defined(ASIO_HAS_STD_ARRAY) - //------------------------------------------------------------------------------ // buffers_iterator_compile test @@ -36,11 +29,7 @@ namespace buffers_iterator_compile { -#if defined(ASIO_HAS_BOOST_ARRAY) -using boost::array; -#elif defined(ASIO_HAS_STD_ARRAY) using std::array; -#endif // defined(ASIO_HAS_BOOST_ARRAY) using std::vector; using namespace asio; @@ -288,5 +277,5 @@ void test() ASIO_TEST_SUITE ( "buffers_iterator", - ASIO_TEST_CASE(buffers_iterator_compile::test) + ASIO_COMPILE_TEST_CASE(buffers_iterator_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/cancellation_signal.cpp b/3rdparty/asio/src/tests/unit/cancellation_signal.cpp index 50ca93221d0..0b0f72fcbcb 100644 --- a/3rdparty/asio/src/tests/unit/cancellation_signal.cpp +++ b/3rdparty/asio/src/tests/unit/cancellation_signal.cpp @@ -2,7 +2,7 @@ // cancellation_signal.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/cancellation_state.cpp b/3rdparty/asio/src/tests/unit/cancellation_state.cpp index 3e6023f4182..74bc6566916 100644 --- a/3rdparty/asio/src/tests/unit/cancellation_state.cpp +++ b/3rdparty/asio/src/tests/unit/cancellation_state.cpp @@ -2,7 +2,7 @@ // cancellation_state.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/cancellation_type.cpp b/3rdparty/asio/src/tests/unit/cancellation_type.cpp index edf6ccf0c4c..fd6accb0a05 100644 --- a/3rdparty/asio/src/tests/unit/cancellation_type.cpp +++ b/3rdparty/asio/src/tests/unit/cancellation_type.cpp @@ -2,7 +2,7 @@ // cancellation_type.cpp // ~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/co_spawn.cpp b/3rdparty/asio/src/tests/unit/co_spawn.cpp index e902e1f2d0a..c5d1fbf776d 100644 --- a/3rdparty/asio/src/tests/unit/co_spawn.cpp +++ b/3rdparty/asio/src/tests/unit/co_spawn.cpp @@ -2,7 +2,7 @@ // co_spawn.cpp // ~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -18,8 +18,116 @@ #include "unit_test.hpp" +#if defined(ASIO_HAS_CO_AWAIT) + +#include <stdexcept> +#include "asio/any_completion_handler.hpp" +#include "asio/bind_cancellation_slot.hpp" +#include "asio/io_context.hpp" + +asio::awaitable<void> void_returning_coroutine() +{ + co_return; +} + +asio::awaitable<int> int_returning_coroutine() +{ + co_return 42; +} + +void test_co_spawn_with_any_completion_handler() +{ + asio::io_context ctx; + + bool called = false; + asio::co_spawn(ctx, void_returning_coroutine(), + asio::any_completion_handler<void(std::exception_ptr)>( + [&](std::exception_ptr) + { + called = true; + })); + + ASIO_CHECK(!called); + + ctx.run(); + + ASIO_CHECK(called); + + int result = 0; + asio::co_spawn(ctx, int_returning_coroutine(), + asio::any_completion_handler<void(std::exception_ptr, int)>( + [&](std::exception_ptr, int i) + { + result = i; + })); + + ASIO_CHECK(result == 0); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(result == 42); +} + +void test_co_spawn_immediate_cancel() +{ + asio::cancellation_signal sig; + asio::io_context ctx; + + std::exception_ptr result = nullptr; + bool called = false; + asio::co_spawn(ctx, void_returning_coroutine(), + asio::bind_cancellation_slot(sig.slot(), + [&](std::exception_ptr e) + { + result = e; + called = true; + })); + + ASIO_CHECK(!called); + ASIO_CHECK(result == nullptr); + + sig.emit(asio::cancellation_type::all); + ctx.run(); + + ASIO_CHECK(called); + ASIO_CHECK(result != nullptr); + + result = nullptr; + called = false; + asio::co_spawn(ctx, int_returning_coroutine(), + asio::bind_cancellation_slot(sig.slot(), + [&](std::exception_ptr e, int i) + { + ASIO_CHECK(i != 42); + result = e; + called = true; + })); + + ASIO_CHECK(!called); + ASIO_CHECK(result == nullptr); + + sig.emit(asio::cancellation_type::all); + ctx.restart(); + ctx.run(); + + ASIO_CHECK(called); + ASIO_CHECK(result != nullptr); +} + +ASIO_TEST_SUITE +( + "co_spawn", + ASIO_TEST_CASE(test_co_spawn_with_any_completion_handler) + ASIO_TEST_CASE(test_co_spawn_immediate_cancel) +) + +#else // defined(ASIO_HAS_CO_AWAIT) + ASIO_TEST_SUITE ( "co_spawn", ASIO_TEST_CASE(null_test) ) + +#endif // defined(ASIO_HAS_CO_AWAIT) diff --git a/3rdparty/asio/src/tests/unit/completion_condition.cpp b/3rdparty/asio/src/tests/unit/completion_condition.cpp index 3986b5a545a..106789e5e3c 100644 --- a/3rdparty/asio/src/tests/unit/completion_condition.cpp +++ b/3rdparty/asio/src/tests/unit/completion_condition.cpp @@ -2,7 +2,7 @@ // completion_condition.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/compose.cpp b/3rdparty/asio/src/tests/unit/compose.cpp index faf515fa184..c9820af2fd3 100644 --- a/3rdparty/asio/src/tests/unit/compose.cpp +++ b/3rdparty/asio/src/tests/unit/compose.cpp @@ -2,7 +2,7 @@ // compose.cpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,19 +16,13 @@ // Test that header file is self-contained. #include "asio/compose.hpp" -#include "unit_test.hpp" - +#include <functional> #include "asio/bind_cancellation_slot.hpp" #include "asio/cancellation_signal.hpp" #include "asio/io_context.hpp" #include "asio/post.hpp" #include "asio/system_timer.hpp" - -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) +#include "unit_test.hpp" //------------------------------------------------------------------------------ @@ -48,7 +42,7 @@ public: { case starting: state_ = posting; - asio::post(ioc_, ASIO_MOVE_CAST(Self)(self)); + asio::post(ioc_, static_cast<Self&&>(self)); break; case posting: self.complete(); @@ -66,7 +60,7 @@ private: template <typename CompletionToken> ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) async_0_completion_args(asio::io_context& ioc, - ASIO_MOVE_ARG(CompletionToken) token) + CompletionToken&& token) { return asio::async_compose<CompletionToken, void()>( impl_0_completion_args(ioc), token); @@ -89,11 +83,7 @@ struct compose_0_args_lvalue_handler void compose_0_completion_args_test() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) asio::io_context ioc; int count = 0; @@ -145,7 +135,7 @@ public: { case starting: state_ = posting; - asio::post(ioc_, ASIO_MOVE_CAST(Self)(self)); + asio::post(ioc_, static_cast<Self&&>(self)); break; case posting: self.complete(42); @@ -163,7 +153,7 @@ private: template <typename CompletionToken> ASIO_INITFN_RESULT_TYPE(CompletionToken, void(int)) async_1_completion_arg(asio::io_context& ioc, - ASIO_MOVE_ARG(CompletionToken) token) + CompletionToken&& token) { return asio::async_compose<CompletionToken, void(int)>( impl_1_completion_arg(ioc), token); @@ -189,11 +179,7 @@ struct compose_1_arg_lvalue_handler void compose_1_completion_arg_test() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; asio::io_context ioc; @@ -262,7 +248,7 @@ public: self.reset_cancellation_state(cancellation_filter_); state_ = waiting; timer_.expires_after(asio::chrono::milliseconds(100)); - timer_.async_wait(ASIO_MOVE_CAST(Self)(self)); + timer_.async_wait(static_cast<Self&&>(self)); break; case waiting: self.complete(!ec); @@ -282,7 +268,7 @@ template <typename CancellationFilter, typename CompletionToken> ASIO_INITFN_RESULT_TYPE(CompletionToken, void(bool)) async_cancellable(CancellationFilter cancellation_filter, asio::system_timer& timer, - ASIO_MOVE_ARG(CompletionToken) token) + CompletionToken&& token) { return asio::async_compose<CompletionToken, void(bool)>( impl_cancellable<CancellationFilter>(cancellation_filter, timer), token); @@ -297,11 +283,7 @@ void compose_partial_cancellation_handler( void compose_default_cancellation_test() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; asio::io_context ioc; @@ -379,11 +361,7 @@ void compose_default_cancellation_test() void compose_partial_cancellation_test() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; asio::io_context ioc; @@ -461,11 +439,7 @@ void compose_partial_cancellation_test() void compose_total_cancellation_test() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; asio::io_context ioc; diff --git a/3rdparty/asio/src/tests/unit/connect.cpp b/3rdparty/asio/src/tests/unit/connect.cpp index b7306b02abe..16c0331b4a3 100644 --- a/3rdparty/asio/src/tests/unit/connect.cpp +++ b/3rdparty/asio/src/tests/unit/connect.cpp @@ -2,7 +2,7 @@ // connect.cpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,23 +16,13 @@ // Test that header file is self-contained. #include "asio/connect.hpp" +#include <functional> #include <vector> #include "asio/detail/thread.hpp" #include "asio/ip/tcp.hpp" - -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - #include "unit_test.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; diff --git a/3rdparty/asio/src/tests/unit/connect_pipe.cpp b/3rdparty/asio/src/tests/unit/connect_pipe.cpp new file mode 100644 index 00000000000..8c71a5d093c --- /dev/null +++ b/3rdparty/asio/src/tests/unit/connect_pipe.cpp @@ -0,0 +1,154 @@ +// +// connect_pipe.cpp +// ~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/connect_pipe.hpp" + +#include <functional> +#include <string> +#include "asio/io_context.hpp" +#include "asio/read.hpp" +#include "asio/readable_pipe.hpp" +#include "asio/writable_pipe.hpp" +#include "asio/write.hpp" +#include "unit_test.hpp" + +//------------------------------------------------------------------------------ + +// connect_pipe_compile test +// ~~~~~~~~~~~~~~~~~~~~~~~~~ +// The following test checks that all connect_pipe functions compile and link +// correctly. Runtime failures are ignored. + +namespace connect_pipe_compile { + +void test() +{ +#if defined(ASIO_HAS_PIPE) + using namespace asio; + + try + { + asio::io_context io_context; + asio::error_code ec1; + + readable_pipe p1(io_context); + writable_pipe p2(io_context); + connect_pipe(p1, p2); + + readable_pipe p3(io_context); + writable_pipe p4(io_context); + connect_pipe(p3, p4, ec1); + } + catch (std::exception&) + { + } +#endif // defined(ASIO_HAS_PIPE) +} + +} // namespace connect_pipe_compile + +//------------------------------------------------------------------------------ + +// connect_pipe_runtime test +// ~~~~~~~~~~~~~~~~~~~~~~~~~ +// The following test checks that connect_pipe operates correctly at runtime. + +namespace connect_pipe_runtime { + +static const char write_data[] + = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + +void handle_read(const asio::error_code& err, + size_t bytes_transferred, bool* called) +{ + *called = true; + ASIO_CHECK(!err); + ASIO_CHECK(bytes_transferred == sizeof(write_data)); +} + +void handle_write(const asio::error_code& err, + size_t bytes_transferred, bool* called) +{ + *called = true; + ASIO_CHECK(!err); + ASIO_CHECK(bytes_transferred == sizeof(write_data)); +} + +void test() +{ +#if defined(ASIO_HAS_PIPE) + using namespace std; // For memcmp. + using namespace asio; + + namespace bindns = std; + using bindns::placeholders::_1; + using bindns::placeholders::_2; + + try + { + asio::io_context io_context; + asio::error_code ec1; + asio::error_code ec2; + + readable_pipe p1(io_context); + writable_pipe p2(io_context); + connect_pipe(p1, p2); + + std::string data1 = write_data; + asio::write(p2, asio::buffer(data1)); + + std::string data2; + data2.resize(data1.size()); + asio::read(p1, asio::buffer(data2)); + + ASIO_CHECK(data1 == data2); + + char read_buffer[sizeof(write_data)]; + bool read_completed = false; + asio::async_read(p1, + asio::buffer(read_buffer), + bindns::bind(handle_read, + _1, _2, &read_completed)); + + bool write_completed = false; + asio::async_write(p2, + asio::buffer(write_data), + bindns::bind(handle_write, + _1, _2, &write_completed)); + + io_context.run(); + + ASIO_CHECK(read_completed); + ASIO_CHECK(write_completed); + ASIO_CHECK(memcmp(read_buffer, write_data, sizeof(write_data)) == 0); + } + catch (std::exception&) + { + ASIO_CHECK(false); + } +#endif // defined(ASIO_HAS_PIPE) +} + +} // namespace connect_pipe_compile + +//------------------------------------------------------------------------------ + +ASIO_TEST_SUITE +( + "connect_pipe", + ASIO_COMPILE_TEST_CASE(connect_pipe_compile::test) + ASIO_TEST_CASE(connect_pipe_runtime::test) +) diff --git a/3rdparty/asio/src/tests/unit/consign.cpp b/3rdparty/asio/src/tests/unit/consign.cpp new file mode 100644 index 00000000000..b24f5281c75 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/consign.cpp @@ -0,0 +1,56 @@ +// +// consign.cpp +// ~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/consign.hpp" + +#include "asio/bind_executor.hpp" +#include "asio/io_context.hpp" +#include "asio/post.hpp" +#include "asio/system_timer.hpp" +#include "unit_test.hpp" + +void consign_test() +{ + asio::io_context io1; + asio::io_context io2; + asio::system_timer timer1(io1); + int count = 0; + + timer1.expires_after(asio::chrono::seconds(0)); + timer1.async_wait( + asio::consign( + asio::bind_executor(io2.get_executor(), + [&count](asio::error_code) + { + ++count; + }), 123, 321)); + + ASIO_CHECK(count == 0); + + io1.run(); + + ASIO_CHECK(count == 0); + + io2.run(); + + ASIO_CHECK(count == 1); +} + +ASIO_TEST_SUITE +( + "consign", + ASIO_TEST_CASE(consign_test) +) diff --git a/3rdparty/asio/src/tests/unit/coroutine.cpp b/3rdparty/asio/src/tests/unit/coroutine.cpp index cd8fc9c12ba..72e6953a31a 100644 --- a/3rdparty/asio/src/tests/unit/coroutine.cpp +++ b/3rdparty/asio/src/tests/unit/coroutine.cpp @@ -2,7 +2,7 @@ // coroutine.cpp // ~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/deadline_timer.cpp b/3rdparty/asio/src/tests/unit/deadline_timer.cpp index 15d00b0d83b..9bc7f16fcd2 100644 --- a/3rdparty/asio/src/tests/unit/deadline_timer.cpp +++ b/3rdparty/asio/src/tests/unit/deadline_timer.cpp @@ -2,7 +2,7 @@ // deadline_timer.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -268,18 +268,18 @@ struct custom_allocation_timer_handler typedef allocator<U> other; }; - explicit allocator(int* count) ASIO_NOEXCEPT + explicit allocator(int* count) noexcept : count_(count) { } - allocator(const allocator& other) ASIO_NOEXCEPT + allocator(const allocator& other) noexcept : count_(other.count_) { } template <typename U> - allocator(const allocator<U>& other) ASIO_NOEXCEPT + allocator(const allocator<U>& other) noexcept : count_(other.count_) { } @@ -316,7 +316,7 @@ struct custom_allocation_timer_handler typedef allocator<int> allocator_type; - allocator_type get_allocator() const ASIO_NOEXCEPT + allocator_type get_allocator() const noexcept { return allocator_type(count_); } @@ -396,7 +396,6 @@ void deadline_timer_async_result_test() ioc.run(); } -#if defined(ASIO_HAS_MOVE) asio::deadline_timer make_timer(asio::io_context& ioc, int* count) { asio::deadline_timer t(ioc); @@ -404,11 +403,9 @@ asio::deadline_timer make_timer(asio::io_context& ioc, int* count) t.async_wait(boost::bind(increment, count)); return t; } -#endif // defined(ASIO_HAS_MOVE) void deadline_timer_move_test() { -#if defined(ASIO_HAS_MOVE) asio::io_context io_context1; asio::io_context io_context2; int count = 0; @@ -426,7 +423,6 @@ void deadline_timer_move_test() io_context1.run(); ASIO_CHECK(count == 2); -#endif // defined(ASIO_HAS_MOVE) } ASIO_TEST_SUITE diff --git a/3rdparty/asio/src/tests/unit/defer.cpp b/3rdparty/asio/src/tests/unit/defer.cpp index f7f03b326bf..f41c1b9f025 100644 --- a/3rdparty/asio/src/tests/unit/defer.cpp +++ b/3rdparty/asio/src/tests/unit/defer.cpp @@ -2,7 +2,7 @@ // defer.cpp // ~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/experimental/deferred.cpp b/3rdparty/asio/src/tests/unit/deferred.cpp index a5ae8ed85e5..b2db70d4b3d 100644 --- a/3rdparty/asio/src/tests/unit/experimental/deferred.cpp +++ b/3rdparty/asio/src/tests/unit/deferred.cpp @@ -1,8 +1,8 @@ // -// experimental/deferred.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ +// deferred.cpp +// ~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -14,9 +14,9 @@ #endif // !defined(BOOST_ALL_NO_LIB) // Test that header file is self-contained. -#include "asio/experimental/deferred.hpp" +#include "asio/deferred.hpp" -#include "../unit_test.hpp" +#include "unit_test.hpp" ASIO_TEST_SUITE ( diff --git a/3rdparty/asio/src/tests/unit/detached.cpp b/3rdparty/asio/src/tests/unit/detached.cpp index 2ccd619cef0..506c13d8773 100644 --- a/3rdparty/asio/src/tests/unit/detached.cpp +++ b/3rdparty/asio/src/tests/unit/detached.cpp @@ -2,7 +2,7 @@ // detached.cpp // ~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/dispatch.cpp b/3rdparty/asio/src/tests/unit/dispatch.cpp index 4d67530f5ba..f6fb84d4f91 100644 --- a/3rdparty/asio/src/tests/unit/dispatch.cpp +++ b/3rdparty/asio/src/tests/unit/dispatch.cpp @@ -2,7 +2,7 @@ // dispatch.cpp // ~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/error.cpp b/3rdparty/asio/src/tests/unit/error.cpp index 79c0c75336c..3f8aa75efbe 100644 --- a/3rdparty/asio/src/tests/unit/error.cpp +++ b/3rdparty/asio/src/tests/unit/error.cpp @@ -2,7 +2,7 @@ // error.cpp // ~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/execution/any_executor.cpp b/3rdparty/asio/src/tests/unit/execution/any_executor.cpp index d18c58c2843..3e2dabdc5a5 100644 --- a/3rdparty/asio/src/tests/unit/execution/any_executor.cpp +++ b/3rdparty/asio/src/tests/unit/execution/any_executor.cpp @@ -2,7 +2,7 @@ // any_executor.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -17,22 +17,25 @@ #include "asio/execution/any_executor.hpp" #include <cstring> +#include <functional> #include "asio/thread_pool.hpp" #include "../unit_test.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - using namespace asio; - -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif + +static bool next_nothrow_new_fails = false; + +void* operator new(std::size_t n, + const std::nothrow_t&) noexcept +{ + if (next_nothrow_new_fails) + { + next_nothrow_new_fails = false; + return 0; + } + return ::operator new(n); +} struct fat_executor { @@ -53,13 +56,13 @@ struct fat_executor } friend bool operator==(const fat_executor& a, - const fat_executor& b) ASIO_NOEXCEPT + const fat_executor& b) noexcept { return a.id_ == b.id_; } friend bool operator!=(const fat_executor& a, - const fat_executor& b) ASIO_NOEXCEPT + const fat_executor& b) noexcept { return a.id_ != b.id_; } @@ -76,8 +79,8 @@ namespace traits { template <typename F> struct execute_member<fat_executor, F> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef void result_type; }; @@ -88,8 +91,8 @@ struct execute_member<fat_executor, F> template <> struct query_member<fat_executor, execution::occupancy_t> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = false; typedef std::size_t result_type; }; @@ -100,8 +103,8 @@ struct query_member<fat_executor, execution::occupancy_t> template <> struct equality_comparable<fat_executor> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; }; #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) @@ -189,7 +192,6 @@ void any_executor_construction_test() ASIO_CHECK(ex_two_props_9 == ex_two_props_7); ASIO_CHECK(ex_two_props_9 != ex_two_props_8); -#if defined(ASIO_HAS_MOVE) ex_two_props_t ex_two_props_10(std::move(ex_two_props_1)); ASIO_CHECK(ex_two_props_10.target<void>() == 0); @@ -213,7 +215,6 @@ void any_executor_construction_test() ASIO_CHECK(ex_two_props_7 == null_ptr); ASIO_CHECK(ex_two_props_12 == ex_two_props_6); ASIO_CHECK(ex_two_props_12 != ex_two_props_8); -#endif // defined(ASIO_HAS_MOVE) ex_one_prop_t ex_one_prop_1; @@ -274,7 +275,6 @@ void any_executor_construction_test() ASIO_CHECK(ex_one_prop_9 == ex_one_prop_7); ASIO_CHECK(ex_one_prop_9 != ex_one_prop_8); -#if defined(ASIO_HAS_MOVE) ex_one_prop_t ex_one_prop_10(std::move(ex_one_prop_1)); ASIO_CHECK(ex_one_prop_10.target<void>() == 0); @@ -298,7 +298,6 @@ void any_executor_construction_test() ASIO_CHECK(ex_one_prop_7 == null_ptr); ASIO_CHECK(ex_one_prop_12 == ex_one_prop_6); ASIO_CHECK(ex_one_prop_12 != ex_one_prop_8); -#endif // defined(ASIO_HAS_MOVE) ex_one_prop_t ex_one_prop_13(ex_two_props_1); @@ -374,7 +373,6 @@ void any_executor_construction_test() ASIO_CHECK(ex_no_props_9 == ex_no_props_7); ASIO_CHECK(ex_no_props_9 != ex_no_props_8); -#if defined(ASIO_HAS_MOVE) ex_no_props_t ex_no_props_10(std::move(ex_no_props_1)); ASIO_CHECK(ex_no_props_10.target<void>() == 0); @@ -398,7 +396,6 @@ void any_executor_construction_test() ASIO_CHECK(ex_no_props_7 == null_ptr); ASIO_CHECK(ex_no_props_12 == ex_no_props_6); ASIO_CHECK(ex_no_props_12 != ex_no_props_8); -#endif // defined(ASIO_HAS_MOVE) ex_no_props_t ex_no_props_13(ex_two_props_1); @@ -431,6 +428,338 @@ void any_executor_construction_test() ASIO_CHECK(ex_no_props_18 != null_ptr); } +void any_executor_nothrow_construction_test() +{ + typedef execution::any_executor<> ex_no_props_t; + + typedef execution::any_executor< + execution::blocking_t + > ex_one_prop_t; + + typedef execution::any_executor< + execution::blocking_t, + execution::occupancy_t + > ex_two_props_t; + + thread_pool pool(1); + asio::nullptr_t null_ptr = asio::nullptr_t(); + + ex_two_props_t ex_two_props_1; + + ASIO_CHECK(ex_two_props_1.target<void>() == 0); + ASIO_CHECK(ex_two_props_1 == null_ptr); + + ex_two_props_t ex_two_props_2(null_ptr); + + ASIO_CHECK(ex_two_props_2.target<void>() == 0); + ASIO_CHECK(ex_two_props_2 == null_ptr); + ASIO_CHECK(ex_two_props_2 == ex_two_props_1); + + ex_two_props_t ex_two_props_3(std::nothrow, pool.executor()); + + ASIO_CHECK(ex_two_props_3.target<void>() != 0); + ASIO_CHECK(ex_two_props_3 != null_ptr); + ASIO_CHECK(ex_two_props_3 != ex_two_props_1); + + ex_two_props_t ex_two_props_4(std::nothrow, ex_two_props_1); + + ASIO_CHECK(ex_two_props_4.target<void>() == 0); + ASIO_CHECK(ex_two_props_4 == null_ptr); + ASIO_CHECK(ex_two_props_4 == ex_two_props_1); + + ex_two_props_t ex_two_props_5(std::nothrow, ex_two_props_3); + + ASIO_CHECK(ex_two_props_5.target<void>() != 0); + ASIO_CHECK(ex_two_props_5 != null_ptr); + ASIO_CHECK(ex_two_props_5 == ex_two_props_3); + + ex_two_props_t ex_two_props_6(std::nothrow, fat_executor(1)); + + ASIO_CHECK(ex_two_props_6.target<void>() != 0); + ASIO_CHECK(ex_two_props_6 != null_ptr); + ASIO_CHECK(ex_two_props_6 != ex_two_props_1); + + ex_two_props_t ex_two_props_7(std::nothrow, fat_executor(1)); + + ASIO_CHECK(ex_two_props_7.target<void>() != 0); + ASIO_CHECK(ex_two_props_7 != null_ptr); + ASIO_CHECK(ex_two_props_7 != ex_two_props_1); + ASIO_CHECK(ex_two_props_7 == ex_two_props_6); + + ex_two_props_t ex_two_props_8(std::nothrow, fat_executor(2)); + + ASIO_CHECK(ex_two_props_8.target<void>() != 0); + ASIO_CHECK(ex_two_props_8 != null_ptr); + ASIO_CHECK(ex_two_props_8 != ex_two_props_1); + ASIO_CHECK(ex_two_props_8 != ex_two_props_6); + ASIO_CHECK(ex_two_props_8 != ex_two_props_7); + + ex_two_props_t ex_two_props_9(std::nothrow, ex_two_props_6); + + ASIO_CHECK(ex_two_props_9.target<void>() != 0); + ASIO_CHECK(ex_two_props_9 != null_ptr); + ASIO_CHECK(ex_two_props_9 != ex_two_props_1); + ASIO_CHECK(ex_two_props_9 == ex_two_props_6); + ASIO_CHECK(ex_two_props_9 == ex_two_props_7); + ASIO_CHECK(ex_two_props_9 != ex_two_props_8); + + ex_two_props_t ex_two_props_10(std::nothrow, std::move(ex_two_props_1)); + + ASIO_CHECK(ex_two_props_10.target<void>() == 0); + ASIO_CHECK(ex_two_props_10 == null_ptr); + ASIO_CHECK(ex_two_props_1.target<void>() == 0); + ASIO_CHECK(ex_two_props_1 == null_ptr); + + ex_two_props_t ex_two_props_11(std::nothrow, std::move(ex_two_props_3)); + + ASIO_CHECK(ex_two_props_11.target<void>() != 0); + ASIO_CHECK(ex_two_props_11 != null_ptr); + ASIO_CHECK(ex_two_props_3.target<void>() == 0); + ASIO_CHECK(ex_two_props_3 == null_ptr); + ASIO_CHECK(ex_two_props_11 == ex_two_props_5); + + ex_two_props_t ex_two_props_12(std::nothrow, std::move(ex_two_props_7)); + + ASIO_CHECK(ex_two_props_12.target<void>() != 0); + ASIO_CHECK(ex_two_props_12 != null_ptr); + ASIO_CHECK(ex_two_props_7.target<void>() == 0); + ASIO_CHECK(ex_two_props_7 == null_ptr); + ASIO_CHECK(ex_two_props_12 == ex_two_props_6); + ASIO_CHECK(ex_two_props_12 != ex_two_props_8); + + next_nothrow_new_fails = true; + ex_two_props_t ex_two_props_13(std::nothrow, fat_executor(3)); + + ASIO_CHECK(ex_two_props_13.target<void>() == 0); + ASIO_CHECK(ex_two_props_13 == null_ptr); + ASIO_CHECK(ex_two_props_13 == ex_two_props_1); + + ex_one_prop_t ex_one_prop_1; + + ASIO_CHECK(ex_one_prop_1.target<void>() == 0); + ASIO_CHECK(ex_one_prop_1 == null_ptr); + + ex_one_prop_t ex_one_prop_2(null_ptr); + + ASIO_CHECK(ex_one_prop_2.target<void>() == 0); + ASIO_CHECK(ex_one_prop_2 == null_ptr); + ASIO_CHECK(ex_one_prop_2 == ex_one_prop_1); + + ex_one_prop_t ex_one_prop_3(std::nothrow, pool.executor()); + + ASIO_CHECK(ex_one_prop_3.target<void>() != 0); + ASIO_CHECK(ex_one_prop_3 != null_ptr); + ASIO_CHECK(ex_one_prop_3 != ex_one_prop_1); + + ex_one_prop_t ex_one_prop_4(std::nothrow, ex_one_prop_1); + + ASIO_CHECK(ex_one_prop_4.target<void>() == 0); + ASIO_CHECK(ex_one_prop_4 == null_ptr); + ASIO_CHECK(ex_one_prop_4 == ex_one_prop_1); + + ex_one_prop_t ex_one_prop_5(std::nothrow, ex_one_prop_3); + + ASIO_CHECK(ex_one_prop_5.target<void>() != 0); + ASIO_CHECK(ex_one_prop_5 != null_ptr); + ASIO_CHECK(ex_one_prop_5 == ex_one_prop_3); + + ex_one_prop_t ex_one_prop_6 = fat_executor(1); + + ASIO_CHECK(ex_one_prop_6.target<void>() != 0); + ASIO_CHECK(ex_one_prop_6 != null_ptr); + ASIO_CHECK(ex_one_prop_6 != ex_one_prop_1); + + ex_one_prop_t ex_one_prop_7(std::nothrow, fat_executor(1)); + + ASIO_CHECK(ex_one_prop_7.target<void>() != 0); + ASIO_CHECK(ex_one_prop_7 != null_ptr); + ASIO_CHECK(ex_one_prop_7 != ex_one_prop_1); + ASIO_CHECK(ex_one_prop_7 == ex_one_prop_6); + + ex_one_prop_t ex_one_prop_8(std::nothrow, fat_executor(2)); + + ASIO_CHECK(ex_one_prop_8.target<void>() != 0); + ASIO_CHECK(ex_one_prop_8 != null_ptr); + ASIO_CHECK(ex_one_prop_8 != ex_one_prop_1); + ASIO_CHECK(ex_one_prop_8 != ex_one_prop_6); + ASIO_CHECK(ex_one_prop_8 != ex_one_prop_7); + + ex_one_prop_t ex_one_prop_9(std::nothrow, ex_one_prop_6); + + ASIO_CHECK(ex_one_prop_9.target<void>() != 0); + ASIO_CHECK(ex_one_prop_9 != null_ptr); + ASIO_CHECK(ex_one_prop_9 != ex_one_prop_1); + ASIO_CHECK(ex_one_prop_9 == ex_one_prop_6); + ASIO_CHECK(ex_one_prop_9 == ex_one_prop_7); + ASIO_CHECK(ex_one_prop_9 != ex_one_prop_8); + + ex_one_prop_t ex_one_prop_10(std::nothrow, std::move(ex_one_prop_1)); + + ASIO_CHECK(ex_one_prop_10.target<void>() == 0); + ASIO_CHECK(ex_one_prop_10 == null_ptr); + ASIO_CHECK(ex_one_prop_1.target<void>() == 0); + ASIO_CHECK(ex_one_prop_1 == null_ptr); + + ex_one_prop_t ex_one_prop_11(std::nothrow, std::move(ex_one_prop_3)); + + ASIO_CHECK(ex_one_prop_11.target<void>() != 0); + ASIO_CHECK(ex_one_prop_11 != null_ptr); + ASIO_CHECK(ex_one_prop_3.target<void>() == 0); + ASIO_CHECK(ex_one_prop_3 == null_ptr); + ASIO_CHECK(ex_one_prop_11 == ex_one_prop_5); + + ex_one_prop_t ex_one_prop_12(std::nothrow, std::move(ex_one_prop_7)); + + ASIO_CHECK(ex_one_prop_12.target<void>() != 0); + ASIO_CHECK(ex_one_prop_12 != null_ptr); + ASIO_CHECK(ex_one_prop_7.target<void>() == 0); + ASIO_CHECK(ex_one_prop_7 == null_ptr); + ASIO_CHECK(ex_one_prop_12 == ex_one_prop_6); + ASIO_CHECK(ex_one_prop_12 != ex_one_prop_8); + + ex_one_prop_t ex_one_prop_13(std::nothrow, ex_two_props_1); + + ASIO_CHECK(ex_one_prop_13.target<void>() == 0); + ASIO_CHECK(ex_one_prop_13 == null_ptr); + + ex_one_prop_t ex_one_prop_14(std::nothrow, ex_two_props_5); + + ASIO_CHECK(ex_one_prop_14.target<void>() != 0); + ASIO_CHECK(ex_one_prop_14 != null_ptr); + + ex_one_prop_t ex_one_prop_15(std::nothrow, ex_two_props_9); + + ASIO_CHECK(ex_one_prop_15.target<void>() != 0); + ASIO_CHECK(ex_one_prop_15 != null_ptr); + + next_nothrow_new_fails = true; + ex_one_prop_t ex_one_prop_16(std::nothrow, fat_executor(3)); + + ASIO_CHECK(ex_one_prop_16.target<void>() == 0); + ASIO_CHECK(ex_one_prop_16 == null_ptr); + ASIO_CHECK(ex_one_prop_16 == ex_one_prop_1); + + ex_no_props_t ex_no_props_1; + + ASIO_CHECK(ex_no_props_1.target<void>() == 0); + ASIO_CHECK(ex_no_props_1 == null_ptr); + + ex_no_props_t ex_no_props_2(null_ptr); + + ASIO_CHECK(ex_no_props_2.target<void>() == 0); + ASIO_CHECK(ex_no_props_2 == null_ptr); + ASIO_CHECK(ex_no_props_2 == ex_no_props_1); + + ex_no_props_t ex_no_props_3(std::nothrow, pool.executor()); + + ASIO_CHECK(ex_no_props_3.target<void>() != 0); + ASIO_CHECK(ex_no_props_3 != null_ptr); + ASIO_CHECK(ex_no_props_3 != ex_no_props_1); + + ex_no_props_t ex_no_props_4(std::nothrow, ex_no_props_1); + + ASIO_CHECK(ex_no_props_4.target<void>() == 0); + ASIO_CHECK(ex_no_props_4 == null_ptr); + ASIO_CHECK(ex_no_props_4 == ex_no_props_1); + + ex_no_props_t ex_no_props_5(std::nothrow, ex_no_props_3); + + ASIO_CHECK(ex_no_props_5.target<void>() != 0); + ASIO_CHECK(ex_no_props_5 != null_ptr); + ASIO_CHECK(ex_no_props_5 == ex_no_props_3); + + ex_no_props_t ex_no_props_6(std::nothrow, fat_executor(1)); + + ASIO_CHECK(ex_no_props_6.target<void>() != 0); + ASIO_CHECK(ex_no_props_6 != null_ptr); + ASIO_CHECK(ex_no_props_6 != ex_no_props_1); + + ex_no_props_t ex_no_props_7(std::nothrow, fat_executor(1)); + + ASIO_CHECK(ex_no_props_7.target<void>() != 0); + ASIO_CHECK(ex_no_props_7 != null_ptr); + ASIO_CHECK(ex_no_props_7 != ex_no_props_1); + ASIO_CHECK(ex_no_props_7 == ex_no_props_6); + + ex_no_props_t ex_no_props_8(std::nothrow, fat_executor(2)); + + ASIO_CHECK(ex_no_props_8.target<void>() != 0); + ASIO_CHECK(ex_no_props_8 != null_ptr); + ASIO_CHECK(ex_no_props_8 != ex_no_props_1); + ASIO_CHECK(ex_no_props_8 != ex_no_props_6); + ASIO_CHECK(ex_no_props_8 != ex_no_props_7); + + ex_no_props_t ex_no_props_9(std::nothrow, ex_no_props_6); + + ASIO_CHECK(ex_no_props_9.target<void>() != 0); + ASIO_CHECK(ex_no_props_9 != null_ptr); + ASIO_CHECK(ex_no_props_9 != ex_no_props_1); + ASIO_CHECK(ex_no_props_9 == ex_no_props_6); + ASIO_CHECK(ex_no_props_9 == ex_no_props_7); + ASIO_CHECK(ex_no_props_9 != ex_no_props_8); + + ex_no_props_t ex_no_props_10(std::nothrow, std::move(ex_no_props_1)); + + ASIO_CHECK(ex_no_props_10.target<void>() == 0); + ASIO_CHECK(ex_no_props_10 == null_ptr); + ASIO_CHECK(ex_no_props_1.target<void>() == 0); + ASIO_CHECK(ex_no_props_1 == null_ptr); + + ex_no_props_t ex_no_props_11(std::nothrow, std::move(ex_no_props_3)); + + ASIO_CHECK(ex_no_props_11.target<void>() != 0); + ASIO_CHECK(ex_no_props_11 != null_ptr); + ASIO_CHECK(ex_no_props_3.target<void>() == 0); + ASIO_CHECK(ex_no_props_3 == null_ptr); + ASIO_CHECK(ex_no_props_11 == ex_no_props_5); + + ex_no_props_t ex_no_props_12(std::nothrow, std::move(ex_no_props_7)); + + ASIO_CHECK(ex_no_props_12.target<void>() != 0); + ASIO_CHECK(ex_no_props_12 != null_ptr); + ASIO_CHECK(ex_no_props_7.target<void>() == 0); + ASIO_CHECK(ex_no_props_7 == null_ptr); + ASIO_CHECK(ex_no_props_12 == ex_no_props_6); + ASIO_CHECK(ex_no_props_12 != ex_no_props_8); + + ex_no_props_t ex_no_props_13(std::nothrow, ex_two_props_1); + + ASIO_CHECK(ex_no_props_13.target<void>() == 0); + ASIO_CHECK(ex_no_props_13 == null_ptr); + + ex_no_props_t ex_no_props_14(std::nothrow, ex_two_props_5); + + ASIO_CHECK(ex_no_props_14.target<void>() != 0); + ASIO_CHECK(ex_no_props_14 != null_ptr); + + ex_no_props_t ex_no_props_15(std::nothrow, ex_two_props_9); + + ASIO_CHECK(ex_no_props_15.target<void>() != 0); + ASIO_CHECK(ex_no_props_15 != null_ptr); + + ex_no_props_t ex_no_props_16(std::nothrow, ex_one_prop_1); + + ASIO_CHECK(ex_no_props_16.target<void>() == 0); + ASIO_CHECK(ex_no_props_16 == null_ptr); + + ex_no_props_t ex_no_props_17(std::nothrow, ex_one_prop_5); + + ASIO_CHECK(ex_no_props_17.target<void>() != 0); + ASIO_CHECK(ex_no_props_17 != null_ptr); + + ex_no_props_t ex_no_props_18(std::nothrow, ex_one_prop_9); + + ASIO_CHECK(ex_no_props_18.target<void>() != 0); + ASIO_CHECK(ex_no_props_18 != null_ptr); + + next_nothrow_new_fails = true; + ex_no_props_t ex_no_props_19(std::nothrow, fat_executor(3)); + + ASIO_CHECK(ex_no_props_19.target<void>() == 0); + ASIO_CHECK(ex_no_props_19 == null_ptr); + ASIO_CHECK(ex_no_props_19 == ex_no_props_1); +} + void any_executor_assignment_test() { typedef execution::any_executor<> ex_no_props_t; @@ -501,7 +830,6 @@ void any_executor_assignment_test() ASIO_CHECK(ex_two_props_7 == ex_two_props_5); ASIO_CHECK(ex_two_props_7 != ex_two_props_6); -#if defined(ASIO_HAS_MOVE) ex_two_props_t ex_two_props_8; ex_two_props_8 = std::move(ex_two_props_1); @@ -519,7 +847,6 @@ void any_executor_assignment_test() ASIO_CHECK(ex_two_props_8.target<void>() != 0); ASIO_CHECK(ex_two_props_5.target<void>() == 0); ASIO_CHECK(ex_two_props_8 == ex_two_props_7); -#endif // defined(ASIO_HAS_MOVE) ex_one_prop_t ex_one_prop_1; @@ -575,7 +902,6 @@ void any_executor_assignment_test() ASIO_CHECK(ex_one_prop_7 == ex_one_prop_5); ASIO_CHECK(ex_one_prop_7 != ex_one_prop_6); -#if defined(ASIO_HAS_MOVE) ex_one_prop_t ex_one_prop_8; ex_one_prop_8 = std::move(ex_one_prop_1); @@ -593,7 +919,6 @@ void any_executor_assignment_test() ASIO_CHECK(ex_one_prop_8.target<void>() != 0); ASIO_CHECK(ex_one_prop_5.target<void>() == 0); ASIO_CHECK(ex_one_prop_8 == ex_one_prop_7); -#endif // defined(ASIO_HAS_MOVE) ex_one_prop_t ex_one_prop_9; ex_one_prop_9 = ex_two_props_1; @@ -662,7 +987,6 @@ void any_executor_assignment_test() ASIO_CHECK(ex_no_props_7 == ex_no_props_5); ASIO_CHECK(ex_no_props_7 != ex_no_props_6); -#if defined(ASIO_HAS_MOVE) ex_no_props_t ex_no_props_8; ex_no_props_8 = std::move(ex_no_props_1); @@ -680,7 +1004,6 @@ void any_executor_assignment_test() ASIO_CHECK(ex_no_props_8.target<void>() != 0); ASIO_CHECK(ex_no_props_5.target<void>() == 0); ASIO_CHECK(ex_no_props_8 == ex_no_props_7); -#endif // defined(ASIO_HAS_MOVE) ex_no_props_t ex_no_props_9; ex_no_props_9 = ex_two_props_1; @@ -838,37 +1161,29 @@ void any_executor_execute_test() execution::relationship_t::continuation_t> ex(pool.executor()); - asio::execution::execute(pool.executor(), - bindns::bind(increment, &count)); + ex.execute(bindns::bind(increment, &count)); - asio::execution::execute( - asio::require(pool.executor(), - asio::execution::blocking.possibly), + asio::require(ex, asio::execution::blocking.possibly).execute( bindns::bind(increment, &count)); - asio::execution::execute( - asio::require(pool.executor(), - asio::execution::blocking.never), + asio::require(ex, asio::execution::blocking.never).execute( bindns::bind(increment, &count)); - asio::execution::execute( - asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.tracked), - bindns::bind(increment, &count)); + asio::require(ex, + asio::execution::blocking.never, + asio::execution::outstanding_work.tracked + ).execute(bindns::bind(increment, &count)); - asio::execution::execute( - asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked), - bindns::bind(increment, &count)); + asio::require(ex, + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked + ).execute(bindns::bind(increment, &count)); - asio::execution::execute( - asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - bindns::bind(increment, &count)); + asio::require(ex, + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.continuation + ).execute(bindns::bind(increment, &count)); pool.wait(); @@ -879,6 +1194,7 @@ ASIO_TEST_SUITE ( "any_executor", ASIO_TEST_CASE(any_executor_construction_test) + ASIO_TEST_CASE(any_executor_nothrow_construction_test) ASIO_TEST_CASE(any_executor_assignment_test) ASIO_TEST_CASE(any_executor_swap_test) ASIO_TEST_CASE(any_executor_query_test) diff --git a/3rdparty/asio/src/tests/unit/execution/blocking.cpp b/3rdparty/asio/src/tests/unit/execution/blocking.cpp index 848841b6278..ce2ba2f8ea5 100644 --- a/3rdparty/asio/src/tests/unit/execution/blocking.cpp +++ b/3rdparty/asio/src/tests/unit/execution/blocking.cpp @@ -2,7 +2,7 @@ // blocking.cpp // ~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -35,12 +35,12 @@ struct ex_nq_nr { } - friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) noexcept { return true; } - friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) noexcept { return false; } @@ -64,7 +64,7 @@ struct is_executor<ex_nq_nr> : asio::true_type template <typename ResultType, typename ParamType, typename Result> struct ex_cq_nr { - static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT + static constexpr ResultType query(ParamType) noexcept { return Result(); } @@ -74,12 +74,12 @@ struct ex_cq_nr { } - friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) noexcept { return true; } - friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) noexcept { return false; } @@ -114,12 +114,12 @@ struct query_static_constexpr_member< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef Result result_type; // Must return raw result type. - static ASIO_CONSTEXPR result_type value() + static constexpr result_type value() { return Result(); } @@ -133,7 +133,7 @@ struct query_static_constexpr_member< template <typename ResultType, typename ParamType, typename Result> struct ex_mq_nr { - ResultType query(ParamType) const ASIO_NOEXCEPT + ResultType query(ParamType) const noexcept { return Result(); } @@ -143,12 +143,12 @@ struct ex_mq_nr { } - friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) noexcept { return true; } - friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) noexcept { return false; } @@ -183,8 +183,8 @@ struct query_member< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ResultType result_type; }; @@ -197,7 +197,7 @@ struct query_member< template <typename ResultType, typename ParamType, typename Result> struct ex_fq_nr { - friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT + friend ResultType query(const ex_fq_nr&, ParamType) noexcept { return Result(); } @@ -207,12 +207,12 @@ struct ex_fq_nr { } - friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) noexcept { return true; } - friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) noexcept { return false; } @@ -247,8 +247,8 @@ struct query_free< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ResultType result_type; }; @@ -261,24 +261,24 @@ struct query_free< template <typename CurrentType, typename OtherType> struct ex_mq_mr { - CurrentType query(CurrentType) const ASIO_NOEXCEPT + CurrentType query(CurrentType) const noexcept { return CurrentType(); } - CurrentType query(OtherType) const ASIO_NOEXCEPT + CurrentType query(OtherType) const noexcept { return CurrentType(); } ex_mq_mr<CurrentType, OtherType> require( - CurrentType) const ASIO_NOEXCEPT + CurrentType) const noexcept { return ex_mq_mr<CurrentType, OtherType>(); } ex_mq_mr<OtherType, CurrentType> require( - OtherType) const ASIO_NOEXCEPT + OtherType) const noexcept { return ex_mq_mr<OtherType, CurrentType>(); } @@ -288,12 +288,12 @@ struct ex_mq_mr { } - friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept { return true; } - friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept { return false; } @@ -302,13 +302,13 @@ struct ex_mq_mr template <typename CurrentType> struct ex_mq_mr<CurrentType, CurrentType> { - CurrentType query(CurrentType) const ASIO_NOEXCEPT + CurrentType query(CurrentType) const noexcept { return CurrentType(); } ex_mq_mr<CurrentType, CurrentType> require( - CurrentType) const ASIO_NOEXCEPT + CurrentType) const noexcept { return ex_mq_mr<CurrentType, CurrentType>(); } @@ -318,12 +318,12 @@ struct ex_mq_mr<CurrentType, CurrentType> { } - friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept { return true; } - friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept { return false; } @@ -358,8 +358,8 @@ struct query_member< || asio::is_convertible<Param, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef CurrentType result_type; }; @@ -375,8 +375,8 @@ struct require_member< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_mq_mr<CurrentType, OtherType> result_type; }; @@ -389,8 +389,8 @@ struct require_member< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_mq_mr<OtherType, CurrentType> result_type; }; @@ -403,36 +403,36 @@ struct require_member< template <typename CurrentType, typename OtherType> struct ex_fq_fr { - friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept { return CurrentType(); } - friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, OtherType) noexcept { return CurrentType(); } friend ex_fq_fr<CurrentType, OtherType> require( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, OtherType>(); } friend ex_fq_fr<OtherType, CurrentType> require( - const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + const ex_fq_fr&, OtherType) noexcept { return ex_fq_fr<OtherType, CurrentType>(); } friend ex_fq_fr<CurrentType, OtherType> prefer( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, OtherType>(); } friend ex_fq_fr<OtherType, CurrentType> prefer( - const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + const ex_fq_fr&, OtherType) noexcept { return ex_fq_fr<OtherType, CurrentType>(); } @@ -442,12 +442,12 @@ struct ex_fq_fr { } - friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept { return true; } - friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept { return false; } @@ -456,19 +456,19 @@ struct ex_fq_fr template <typename CurrentType> struct ex_fq_fr<CurrentType, CurrentType> { - friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept { return CurrentType(); } friend ex_fq_fr<CurrentType, CurrentType> require( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, CurrentType>(); } friend ex_fq_fr<CurrentType, CurrentType> prefer( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, CurrentType>(); } @@ -478,12 +478,12 @@ struct ex_fq_fr<CurrentType, CurrentType> { } - friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept { return true; } - friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept { return false; } @@ -518,8 +518,8 @@ struct query_free< || asio::is_convertible<Param, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef CurrentType result_type; }; @@ -535,8 +535,8 @@ struct require_free< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<CurrentType, OtherType> result_type; }; @@ -549,8 +549,8 @@ struct require_free< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<OtherType, CurrentType> result_type; }; @@ -566,8 +566,8 @@ struct prefer_free< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<CurrentType, OtherType> result_type; }; @@ -580,8 +580,8 @@ struct prefer_free< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<OtherType, CurrentType> result_type; }; @@ -594,19 +594,19 @@ struct prefer_free< template <typename Executor, typename Param, bool ExpectedResult> void test_can_query() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_query<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_query<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_query<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_query<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -629,29 +629,27 @@ void test_query() template <typename Executor, typename Param, typename ExpectedResult> void test_constexpr_query() { -#if defined(ASIO_HAS_CONSTEXPR) constexpr Executor ex1 = {}; constexpr exec::blocking_t result1 = asio::query(ex1, Param()); ASIO_CHECK(result1 == ExpectedResult()); -#endif // defined(ASIO_HAS_CONSTEXPR) } template <typename Executor, typename Param, bool ExpectedResult> void test_can_require() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_require<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_require<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_require<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_require<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -680,19 +678,19 @@ void test_require() template <typename Executor, typename Param, bool ExpectedResult> void test_can_prefer() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_prefer<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_prefer<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_prefer<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_prefer<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -721,9 +719,18 @@ void test_prefer() void test_vars() { ASIO_CHECK(s() == exec::blocking); + ASIO_CHECK(s() != exec::blocking.possibly); + ASIO_CHECK(s() != exec::blocking.always); + ASIO_CHECK(s() != exec::blocking.never); ASIO_CHECK(n1() == exec::blocking.possibly); + ASIO_CHECK(n1() != exec::blocking.always); + ASIO_CHECK(n1() != exec::blocking.never); ASIO_CHECK(n2() == exec::blocking.always); + ASIO_CHECK(n2() != exec::blocking.possibly); + ASIO_CHECK(n2() != exec::blocking.never); ASIO_CHECK(n3() == exec::blocking.never); + ASIO_CHECK(n3() != exec::blocking.possibly); + ASIO_CHECK(n3() != exec::blocking.always); } ASIO_TEST_SUITE diff --git a/3rdparty/asio/src/tests/unit/execution/blocking_adaptation.cpp b/3rdparty/asio/src/tests/unit/execution/blocking_adaptation.cpp index d16650ae799..b6e77dd31a9 100644 --- a/3rdparty/asio/src/tests/unit/execution/blocking_adaptation.cpp +++ b/3rdparty/asio/src/tests/unit/execution/blocking_adaptation.cpp @@ -2,7 +2,7 @@ // blocking_adaptation.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -34,12 +34,12 @@ struct ex_nq_nr { } - friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) noexcept { return true; } - friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) noexcept { return false; } @@ -53,8 +53,8 @@ namespace traits { template <> struct equality_comparable<ex_nq_nr> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; }; #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) @@ -64,8 +64,8 @@ struct equality_comparable<ex_nq_nr> template <typename Function> struct execute_member<ex_nq_nr, Function> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = false; typedef void result_type; }; @@ -78,7 +78,7 @@ struct execute_member<ex_nq_nr, Function> template <typename ResultType, typename ParamType, typename Result> struct ex_cq_nr { - static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT + static constexpr ResultType query(ParamType) noexcept { return Result(); } @@ -88,12 +88,12 @@ struct ex_cq_nr { } - friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) noexcept { return true; } - friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) noexcept { return false; } @@ -107,8 +107,8 @@ namespace traits { template <typename ResultType, typename ParamType, typename Result> struct equality_comparable<ex_cq_nr<ResultType, ParamType, Result> > { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; }; #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) @@ -119,8 +119,8 @@ template <typename ResultType, typename ParamType, typename Result, typename Function> struct execute_member<ex_cq_nr<ResultType, ParamType, Result>, Function> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = false; typedef void result_type; }; @@ -137,12 +137,12 @@ struct query_static_constexpr_member< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef Result result_type; // Must return raw result type. - static ASIO_CONSTEXPR result_type value() + static constexpr result_type value() { return Result(); } @@ -156,7 +156,7 @@ struct query_static_constexpr_member< template <typename ResultType, typename ParamType, typename Result> struct ex_mq_nr { - ResultType query(ParamType) const ASIO_NOEXCEPT + ResultType query(ParamType) const noexcept { return Result(); } @@ -166,12 +166,12 @@ struct ex_mq_nr { } - friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) noexcept { return true; } - friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) noexcept { return false; } @@ -185,8 +185,8 @@ namespace traits { template <typename ResultType, typename ParamType, typename Result> struct equality_comparable<ex_mq_nr<ResultType, ParamType, Result> > { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; }; #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) @@ -197,8 +197,8 @@ template <typename ResultType, typename ParamType, typename Result, typename Function> struct execute_member<ex_mq_nr<ResultType, ParamType, Result>, Function> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = false; typedef void result_type; }; @@ -215,8 +215,8 @@ struct query_member< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ResultType result_type; }; @@ -229,7 +229,7 @@ struct query_member< template <typename ResultType, typename ParamType, typename Result> struct ex_fq_nr { - friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT + friend ResultType query(const ex_fq_nr&, ParamType) noexcept { return Result(); } @@ -239,12 +239,12 @@ struct ex_fq_nr { } - friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) noexcept { return true; } - friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) noexcept { return false; } @@ -258,8 +258,8 @@ namespace traits { template <typename ResultType, typename ParamType, typename Result> struct equality_comparable<ex_fq_nr<ResultType, ParamType, Result> > { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; }; #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) @@ -270,8 +270,8 @@ template <typename ResultType, typename ParamType, typename Result, typename Function> struct execute_member<ex_fq_nr<ResultType, ParamType, Result>, Function> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = false; typedef void result_type; }; @@ -288,8 +288,8 @@ struct query_free< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ResultType result_type; }; @@ -302,24 +302,24 @@ struct query_free< template <typename CurrentType, typename OtherType> struct ex_mq_mr { - CurrentType query(CurrentType) const ASIO_NOEXCEPT + CurrentType query(CurrentType) const noexcept { return CurrentType(); } - CurrentType query(OtherType) const ASIO_NOEXCEPT + CurrentType query(OtherType) const noexcept { return CurrentType(); } ex_mq_mr<CurrentType, OtherType> require( - CurrentType) const ASIO_NOEXCEPT + CurrentType) const noexcept { return ex_mq_mr<CurrentType, OtherType>(); } ex_mq_mr<OtherType, CurrentType> require( - OtherType) const ASIO_NOEXCEPT + OtherType) const noexcept { return ex_mq_mr<OtherType, CurrentType>(); } @@ -329,12 +329,12 @@ struct ex_mq_mr { } - friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept { return true; } - friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept { return false; } @@ -343,13 +343,13 @@ struct ex_mq_mr template <typename CurrentType> struct ex_mq_mr<CurrentType, CurrentType> { - CurrentType query(CurrentType) const ASIO_NOEXCEPT + CurrentType query(CurrentType) const noexcept { return CurrentType(); } ex_mq_mr<CurrentType, CurrentType> require( - CurrentType) const ASIO_NOEXCEPT + CurrentType) const noexcept { return ex_mq_mr<CurrentType, CurrentType>(); } @@ -359,12 +359,12 @@ struct ex_mq_mr<CurrentType, CurrentType> { } - friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept { return true; } - friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept { return false; } @@ -378,8 +378,8 @@ namespace traits { template <typename CurrentType, typename OtherType> struct equality_comparable<ex_mq_mr<CurrentType, OtherType> > { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; }; #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) @@ -389,8 +389,8 @@ struct equality_comparable<ex_mq_mr<CurrentType, OtherType> > template <typename CurrentType, typename OtherType, typename Function> struct execute_member<ex_mq_mr<CurrentType, OtherType>, Function> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = false; typedef void result_type; }; @@ -407,8 +407,8 @@ struct query_member< || asio::is_convertible<Param, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef CurrentType result_type; }; @@ -424,8 +424,8 @@ struct require_member< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_mq_mr<CurrentType, OtherType> result_type; }; @@ -438,8 +438,8 @@ struct require_member< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_mq_mr<OtherType, CurrentType> result_type; }; @@ -452,36 +452,36 @@ struct require_member< template <typename CurrentType, typename OtherType> struct ex_fq_fr { - friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept { return CurrentType(); } - friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, OtherType) noexcept { return CurrentType(); } friend ex_fq_fr<CurrentType, OtherType> require( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, OtherType>(); } friend ex_fq_fr<OtherType, CurrentType> require( - const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + const ex_fq_fr&, OtherType) noexcept { return ex_fq_fr<OtherType, CurrentType>(); } friend ex_fq_fr<CurrentType, OtherType> prefer( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, OtherType>(); } friend ex_fq_fr<OtherType, CurrentType> prefer( - const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + const ex_fq_fr&, OtherType) noexcept { return ex_fq_fr<OtherType, CurrentType>(); } @@ -491,12 +491,12 @@ struct ex_fq_fr { } - friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept { return true; } - friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept { return false; } @@ -505,19 +505,19 @@ struct ex_fq_fr template <typename CurrentType> struct ex_fq_fr<CurrentType, CurrentType> { - friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept { return CurrentType(); } friend ex_fq_fr<CurrentType, CurrentType> require( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, CurrentType>(); } friend ex_fq_fr<CurrentType, CurrentType> prefer( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, CurrentType>(); } @@ -527,12 +527,12 @@ struct ex_fq_fr<CurrentType, CurrentType> { } - friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept { return true; } - friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept { return false; } @@ -546,8 +546,8 @@ namespace traits { template <typename CurrentType, typename OtherType> struct equality_comparable<ex_fq_fr<CurrentType, OtherType> > { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; }; #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) @@ -557,8 +557,8 @@ struct equality_comparable<ex_fq_fr<CurrentType, OtherType> > template <typename CurrentType, typename OtherType, typename Function> struct execute_member<ex_fq_fr<CurrentType, OtherType>, Function> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = false; typedef void result_type; }; @@ -575,8 +575,8 @@ struct query_free< || asio::is_convertible<Param, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef CurrentType result_type; }; @@ -592,8 +592,8 @@ struct require_free< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<CurrentType, OtherType> result_type; }; @@ -606,8 +606,8 @@ struct require_free< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<OtherType, CurrentType> result_type; }; @@ -623,8 +623,8 @@ struct prefer_free< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<CurrentType, OtherType> result_type; }; @@ -637,8 +637,8 @@ struct prefer_free< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<OtherType, CurrentType> result_type; }; @@ -651,19 +651,19 @@ struct prefer_free< template <typename Executor, typename Param, bool ExpectedResult> void test_can_query() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_query<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_query<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_query<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_query<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -686,29 +686,27 @@ void test_query() template <typename Executor, typename Param, typename ExpectedResult> void test_constexpr_query() { -#if defined(ASIO_HAS_CONSTEXPR) constexpr Executor ex1 = {}; constexpr exec::blocking_adaptation_t result1 = asio::query(ex1, Param()); ASIO_CHECK(result1 == ExpectedResult()); -#endif // defined(ASIO_HAS_CONSTEXPR) } template <typename Executor, typename Param, bool ExpectedResult> void test_can_require() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_require<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_require<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_require<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_require<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -757,19 +755,19 @@ void test_require() template <typename Executor, typename Param, bool ExpectedResult> void test_can_prefer() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_prefer<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_prefer<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_prefer<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_prefer<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -798,8 +796,12 @@ void test_prefer() void test_vars() { ASIO_CHECK(s() == exec::blocking_adaptation); + ASIO_CHECK(s() != exec::blocking_adaptation.disallowed); + ASIO_CHECK(s() != exec::blocking_adaptation.allowed); ASIO_CHECK(n1() == exec::blocking_adaptation.disallowed); + ASIO_CHECK(n1() != exec::blocking_adaptation.allowed); ASIO_CHECK(n2() == exec::blocking_adaptation.allowed); + ASIO_CHECK(n2() != exec::blocking_adaptation.disallowed); } ASIO_TEST_SUITE diff --git a/3rdparty/asio/src/tests/unit/execution/bulk_execute.cpp b/3rdparty/asio/src/tests/unit/execution/bulk_execute.cpp deleted file mode 100644 index 55a2118e955..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/bulk_execute.cpp +++ /dev/null @@ -1,320 +0,0 @@ -// -// bulk_execute.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/bulk_execute.hpp" - -#include "asio/execution.hpp" -#include "../unit_test.hpp" - -namespace exec = asio::execution; - -int call_count = 0; - -struct operation_state -{ - void start() ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -template <> -struct start_member<operation_state> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct sender : exec::sender_base -{ - sender() - { - } - - template <typename R> - operation_state connect(ASIO_MOVE_ARG(R) r) const - { - (void)r; - return operation_state(); - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -template <typename R> -struct connect_member<const sender, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct no_bulk_execute -{ -}; - -struct const_member_bulk_execute -{ - const_member_bulk_execute() - { - } - - template <typename F> - sender bulk_execute(ASIO_MOVE_ARG(F), std::size_t) const - { - ++call_count; - return sender(); - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT) - -template <typename F, typename N> -struct bulk_execute_member<const const_member_bulk_execute, F, N> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef sender result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct free_bulk_execute -{ - free_bulk_execute() - { - } - - template <typename F> - friend sender bulk_execute(const free_bulk_execute&, - ASIO_MOVE_ARG(F), std::size_t) - { - ++call_count; - return sender(); - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_SUBMIT_FREE_TRAIT) - -template <typename F, typename N> -struct bulk_execute_free<const free_bulk_execute, F, N> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef sender result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_FREE_TRAIT) - -} // namespace traits -} // namespace asio - -struct executor -{ - executor() - { - } - - executor(const executor&) ASIO_NOEXCEPT - { - } - -#if defined(ASIO_HAS_MOVE) - executor(executor&&) ASIO_NOEXCEPT - { - } -#endif // defined(ASIO_HAS_MOVE) - - template <typename F> - void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT - { - typename asio::decay<F>::type tmp(ASIO_MOVE_CAST(F)(f)); - tmp(); - } - - bool operator==(const executor&) const ASIO_NOEXCEPT - { - return true; - } - - bool operator!=(const executor&) const ASIO_NOEXCEPT - { - return false; - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) - -template <typename F> -struct execute_member<executor, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) - -template <> -struct equality_comparable<executor> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); -}; - -#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) - -} // namespace traits -} // namespace asio - -void test_can_bulk_execute() -{ - ASIO_CONSTEXPR bool b1 = exec::can_bulk_execute< - no_bulk_execute&, exec::invocable_archetype, std::size_t>::value; - ASIO_CHECK(b1 == false); - - ASIO_CONSTEXPR bool b2 = exec::can_bulk_execute< - const no_bulk_execute&, exec::invocable_archetype, std::size_t>::value; - ASIO_CHECK(b2 == false); - - ASIO_CONSTEXPR bool b3 = exec::can_bulk_execute< - const_member_bulk_execute&, exec::invocable_archetype, std::size_t>::value; - ASIO_CHECK(b3 == true); - - ASIO_CONSTEXPR bool b4 = exec::can_bulk_execute< - const const_member_bulk_execute&, - exec::invocable_archetype, std::size_t>::value; - ASIO_CHECK(b4 == true); - - ASIO_CONSTEXPR bool b5 = exec::can_bulk_execute< - free_bulk_execute&, exec::invocable_archetype, std::size_t>::value; - ASIO_CHECK(b5 == true); - - ASIO_CONSTEXPR bool b6 = exec::can_bulk_execute< - const free_bulk_execute&, exec::invocable_archetype, std::size_t>::value; - ASIO_CHECK(b6 == true); - - ASIO_CONSTEXPR bool b7 = exec::can_bulk_execute< - executor&, exec::invocable_archetype, std::size_t>::value; - ASIO_CHECK(b7 == true); - - ASIO_CONSTEXPR bool b8 = exec::can_bulk_execute< - const executor&, exec::invocable_archetype, std::size_t>::value; - ASIO_CHECK(b8 == true); -} - -void handler(std::size_t) -{ -} - -void counting_handler(std::size_t) -{ - ++call_count; -} - -void completion_handler() -{ - ++call_count; -} - -void test_bulk_execute() -{ - call_count = 0; - const_member_bulk_execute ex1; - exec::bulk_execute(ex1, handler, 2); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const const_member_bulk_execute ex2; - exec::bulk_execute(ex2, handler, 2); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::bulk_execute(const_member_bulk_execute(), handler, 2); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_bulk_execute ex3; - exec::bulk_execute(ex3, handler, 2); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const free_bulk_execute ex4; - exec::bulk_execute(ex4, handler, 2); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::bulk_execute(free_bulk_execute(), handler, 2); - ASIO_CHECK(call_count == 1); - - call_count = 0; - executor ex5; - exec::execute( - exec::bulk_execute(ex5, counting_handler, 10u), - completion_handler); - ASIO_CHECK(call_count == 11); - - call_count = 0; - const executor ex6; - exec::execute( - exec::bulk_execute(ex6, counting_handler, 10u), - completion_handler); - ASIO_CHECK(call_count == 11); - - call_count = 0; - exec::execute( - exec::bulk_execute(executor(), counting_handler, 10u), - completion_handler); - ASIO_CHECK(call_count == 11); -} - -ASIO_TEST_SUITE -( - "bulk_execute", - ASIO_TEST_CASE(test_can_bulk_execute) - ASIO_TEST_CASE(test_bulk_execute) -) diff --git a/3rdparty/asio/src/tests/unit/execution/bulk_guarantee.cpp b/3rdparty/asio/src/tests/unit/execution/bulk_guarantee.cpp deleted file mode 100644 index 3127ff89db3..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/bulk_guarantee.cpp +++ /dev/null @@ -1,1978 +0,0 @@ -// -// bulk_guarantee.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/bulk_guarantee.hpp" - -#include "asio/prefer.hpp" -#include "asio/query.hpp" -#include "asio/require.hpp" -#include "../unit_test.hpp" - -namespace exec = asio::execution; - -typedef exec::bulk_guarantee_t s; -typedef exec::bulk_guarantee_t::unsequenced_t n1; -typedef exec::bulk_guarantee_t::sequenced_t n2; -typedef exec::bulk_guarantee_t::parallel_t n3; - -struct ex_nq_nr -{ - template <typename F> - void execute(const F&) const - { - } - - friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT - { - return true; - } - - friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT - { - return false; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT) - -namespace asio { -namespace execution { - -template <> -struct is_executor<ex_nq_nr> : asio::true_type -{ -}; - -} // namespace execution -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT) - -template <typename ResultType, typename ParamType, typename Result> -struct ex_cq_nr -{ - static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT - { - return Result(); - } - - template <typename F> - void execute(const F&) const - { - } - - friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT - { - return true; - } - - friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT - { - return false; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT) - -namespace asio { -namespace execution { - -template <typename ResultType, typename ParamType, typename Result> -struct is_executor<ex_cq_nr<ResultType, ParamType, Result> > - : asio::true_type -{ -}; - -} // namespace execution -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT) - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT) - -template <typename ResultType, typename ParamType, - typename Result, typename Param> -struct query_static_constexpr_member< - ex_cq_nr<ResultType, ParamType, Result>, Param, - typename asio::enable_if< - asio::is_convertible<Param, ParamType>::value - >::type> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - - typedef Result result_type; // Must return raw result type. - - static ASIO_CONSTEXPR result_type value() - { - return Result(); - } -}; - -#endif // !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -template <typename ResultType, typename ParamType, typename Result> -struct ex_mq_nr -{ - ResultType query(ParamType) const ASIO_NOEXCEPT - { - return Result(); - } - - template <typename F> - void execute(const F&) const - { - } - - friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT - { - return true; - } - - friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT - { - return false; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT) - -namespace asio { -namespace execution { - -template <typename ResultType, typename ParamType, typename Result> -struct is_executor<ex_mq_nr<ResultType, ParamType, Result> > - : asio::true_type -{ -}; - -} // namespace execution -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT) - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) - -template <typename ResultType, typename ParamType, - typename Result, typename Param> -struct query_member< - ex_mq_nr<ResultType, ParamType, Result>, Param, - typename asio::enable_if< - asio::is_convertible<Param, ParamType>::value - >::type> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - - typedef ResultType result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -template <typename ResultType, typename ParamType, typename Result> -struct ex_fq_nr -{ - friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT - { - return Result(); - } - - template <typename F> - void execute(const F&) const - { - } - - friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT - { - return true; - } - - friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT - { - return false; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT) - -namespace asio { -namespace execution { - -template <typename ResultType, typename ParamType, typename Result> -struct is_executor<ex_fq_nr<ResultType, ParamType, Result> > - : asio::true_type -{ -}; - -} // namespace execution -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT) - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT) - -template <typename ResultType, typename ParamType, - typename Result, typename Param> -struct query_free< - ex_fq_nr<ResultType, ParamType, Result>, Param, - typename asio::enable_if< - asio::is_convertible<Param, ParamType>::value - >::type> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - - typedef ResultType result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT) - -} // namespace traits -} // namespace asio - -template <typename CurrentType, typename OtherType> -struct ex_mq_mr -{ - CurrentType query(CurrentType) const ASIO_NOEXCEPT - { - return CurrentType(); - } - - CurrentType query(OtherType) const ASIO_NOEXCEPT - { - return CurrentType(); - } - - ex_mq_mr<CurrentType, OtherType> require( - CurrentType) const ASIO_NOEXCEPT - { - return ex_mq_mr<CurrentType, OtherType>(); - } - - ex_mq_mr<OtherType, CurrentType> require( - OtherType) const ASIO_NOEXCEPT - { - return ex_mq_mr<OtherType, CurrentType>(); - } - - template <typename F> - void execute(const F&) const - { - } - - friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT - { - return true; - } - - friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT - { - return false; - } -}; - -template <typename CurrentType> -struct ex_mq_mr<CurrentType, CurrentType> -{ - CurrentType query(CurrentType) const ASIO_NOEXCEPT - { - return CurrentType(); - } - - ex_mq_mr<CurrentType, CurrentType> require( - CurrentType) const ASIO_NOEXCEPT - { - return ex_mq_mr<CurrentType, CurrentType>(); - } - - template <typename F> - void execute(const F&) const - { - } - - friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT - { - return true; - } - - friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT - { - return false; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT) - -namespace asio { -namespace execution { - -template <typename CurrentType, typename OtherType> -struct is_executor<ex_mq_mr<CurrentType, OtherType> > - : asio::true_type -{ -}; - -} // namespace execution -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT) - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) - -template <typename CurrentType, typename OtherType, typename Param> -struct query_member< - ex_mq_mr<CurrentType, OtherType>, Param, - typename asio::enable_if< - asio::is_convertible<Param, CurrentType>::value - || asio::is_convertible<Param, OtherType>::value - >::type> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - - typedef CurrentType result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) - -template <typename CurrentType, typename OtherType, typename Param> -struct require_member< - ex_mq_mr<CurrentType, OtherType>, Param, - typename asio::enable_if< - asio::is_convertible<Param, CurrentType>::value - >::type> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - - typedef ex_mq_mr<CurrentType, OtherType> result_type; -}; - -template <typename CurrentType, typename OtherType, typename Param> -struct require_member< - ex_mq_mr<CurrentType, OtherType>, Param, - typename asio::enable_if< - asio::is_convertible<Param, OtherType>::value - && !asio::is_same<CurrentType, OtherType>::value - >::type> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - - typedef ex_mq_mr<OtherType, CurrentType> result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -template <typename CurrentType, typename OtherType> -struct ex_fq_fr -{ - friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT - { - return CurrentType(); - } - - friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT - { - return CurrentType(); - } - - friend ex_fq_fr<CurrentType, OtherType> require( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT - { - return ex_fq_fr<CurrentType, OtherType>(); - } - - friend ex_fq_fr<OtherType, CurrentType> require( - const ex_fq_fr&, OtherType) ASIO_NOEXCEPT - { - return ex_fq_fr<OtherType, CurrentType>(); - } - - friend ex_fq_fr<CurrentType, OtherType> prefer( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT - { - return ex_fq_fr<CurrentType, OtherType>(); - } - - friend ex_fq_fr<OtherType, CurrentType> prefer( - const ex_fq_fr&, OtherType) ASIO_NOEXCEPT - { - return ex_fq_fr<OtherType, CurrentType>(); - } - - template <typename F> - void execute(const F&) const - { - } - - friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT - { - return true; - } - - friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT - { - return false; - } -}; - -template <typename CurrentType> -struct ex_fq_fr<CurrentType, CurrentType> -{ - friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT - { - return CurrentType(); - } - - friend ex_fq_fr<CurrentType, CurrentType> require( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT - { - return ex_fq_fr<CurrentType, CurrentType>(); - } - - friend ex_fq_fr<CurrentType, CurrentType> prefer( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT - { - return ex_fq_fr<CurrentType, CurrentType>(); - } - - template <typename F> - void execute(const F&) const - { - } - - friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT - { - return true; - } - - friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT - { - return false; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT) - -namespace asio { -namespace execution { - -template <typename CurrentType, typename OtherType> -struct is_executor<ex_fq_fr<CurrentType, OtherType> > - : asio::true_type -{ -}; - -} // namespace execution -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT) - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT) - -template <typename CurrentType, typename OtherType, typename Param> -struct query_free< - ex_fq_fr<CurrentType, OtherType>, Param, - typename asio::enable_if< - asio::is_convertible<Param, CurrentType>::value - || asio::is_convertible<Param, OtherType>::value - >::type> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - - typedef CurrentType result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT) - -template <typename CurrentType, typename OtherType, typename Param> -struct require_free< - ex_fq_fr<CurrentType, OtherType>, Param, - typename asio::enable_if< - asio::is_convertible<Param, CurrentType>::value - >::type> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - - typedef ex_fq_fr<CurrentType, OtherType> result_type; -}; - -template <typename CurrentType, typename OtherType, typename Param> -struct require_free< - ex_fq_fr<CurrentType, OtherType>, Param, - typename asio::enable_if< - asio::is_convertible<Param, OtherType>::value - && !asio::is_same<CurrentType, OtherType>::value - >::type> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - - typedef ex_fq_fr<OtherType, CurrentType> result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT) - -template <typename CurrentType, typename OtherType, typename Param> -struct prefer_free< - ex_fq_fr<CurrentType, OtherType>, Param, - typename asio::enable_if< - asio::is_convertible<Param, CurrentType>::value - >::type> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - - typedef ex_fq_fr<CurrentType, OtherType> result_type; -}; - -template <typename CurrentType, typename OtherType, typename Param> -struct prefer_free< - ex_fq_fr<CurrentType, OtherType>, Param, - typename asio::enable_if< - asio::is_convertible<Param, OtherType>::value - && !asio::is_same<CurrentType, OtherType>::value - >::type> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - - typedef ex_fq_fr<OtherType, CurrentType> result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT) - -} // namespace traits -} // namespace asio - -template <typename Executor, typename Param, bool ExpectedResult> -void test_can_query() -{ - ASIO_CONSTEXPR bool b1 = - asio::can_query<Executor, Param>::value; - ASIO_CHECK(b1 == ExpectedResult); - - ASIO_CONSTEXPR bool b2 = - asio::can_query<const Executor, Param>::value; - ASIO_CHECK(b2 == ExpectedResult); - - ASIO_CONSTEXPR bool b3 = - asio::can_query<Executor&, Param>::value; - ASIO_CHECK(b3 == ExpectedResult); - - ASIO_CONSTEXPR bool b4 = - asio::can_query<const Executor&, Param>::value; - ASIO_CHECK(b4 == ExpectedResult); -} - -template <typename Executor, typename Param, typename ExpectedResult> -void test_query() -{ - exec::bulk_guarantee_t result1 = asio::query(Executor(), Param()); - ASIO_CHECK(result1 == ExpectedResult()); - - Executor ex1 = {}; - exec::bulk_guarantee_t result2 = asio::query(ex1, Param()); - ASIO_CHECK(result2 == ExpectedResult()); - - const Executor ex2 = {}; - exec::bulk_guarantee_t result3 = asio::query(ex2, Param()); - ASIO_CHECK(result3 == ExpectedResult()); -} - -template <typename Executor, typename Param, typename ExpectedResult> -void test_constexpr_query() -{ -#if defined(ASIO_HAS_CONSTEXPR) - constexpr Executor ex1 = {}; - constexpr exec::bulk_guarantee_t result1 = asio::query(ex1, Param()); - ASIO_CHECK(result1 == ExpectedResult()); -#endif // defined(ASIO_HAS_CONSTEXPR) -} - -template <typename Executor, typename Param, bool ExpectedResult> -void test_can_require() -{ - ASIO_CONSTEXPR bool b1 = - asio::can_require<Executor, Param>::value; - ASIO_CHECK(b1 == ExpectedResult); - - ASIO_CONSTEXPR bool b2 = - asio::can_require<const Executor, Param>::value; - ASIO_CHECK(b2 == ExpectedResult); - - ASIO_CONSTEXPR bool b3 = - asio::can_require<Executor&, Param>::value; - ASIO_CHECK(b3 == ExpectedResult); - - ASIO_CONSTEXPR bool b4 = - asio::can_require<const Executor&, Param>::value; - ASIO_CHECK(b4 == ExpectedResult); -} - -template <typename Executor, typename Param, typename ExpectedResult> -void test_require() -{ - ASIO_CHECK( - asio::query( - asio::require(Executor(), Param()), - Param()) == ExpectedResult()); - - Executor ex1 = {}; - ASIO_CHECK( - asio::query( - asio::require(ex1, Param()), - Param()) == ExpectedResult()); - - const Executor ex2 = {}; - ASIO_CHECK( - asio::query( - asio::require(ex2, Param()), - Param()) == ExpectedResult()); -} - -template <typename Executor, typename Param, bool ExpectedResult> -void test_can_prefer() -{ - ASIO_CONSTEXPR bool b1 = - asio::can_prefer<Executor, Param>::value; - ASIO_CHECK(b1 == ExpectedResult); - - ASIO_CONSTEXPR bool b2 = - asio::can_prefer<const Executor, Param>::value; - ASIO_CHECK(b2 == ExpectedResult); - - ASIO_CONSTEXPR bool b3 = - asio::can_prefer<Executor&, Param>::value; - ASIO_CHECK(b3 == ExpectedResult); - - ASIO_CONSTEXPR bool b4 = - asio::can_prefer<const Executor&, Param>::value; - ASIO_CHECK(b4 == ExpectedResult); -} - -template <typename Executor, typename Param, typename ExpectedResult> -void test_prefer() -{ - ASIO_CHECK( - s(asio::query( - asio::prefer(Executor(), Param()), - s())) == s(ExpectedResult())); - - Executor ex1 = {}; - ASIO_CHECK( - s(asio::query( - asio::prefer(ex1, Param()), - s())) == s(ExpectedResult())); - - const Executor ex2 = {}; - ASIO_CHECK( - s(asio::query( - asio::prefer(ex2, Param()), - s())) == s(ExpectedResult())); -} - -void test_vars() -{ - ASIO_CHECK(s() == exec::bulk_guarantee); - ASIO_CHECK(n1() == exec::bulk_guarantee.unsequenced); - ASIO_CHECK(n2() == exec::bulk_guarantee.sequenced); - ASIO_CHECK(n3() == exec::bulk_guarantee.parallel); -} - -ASIO_TEST_SUITE -( - "bulk_guarantee", - - ASIO_TEST_CASE3(test_can_query<ex_nq_nr, s, true>) - ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n1, true>) - ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n2, false>) - ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n3, false>) - - ASIO_TEST_CASE3(test_query<ex_nq_nr, s, n1>) - ASIO_TEST_CASE3(test_query<ex_nq_nr, n1, n1>) - - ASIO_TEST_CASE3(test_constexpr_query<ex_nq_nr, s, n1>) - ASIO_TEST_CASE3(test_constexpr_query<ex_nq_nr, n1, n1>) - - ASIO_TEST_CASE3(test_can_require<ex_nq_nr, s, false>) - ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n1, true>) - ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n2, false>) - ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n3, false>) - - ASIO_TEST_CASE3(test_require<ex_nq_nr, n1, n1>) - - ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, s, false>) - ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n1, true>) - ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n2, true>) - ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n3, true>) - - ASIO_TEST_CASE3(test_prefer<ex_nq_nr, n1, n1>) - ASIO_TEST_CASE3(test_prefer<ex_nq_nr, n2, n1>) - ASIO_TEST_CASE3(test_prefer<ex_nq_nr, n3, n1>) - - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n3, s, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n3, s, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n3, s, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n3, s, n3>, n3, true>) - - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n3>, n3, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n1>, n1, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n2>, n1, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n3>, n1, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n1>, n2, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n2>, n2, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n3>, n2, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n1>, n3, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n2>, n3, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n3>, n3, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<n3, s, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<n3, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<n3, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_query<ex_cq_nr<n3, s, n3>, n3, n3>) - - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, s, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, s, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n3>, s, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n3>, n3, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n1>, s, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n1>, n1, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n2>, s, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n2>, n1, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n3>, s, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n3>, n1, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n1>, s, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n1>, n2, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n2>, s, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n2>, n2, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n3>, s, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n3>, n2, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n1>, s, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n1>, n3, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n2>, s, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n2>, n3, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n3>, s, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n3>, n3, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, s, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, s, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n3, s, n3>, s, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n3, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n3, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n3, s, n3>, n3, n3>) - - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n3, s, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n3, s, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n3, s, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n3, s, n3>, n3, true>) - - ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n3>, n3, n3>) - ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n1, n1>, n1, n1>) - ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n2, n2>, n2, n2>) - ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n3, n3>, n3, n3>) - ASIO_TEST_CASE5(test_require<ex_cq_nr<n1, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_require<ex_cq_nr<n2, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_require<ex_cq_nr<n3, s, n3>, n3, n3>) - - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n3, s, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n3, s, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n3, s, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n3, s, n3>, n3, true>) - - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n3>, n3, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n3>, n3, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n3>, n3, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n3>, n3, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n1, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n1, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n1, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n2, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n2, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n2, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n3, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n3, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n3, s, n3>, n3, n3>) - - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n3, s, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n3, s, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n3, s, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n3, s, n3>, n3, true>) - - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n3>, n3, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n1>, n1, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n2>, n1, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n3>, n1, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n1>, n2, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n2>, n2, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n3>, n2, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n1>, n3, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n2>, n3, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n3>, n3, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<n3, s, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<n3, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<n3, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_query<ex_mq_nr<n3, s, n3>, n3, n3>) - - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n3, s, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n3, s, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n3, s, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n3, s, n3>, n3, false>) - - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n3, s, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n3, s, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n3, s, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n3, s, n3>, n3, true>) - - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n3>, n3, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n3>, n3, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n3>, n3, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n3>, n3, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n1, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n1, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n1, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n2, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n2, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n2, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n3, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n3, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n3, s, n3>, n3, n3>) - - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n3, s, n3>, s, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n3, s, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n3, s, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n3, s, n3>, n3, true>) - - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n3>, n3, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n1>, n1, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n2>, n1, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n3>, n1, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n1>, n2, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n2>, n2, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n3>, n2, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n1>, n3, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n2>, n3, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n3>, n3, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, s, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, s, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<n3, s, n3>, s, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<n3, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<n3, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_query<ex_fq_nr<n3, s, n3>, n3, n3>) - - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n3>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n3, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n3, s, n3>, s, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n3, s, n3>, n1, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n3, s, n3>, n2, false>) - ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n3, s, n3>, n3, false>) - - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n3>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n3, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n3, s, n3>, s, false>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n3, s, n3>, n1, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n3, s, n3>, n2, true>) - ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n3, s, n3>, n3, true>) - - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n3>, n3, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n3>, n3, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n3>, n3, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n3>, n3, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n1, s, n1>, n1, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n1, s, n1>, n2, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n1, s, n1>, n3, n1>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n2, s, n2>, n1, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n2, s, n2>, n2, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n2, s, n2>, n3, n2>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n3, s, n3>, n1, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n3, s, n3>, n2, n3>) - ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n3, s, n3>, n3, n3>) - - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n2, false>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n3, false>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n1, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n3, false>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n3>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n3>, n1, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n3>, n2, false>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n3>, n3, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n2, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n3, false>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n1, false>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n3, false>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n3>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n3>, n1, false>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n3>, n2, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n3>, n3, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n1>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n1>, n2, false>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n1>, n3, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n2>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n2>, n1, false>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n2>, n3, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n3>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n3>, n1, false>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n3>, n2, false>) - ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n3>, n3, true>) - - ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n1>, s, n1>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n1>, n1, n1>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n2>, s, n1>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n2>, n1, n1>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n3>, s, n1>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n3>, n1, n1>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n1>, s, n2>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n1>, n2, n2>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n2>, s, n2>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n2>, n2, n2>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n3>, s, n2>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n3>, n2, n2>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n1>, s, n3>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n1>, n3, n3>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n2>, s, n3>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n2>, n3, n3>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n3>, s, n3>) - ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n3>, n3, n3>) - - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n2, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n3, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n1, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n3, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n3>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n3>, n1, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n3>, n2, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n3>, n3, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n2, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n3, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n1, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n3, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n3>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n3>, n1, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n3>, n2, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n3>, n3, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n1>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n1>, n2, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n1>, n3, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n2>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n2>, n1, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n2>, n3, true>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n3>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n3>, n1, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n3>, n2, false>) - ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n3>, n3, true>) - - ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n1>, n1, n1>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n2>, n1, n1>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n2>, n2, n2>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n3>, n1, n1>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n3>, n3, n3>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n1>, n1, n1>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n1>, n2, n2>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n2>, n2, n2>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n3>, n2, n2>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n3>, n3, n3>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n1>, n1, n1>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n1>, n3, n3>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n2>, n2, n2>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n2>, n3, n3>) - ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n3>, n3, n3>) - - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n3>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n3>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n3>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n3>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n3>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n3>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n3>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n3>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n1>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n1>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n1>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n2>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n2>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n2>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n3>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n3>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n3>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n3>, n3, true>) - - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n1>, n1, n1>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n1>, n2, n1>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n1>, n3, n1>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n2>, n1, n1>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n2>, n2, n2>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n2>, n3, n1>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n3>, n1, n1>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n3>, n2, n1>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n3>, n3, n3>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n1>, n1, n1>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n1>, n2, n2>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n1>, n3, n2>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n2>, n1, n2>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n2>, n2, n2>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n2>, n3, n2>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n3>, n1, n2>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n3>, n2, n2>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n3>, n3, n3>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n1>, n1, n1>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n1>, n2, n3>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n1>, n3, n3>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n2>, n1, n3>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n2>, n2, n2>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n2>, n3, n3>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n3>, n1, n3>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n3>, n2, n3>) - ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n3>, n3, n3>) - - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n2, false>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n3, false>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n1, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n3, false>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n3>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n3>, n1, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n3>, n2, false>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n3>, n3, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n2, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n3, false>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n1, false>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n3, false>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n3>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n3>, n1, false>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n3>, n2, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n3>, n3, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n1>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n1>, n2, false>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n1>, n3, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n2>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n2>, n1, false>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n2>, n3, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n3>, s, true>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n3>, n1, false>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n3>, n2, false>) - ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n3>, n3, true>) - - ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n1>, s, n1>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n1>, n1, n1>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n2>, s, n1>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n2>, n1, n1>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n3>, s, n1>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n3>, n1, n1>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n1>, s, n2>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n1>, n2, n2>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n2>, s, n2>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n2>, n2, n2>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n3>, s, n2>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n3>, n2, n2>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n1>, s, n3>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n1>, n3, n3>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n2>, s, n3>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n2>, n3, n3>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n3>, s, n3>) - ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n3>, n3, n3>) - - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n2, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n3, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n1, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n3, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n3>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n3>, n1, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n3>, n2, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n3>, n3, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n2, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n3, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n1, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n3, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n3>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n3>, n1, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n3>, n2, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n3>, n3, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n1>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n1>, n2, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n1>, n3, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n2>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n2>, n1, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n2>, n3, true>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n3>, s, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n3>, n1, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n3>, n2, false>) - ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n3>, n3, true>) - - ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n1>, n1, n1>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n2>, n1, n1>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n2>, n2, n2>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n3>, n1, n1>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n3>, n3, n3>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n1>, n1, n1>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n1>, n2, n2>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n2>, n2, n2>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n3>, n2, n2>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n3>, n3, n3>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n1>, n1, n1>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n1>, n3, n3>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n2>, n2, n2>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n2>, n3, n3>) - ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n3>, n3, n3>) - - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n3>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n3>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n3>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n3>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n3>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n3>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n3>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n3>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n1>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n1>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n1>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n1>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n2>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n2>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n2>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n2>, n3, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n3>, s, false>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n3>, n1, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n3>, n2, true>) - ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n3>, n3, true>) - - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n1>, n1, n1>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n1>, n2, n1>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n1>, n3, n1>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n2>, n1, n1>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n2>, n2, n2>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n2>, n3, n1>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n3>, n1, n1>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n3>, n2, n1>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n3>, n3, n3>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n1>, n1, n1>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n1>, n2, n2>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n1>, n3, n2>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n2>, n1, n2>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n2>, n2, n2>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n2>, n3, n2>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n3>, n1, n2>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n3>, n2, n2>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n3>, n3, n3>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n1>, n1, n1>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n1>, n2, n3>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n1>, n3, n3>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n2>, n1, n3>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n2>, n2, n2>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n2>, n3, n3>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n3>, n1, n3>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n3>, n2, n3>) - ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n3>, n3, n3>) - - ASIO_TEST_CASE(test_vars) -) diff --git a/3rdparty/asio/src/tests/unit/execution/connect.cpp b/3rdparty/asio/src/tests/unit/execution/connect.cpp deleted file mode 100644 index 1f32e77cbe8..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/connect.cpp +++ /dev/null @@ -1,481 +0,0 @@ -// -// connect.cpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/connect.hpp" - -#include "asio/error_code.hpp" -#include "../unit_test.hpp" - -namespace exec = asio::execution; - -static int call_count = 0; - -struct operation_state -{ - void start() ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -template <> -struct start_member<operation_state> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct no_connect_1 -{ -}; - -struct no_connect_2 : exec::sender_base -{ -}; - -struct no_connect_3 -{ - template <typename R> - operation_state connect(ASIO_MOVE_ARG(R) r) - { - (void)r; - return operation_state(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <typename R> -struct connect_member<no_connect_3, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -struct const_member_connect : exec::sender_base -{ - const_member_connect() - { - } - - template <typename R> - operation_state connect(ASIO_MOVE_ARG(R) r) const - { - (void)r; - ++call_count; - return operation_state(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <typename R> -struct connect_member<const const_member_connect, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -struct free_connect_const_receiver : exec::sender_base -{ - free_connect_const_receiver() - { - } - - template <typename R> - friend operation_state connect( - const free_connect_const_receiver&, ASIO_MOVE_ARG(R) r) - { - (void)r; - ++call_count; - return operation_state(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <typename R> -struct connect_free<const free_connect_const_receiver, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT) - -struct non_const_member_connect : exec::sender_base -{ - template <typename R> - operation_state connect(ASIO_MOVE_ARG(R) r) - { - (void)r; - ++call_count; - return operation_state(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <typename R> -struct connect_member<non_const_member_connect, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -struct free_connect_non_const_receiver : exec::sender_base -{ - free_connect_non_const_receiver() - { - } - - template <typename R> - friend operation_state connect( - free_connect_non_const_receiver&, ASIO_MOVE_ARG(R) r) - { - (void)r; - ++call_count; - return operation_state(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <typename R> -struct connect_free<free_connect_non_const_receiver, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT) - -struct receiver -{ - receiver() - { - } - - receiver(const receiver&) - { - } - -#if defined(ASIO_HAS_MOVE) - receiver(receiver&&) ASIO_NOEXCEPT - { - } -#endif // defined(ASIO_HAS_MOVE) - - template <typename E> - void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT - { - (void)e; - } - - void set_done() ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -template <typename E> -struct set_error_member<receiver, E> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -template <> -struct set_done_member<receiver> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct executor -{ - executor() - { - } - - executor(const executor&) ASIO_NOEXCEPT - { - } - -#if defined(ASIO_HAS_MOVE) - executor(executor&&) ASIO_NOEXCEPT - { - } -#endif // defined(ASIO_HAS_MOVE) - - template <typename F> - void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT - { - (void)f; - } - - bool operator==(const executor&) const ASIO_NOEXCEPT - { - return true; - } - - bool operator!=(const executor&) const ASIO_NOEXCEPT - { - return false; - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) - -template <typename F> -struct execute_member<executor, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) - -template <> -struct equality_comparable<executor> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); -}; - -#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) - -} // namespace traits -} // namespace asio - -void test_can_connect() -{ - ASIO_CONSTEXPR bool b1 = exec::can_connect< - no_connect_1&, receiver>::value; - ASIO_CHECK(b1 == false); - - ASIO_CONSTEXPR bool b2 = exec::can_connect< - const no_connect_1&, receiver>::value; - ASIO_CHECK(b2 == false); - - ASIO_CONSTEXPR bool b3 = exec::can_connect< - no_connect_2&, receiver>::value; - ASIO_CHECK(b3 == false); - - ASIO_CONSTEXPR bool b4 = exec::can_connect< - const no_connect_2&, receiver>::value; - ASIO_CHECK(b4 == false); - - ASIO_CONSTEXPR bool b5 = exec::can_connect< - no_connect_3&, receiver>::value; - ASIO_CHECK(b5 == false); - - ASIO_CONSTEXPR bool b6 = exec::can_connect< - const no_connect_3&, receiver>::value; - ASIO_CHECK(b6 == false); - - ASIO_CONSTEXPR bool b7 = exec::can_connect< - const_member_connect&, receiver>::value; - ASIO_CHECK(b7 == true); - - ASIO_CONSTEXPR bool b8 = exec::can_connect< - const const_member_connect&, receiver>::value; - ASIO_CHECK(b8 == true); - - ASIO_CONSTEXPR bool b9 = exec::can_connect< - free_connect_const_receiver&, receiver>::value; - ASIO_CHECK(b9 == true); - - ASIO_CONSTEXPR bool b10 = exec::can_connect< - const free_connect_const_receiver&, receiver>::value; - ASIO_CHECK(b10 == true); - - ASIO_CONSTEXPR bool b11 = exec::can_connect< - non_const_member_connect&, receiver>::value; - ASIO_CHECK(b11 == true); - - ASIO_CONSTEXPR bool b12 = exec::can_connect< - const non_const_member_connect&, receiver>::value; - ASIO_CHECK(b12 == false); - - ASIO_CONSTEXPR bool b13 = exec::can_connect< - free_connect_non_const_receiver&, receiver>::value; - ASIO_CHECK(b13 == true); - - ASIO_CONSTEXPR bool b14 = exec::can_connect< - const free_connect_non_const_receiver&, receiver>::value; - ASIO_CHECK(b14 == false); - - ASIO_CONSTEXPR bool b15 = exec::can_connect< - executor&, receiver>::value; - ASIO_CHECK(b15 == true); - - ASIO_CONSTEXPR bool b16 = exec::can_connect< - const executor&, receiver>::value; - ASIO_CHECK(b16 == true); -} - -void increment(int* count) -{ - ++(*count); -} - -void test_connect() -{ - receiver r; - - call_count = 0; - const_member_connect s1; - operation_state o1 = exec::connect(s1, r); - ASIO_CHECK(call_count == 1); - (void)o1; - - call_count = 0; - const const_member_connect s2; - operation_state o2 = exec::connect(s2, r); - ASIO_CHECK(call_count == 1); - (void)o2; - - call_count = 0; - operation_state o3 = exec::connect(const_member_connect(), r); - ASIO_CHECK(call_count == 1); - (void)o3; - - call_count = 0; - free_connect_const_receiver s3; - operation_state o4 = exec::connect(s3, r); - ASIO_CHECK(call_count == 1); - (void)o4; - - call_count = 0; - const free_connect_const_receiver s4; - operation_state o5 = exec::connect(s4, r); - ASIO_CHECK(call_count == 1); - (void)o5; - - call_count = 0; - operation_state o6 = exec::connect(free_connect_const_receiver(), r); - ASIO_CHECK(call_count == 1); - (void)o6; - - call_count = 0; - non_const_member_connect s5; - operation_state o7 = exec::connect(s5, r); - ASIO_CHECK(call_count == 1); - (void)o7; - - call_count = 0; - free_connect_non_const_receiver s6; - operation_state o8 = exec::connect(s6, r); - ASIO_CHECK(call_count == 1); - (void)o8; - - executor s7; - exec::connect_result<executor&, - receiver&>::type o9 = exec::connect(s7, r); - ASIO_CHECK(( - exec::is_operation_state< - exec::connect_result<executor&, receiver&>::type - >::value)); - (void)o9; - - const executor s8; - exec::connect_result<const executor&, - receiver&>::type o10 = exec::connect(s8, r); - (void)exec::connect(s8, r); - ASIO_CHECK(( - exec::is_operation_state< - exec::connect_result<const executor&, receiver&>::type - >::value)); - (void)o10; -} - -ASIO_TEST_SUITE -( - "connect", - ASIO_TEST_CASE(test_can_connect) - ASIO_TEST_CASE(test_connect) -) diff --git a/3rdparty/asio/src/tests/unit/execution/context_as.cpp b/3rdparty/asio/src/tests/unit/execution/context_as.cpp index d2bd956c1c9..13311ba262b 100644 --- a/3rdparty/asio/src/tests/unit/execution/context_as.cpp +++ b/3rdparty/asio/src/tests/unit/execution/context_as.cpp @@ -2,7 +2,7 @@ // context_as.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,24 +16,14 @@ // Test that header file is self-contained. #include "asio/execution/context_as.hpp" +#include <functional> #include "asio/execution/any_executor.hpp" #include "asio/io_context.hpp" #include "asio/static_thread_pool.hpp" #include "../unit_test.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - using namespace asio; - -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif void context_as_executor_query_test() { diff --git a/3rdparty/asio/src/tests/unit/execution/execute.cpp b/3rdparty/asio/src/tests/unit/execution/execute.cpp deleted file mode 100644 index 409233ed0e6..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/execute.cpp +++ /dev/null @@ -1,388 +0,0 @@ -// -// execute.cpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/execute.hpp" -#include "asio/execution/sender.hpp" -#include "asio/execution/submit.hpp" - -#include "asio/execution/invocable_archetype.hpp" -#include "../unit_test.hpp" - -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - -namespace exec = asio::execution; - -struct no_execute -{ -}; - -struct const_member_execute -{ - template <typename F> - void execute(ASIO_MOVE_ARG(F) f) const - { - typename asio::decay<F>::type tmp(ASIO_MOVE_CAST(F)(f)); - tmp(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <typename F> -struct execute_member<const_member_execute, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) - -struct free_execute_const_executor -{ - template <typename F> - friend void execute(const free_execute_const_executor&, - ASIO_MOVE_ARG(F) f) - { - typename asio::decay<F>::type tmp(ASIO_MOVE_CAST(F)(f)); - tmp(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_EXECUTE_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <typename F> -struct execute_free<free_execute_const_executor, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_FREE_TRAIT) - -#if defined(ASIO_HAS_MOVE) - -// Support for rvalue references is required in order to use the execute -// customisation point with non-const member functions and free functions -// taking non-const arguments. - -struct non_const_member_execute -{ - template <typename F> - void execute(ASIO_MOVE_ARG(F) f) - { - typename asio::decay<F>::type tmp(ASIO_MOVE_CAST(F)(f)); - tmp(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <typename F> -struct execute_member<non_const_member_execute, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -template <typename F> -struct execute_member<const non_const_member_execute, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = false); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -template <typename F> -struct execute_member<const non_const_member_execute&, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = false); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) - -struct free_execute_non_const_executor -{ - template <typename F> - friend void execute(free_execute_non_const_executor&, - ASIO_MOVE_ARG(F) f) - { - typename asio::decay<F>::type tmp(ASIO_MOVE_CAST(F)(f)); - tmp(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_EXECUTE_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <typename F> -struct execute_free<free_execute_non_const_executor, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -template <typename F> -struct execute_free<const free_execute_non_const_executor, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = false); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -template <typename F> -struct execute_free<const free_execute_non_const_executor&, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = false); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_FREE_TRAIT) - -#endif // defined(ASIO_HAS_MOVE) - -struct operation_state -{ - void start() ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -template <> -struct start_member<operation_state> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct sender : exec::sender_base -{ - sender() - { - } - - template <typename R> - operation_state connect(ASIO_MOVE_ARG(R) r) const - { - (void)r; - return operation_state(); - } - - template <typename R> - void submit(ASIO_MOVE_ARG(R) r) const - { - exec::set_value(ASIO_MOVE_CAST(R)(r)); - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -template <typename R> -struct connect_member<const sender, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT) - -template <typename R> -struct submit_member<const sender, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -void test_can_execute() -{ - ASIO_CONSTEXPR bool b1 = exec::can_execute< - no_execute&, exec::invocable_archetype>::value; - ASIO_CHECK(b1 == false); - - ASIO_CONSTEXPR bool b2 = exec::can_execute< - const no_execute&, exec::invocable_archetype>::value; - ASIO_CHECK(b2 == false); - - ASIO_CONSTEXPR bool b3 = exec::can_execute< - const_member_execute&, exec::invocable_archetype>::value; - ASIO_CHECK(b3 == true); - - ASIO_CONSTEXPR bool b4 = exec::can_execute< - const const_member_execute&, exec::invocable_archetype>::value; - ASIO_CHECK(b4 == true); - - ASIO_CONSTEXPR bool b5 = exec::can_execute< - free_execute_const_executor&, exec::invocable_archetype>::value; - ASIO_CHECK(b5 == true); - - ASIO_CONSTEXPR bool b6 = exec::can_execute< - const free_execute_const_executor&, exec::invocable_archetype>::value; - ASIO_CHECK(b6 == true); - -#if defined(ASIO_HAS_MOVE) - ASIO_CONSTEXPR bool b7 = exec::can_execute< - non_const_member_execute&, exec::invocable_archetype>::value; - ASIO_CHECK(b7 == true); - - ASIO_CONSTEXPR bool b8 = exec::can_execute< - const non_const_member_execute&, exec::invocable_archetype>::value; - ASIO_CHECK(b8 == false); - - ASIO_CONSTEXPR bool b9 = exec::can_execute< - free_execute_non_const_executor&, exec::invocable_archetype>::value; - ASIO_CHECK(b9 == true); - - ASIO_CONSTEXPR bool b10 = exec::can_execute< - const free_execute_non_const_executor&, exec::invocable_archetype>::value; - ASIO_CHECK(b10 == false); -#endif // defined(ASIO_HAS_MOVE) - - ASIO_CONSTEXPR bool b11 = exec::can_execute< - sender&, exec::invocable_archetype>::value; - ASIO_CHECK(b11 == true); - - ASIO_CONSTEXPR bool b12 = exec::can_execute< - const sender&, exec::invocable_archetype>::value; - ASIO_CHECK(b12 == true); -} - -void increment(int* count) -{ - ++(*count); -} - -void test_execute() -{ -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) - namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) - - int count = 0; - const_member_execute ex1 = {}; - exec::execute(ex1, bindns::bind(&increment, &count)); - ASIO_CHECK(count == 1); - - count = 0; - const const_member_execute ex2 = {}; - exec::execute(ex2, bindns::bind(&increment, &count)); - ASIO_CHECK(count == 1); - - count = 0; - exec::execute(const_member_execute(), bindns::bind(&increment, &count)); - ASIO_CHECK(count == 1); - - count = 0; - free_execute_const_executor ex3 = {}; - exec::execute(ex3, bindns::bind(&increment, &count)); - ASIO_CHECK(count == 1); - - count = 0; - const free_execute_const_executor ex4 = {}; - exec::execute(ex4, bindns::bind(&increment, &count)); - ASIO_CHECK(count == 1); - - count = 0; - exec::execute(free_execute_const_executor(), - bindns::bind(&increment, &count)); - ASIO_CHECK(count == 1); - -#if defined(ASIO_HAS_MOVE) - count = 0; - non_const_member_execute ex5 = {}; - exec::execute(ex5, bindns::bind(&increment, &count)); - ASIO_CHECK(count == 1); - - count = 0; - free_execute_non_const_executor ex6 = {}; - exec::execute(ex6, bindns::bind(&increment, &count)); - ASIO_CHECK(count == 1); -#endif // defined(ASIO_HAS_MOVE) - - count = 0; - sender ex7; - exec::execute(ex3, bindns::bind(&increment, &count)); - ASIO_CHECK(count == 1); - - count = 0; - const sender ex8; - exec::execute(ex4, bindns::bind(&increment, &count)); - ASIO_CHECK(count == 1); -} - -ASIO_TEST_SUITE -( - "blocking", - ASIO_TEST_CASE(test_can_execute) - ASIO_TEST_CASE(test_execute) -) diff --git a/3rdparty/asio/src/tests/unit/execution/executor.cpp b/3rdparty/asio/src/tests/unit/execution/executor.cpp index 497c5835684..8b02622bdca 100644 --- a/3rdparty/asio/src/tests/unit/execution/executor.cpp +++ b/3rdparty/asio/src/tests/unit/execution/executor.cpp @@ -2,7 +2,7 @@ // executor.cpp // ~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -28,28 +28,26 @@ struct executor { } - executor(const executor&) ASIO_NOEXCEPT + executor(const executor&) noexcept { } -#if defined(ASIO_HAS_MOVE) - executor(executor&&) ASIO_NOEXCEPT + executor(executor&&) noexcept { } -#endif // defined(ASIO_HAS_MOVE) template <typename F> - void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT + void execute(F&& f) const noexcept { (void)f; } - bool operator==(const executor&) const ASIO_NOEXCEPT + bool operator==(const executor&) const noexcept { return true; } - bool operator!=(const executor&) const ASIO_NOEXCEPT + bool operator!=(const executor&) const noexcept { return false; } @@ -63,8 +61,8 @@ namespace traits { template <typename F> struct execute_member<executor, F> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef void result_type; }; @@ -74,8 +72,8 @@ struct execute_member<executor, F> template <> struct equality_comparable<executor> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; }; #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) @@ -101,84 +99,8 @@ void is_executor_test() >::value)); } -void is_executor_of_test() -{ - ASIO_CHECK(( - !asio::execution::is_executor_of< - void, - void(*)() - >::value)); - - ASIO_CHECK(( - !asio::execution::is_executor_of< - not_an_executor, - void(*)() - >::value)); - - ASIO_CHECK(( - asio::execution::is_executor_of< - executor, - void(*)() - >::value)); -} - -struct executor_with_other_shape_type -{ - typedef double shape_type; -}; - -void executor_shape_test() -{ - ASIO_CHECK(( - asio::is_same< - asio::execution::executor_shape<executor>::type, - std::size_t - >::value)); - - ASIO_CHECK(( - asio::is_same< - asio::execution::executor_shape< - executor_with_other_shape_type - >::type, - double - >::value)); -} - -struct executor_with_other_index_type -{ - typedef unsigned char index_type; -}; - -void executor_index_test() -{ - ASIO_CHECK(( - asio::is_same< - asio::execution::executor_index<executor>::type, - std::size_t - >::value)); - - ASIO_CHECK(( - asio::is_same< - asio::execution::executor_index< - executor_with_other_shape_type - >::type, - double - >::value)); - - ASIO_CHECK(( - asio::is_same< - asio::execution::executor_index< - executor_with_other_index_type - >::type, - unsigned char - >::value)); -} - ASIO_TEST_SUITE ( "executor", ASIO_TEST_CASE(is_executor_test) - ASIO_TEST_CASE(is_executor_of_test) - ASIO_TEST_CASE(executor_shape_test) - ASIO_TEST_CASE(executor_index_test) ) diff --git a/3rdparty/asio/src/tests/unit/execution/invocable_archetype.cpp b/3rdparty/asio/src/tests/unit/execution/invocable_archetype.cpp index 7ef66d9cdd2..5dbfb94d9f4 100644 --- a/3rdparty/asio/src/tests/unit/execution/invocable_archetype.cpp +++ b/3rdparty/asio/src/tests/unit/execution/invocable_archetype.cpp @@ -2,7 +2,7 @@ // invocable_archetype.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/execution/mapping.cpp b/3rdparty/asio/src/tests/unit/execution/mapping.cpp index ca2deefe0ad..399aae3ea90 100644 --- a/3rdparty/asio/src/tests/unit/execution/mapping.cpp +++ b/3rdparty/asio/src/tests/unit/execution/mapping.cpp @@ -2,7 +2,7 @@ // mapping.cpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -35,12 +35,12 @@ struct ex_nq_nr { } - friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) noexcept { return true; } - friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) noexcept { return false; } @@ -64,7 +64,7 @@ struct is_executor<ex_nq_nr> : asio::true_type template <typename ResultType, typename ParamType, typename Result> struct ex_cq_nr { - static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT + static constexpr ResultType query(ParamType) noexcept { return Result(); } @@ -74,12 +74,12 @@ struct ex_cq_nr { } - friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) noexcept { return true; } - friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) noexcept { return false; } @@ -114,12 +114,12 @@ struct query_static_constexpr_member< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef Result result_type; // Must return raw result type. - static ASIO_CONSTEXPR result_type value() + static constexpr result_type value() { return Result(); } @@ -133,7 +133,7 @@ struct query_static_constexpr_member< template <typename ResultType, typename ParamType, typename Result> struct ex_mq_nr { - ResultType query(ParamType) const ASIO_NOEXCEPT + ResultType query(ParamType) const noexcept { return Result(); } @@ -143,12 +143,12 @@ struct ex_mq_nr { } - friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) noexcept { return true; } - friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) noexcept { return false; } @@ -183,8 +183,8 @@ struct query_member< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ResultType result_type; }; @@ -197,7 +197,7 @@ struct query_member< template <typename ResultType, typename ParamType, typename Result> struct ex_fq_nr { - friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT + friend ResultType query(const ex_fq_nr&, ParamType) noexcept { return Result(); } @@ -207,12 +207,12 @@ struct ex_fq_nr { } - friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) noexcept { return true; } - friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) noexcept { return false; } @@ -247,8 +247,8 @@ struct query_free< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ResultType result_type; }; @@ -261,24 +261,24 @@ struct query_free< template <typename CurrentType, typename OtherType> struct ex_mq_mr { - CurrentType query(CurrentType) const ASIO_NOEXCEPT + CurrentType query(CurrentType) const noexcept { return CurrentType(); } - CurrentType query(OtherType) const ASIO_NOEXCEPT + CurrentType query(OtherType) const noexcept { return CurrentType(); } ex_mq_mr<CurrentType, OtherType> require( - CurrentType) const ASIO_NOEXCEPT + CurrentType) const noexcept { return ex_mq_mr<CurrentType, OtherType>(); } ex_mq_mr<OtherType, CurrentType> require( - OtherType) const ASIO_NOEXCEPT + OtherType) const noexcept { return ex_mq_mr<OtherType, CurrentType>(); } @@ -288,12 +288,12 @@ struct ex_mq_mr { } - friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept { return true; } - friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept { return false; } @@ -302,13 +302,13 @@ struct ex_mq_mr template <typename CurrentType> struct ex_mq_mr<CurrentType, CurrentType> { - CurrentType query(CurrentType) const ASIO_NOEXCEPT + CurrentType query(CurrentType) const noexcept { return CurrentType(); } ex_mq_mr<CurrentType, CurrentType> require( - CurrentType) const ASIO_NOEXCEPT + CurrentType) const noexcept { return ex_mq_mr<CurrentType, CurrentType>(); } @@ -318,12 +318,12 @@ struct ex_mq_mr<CurrentType, CurrentType> { } - friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept { return true; } - friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept { return false; } @@ -358,8 +358,8 @@ struct query_member< || asio::is_convertible<Param, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef CurrentType result_type; }; @@ -375,8 +375,8 @@ struct require_member< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_mq_mr<CurrentType, OtherType> result_type; }; @@ -389,8 +389,8 @@ struct require_member< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_mq_mr<OtherType, CurrentType> result_type; }; @@ -403,36 +403,36 @@ struct require_member< template <typename CurrentType, typename OtherType> struct ex_fq_fr { - friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept { return CurrentType(); } - friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, OtherType) noexcept { return CurrentType(); } friend ex_fq_fr<CurrentType, OtherType> require( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, OtherType>(); } friend ex_fq_fr<OtherType, CurrentType> require( - const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + const ex_fq_fr&, OtherType) noexcept { return ex_fq_fr<OtherType, CurrentType>(); } friend ex_fq_fr<CurrentType, OtherType> prefer( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, OtherType>(); } friend ex_fq_fr<OtherType, CurrentType> prefer( - const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + const ex_fq_fr&, OtherType) noexcept { return ex_fq_fr<OtherType, CurrentType>(); } @@ -442,12 +442,12 @@ struct ex_fq_fr { } - friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept { return true; } - friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept { return false; } @@ -456,19 +456,19 @@ struct ex_fq_fr template <typename CurrentType> struct ex_fq_fr<CurrentType, CurrentType> { - friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept { return CurrentType(); } friend ex_fq_fr<CurrentType, CurrentType> require( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, CurrentType>(); } friend ex_fq_fr<CurrentType, CurrentType> prefer( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, CurrentType>(); } @@ -478,12 +478,12 @@ struct ex_fq_fr<CurrentType, CurrentType> { } - friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept { return true; } - friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept { return false; } @@ -518,8 +518,8 @@ struct query_free< || asio::is_convertible<Param, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef CurrentType result_type; }; @@ -535,8 +535,8 @@ struct require_free< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<CurrentType, OtherType> result_type; }; @@ -549,8 +549,8 @@ struct require_free< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<OtherType, CurrentType> result_type; }; @@ -566,8 +566,8 @@ struct prefer_free< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<CurrentType, OtherType> result_type; }; @@ -580,8 +580,8 @@ struct prefer_free< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<OtherType, CurrentType> result_type; }; @@ -594,19 +594,19 @@ struct prefer_free< template <typename Executor, typename Param, bool ExpectedResult> void test_can_query() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_query<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_query<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_query<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_query<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -629,29 +629,27 @@ void test_query() template <typename Executor, typename Param, typename ExpectedResult> void test_constexpr_query() { -#if defined(ASIO_HAS_CONSTEXPR) constexpr Executor ex1 = {}; constexpr exec::mapping_t result1 = asio::query(ex1, Param()); ASIO_CHECK(result1 == ExpectedResult()); -#endif // defined(ASIO_HAS_CONSTEXPR) } template <typename Executor, typename Param, bool ExpectedResult> void test_can_require() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_require<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_require<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_require<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_require<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -680,19 +678,19 @@ void test_require() template <typename Executor, typename Param, bool ExpectedResult> void test_can_prefer() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_prefer<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_prefer<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_prefer<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_prefer<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -721,9 +719,18 @@ void test_prefer() void test_vars() { ASIO_CHECK(s() == exec::mapping); + ASIO_CHECK(s() != exec::mapping.thread); + ASIO_CHECK(s() != exec::mapping.new_thread); + ASIO_CHECK(s() != exec::mapping.other); ASIO_CHECK(n1() == exec::mapping.thread); + ASIO_CHECK(n1() != exec::mapping.new_thread); + ASIO_CHECK(n1() != exec::mapping.other); ASIO_CHECK(n2() == exec::mapping.new_thread); + ASIO_CHECK(n2() != exec::mapping.thread); + ASIO_CHECK(n2() != exec::mapping.other); ASIO_CHECK(n3() == exec::mapping.other); + ASIO_CHECK(n3() != exec::mapping.thread); + ASIO_CHECK(n3() != exec::mapping.new_thread); } ASIO_TEST_SUITE diff --git a/3rdparty/asio/src/tests/unit/execution/operation_state.cpp b/3rdparty/asio/src/tests/unit/execution/operation_state.cpp deleted file mode 100644 index d492816a158..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/operation_state.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// -// operation_state.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/operation_state.hpp" - -#include <string> -#include "asio/error_code.hpp" -#include "../unit_test.hpp" - -struct not_an_operation_state_1 -{ -}; - -struct not_an_operation_state_2 -{ - void start() - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -template <> -struct start_member<not_an_operation_state_2> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct operation_state -{ - void start() ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -template <> -struct start_member<operation_state> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -void is_operation_state_test() -{ - ASIO_CHECK(( - !asio::execution::is_operation_state< - void - >::value)); - - ASIO_CHECK(( - !asio::execution::is_operation_state< - not_an_operation_state_1 - >::value)); - - ASIO_CHECK(( - !asio::execution::is_operation_state< - not_an_operation_state_2 - >::value)); - - ASIO_CHECK(( - asio::execution::is_operation_state< - operation_state - >::value)); -} - -ASIO_TEST_SUITE -( - "operation_state", - ASIO_TEST_CASE(is_operation_state_test) -) diff --git a/3rdparty/asio/src/tests/unit/execution/outstanding_work.cpp b/3rdparty/asio/src/tests/unit/execution/outstanding_work.cpp index 3546a6b1d6a..cddd0b52c23 100644 --- a/3rdparty/asio/src/tests/unit/execution/outstanding_work.cpp +++ b/3rdparty/asio/src/tests/unit/execution/outstanding_work.cpp @@ -2,7 +2,7 @@ // outstanding_work.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -34,12 +34,12 @@ struct ex_nq_nr { } - friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) noexcept { return true; } - friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) noexcept { return false; } @@ -63,7 +63,7 @@ struct is_executor<ex_nq_nr> : asio::true_type template <typename ResultType, typename ParamType, typename Result> struct ex_cq_nr { - static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT + static constexpr ResultType query(ParamType) noexcept { return Result(); } @@ -73,12 +73,12 @@ struct ex_cq_nr { } - friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) noexcept { return true; } - friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) noexcept { return false; } @@ -113,12 +113,12 @@ struct query_static_constexpr_member< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef Result result_type; // Must return raw result type. - static ASIO_CONSTEXPR result_type value() + static constexpr result_type value() { return Result(); } @@ -132,7 +132,7 @@ struct query_static_constexpr_member< template <typename ResultType, typename ParamType, typename Result> struct ex_mq_nr { - ResultType query(ParamType) const ASIO_NOEXCEPT + ResultType query(ParamType) const noexcept { return Result(); } @@ -142,12 +142,12 @@ struct ex_mq_nr { } - friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) noexcept { return true; } - friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) noexcept { return false; } @@ -182,8 +182,8 @@ struct query_member< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ResultType result_type; }; @@ -196,7 +196,7 @@ struct query_member< template <typename ResultType, typename ParamType, typename Result> struct ex_fq_nr { - friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT + friend ResultType query(const ex_fq_nr&, ParamType) noexcept { return Result(); } @@ -206,12 +206,12 @@ struct ex_fq_nr { } - friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) noexcept { return true; } - friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) noexcept { return false; } @@ -246,8 +246,8 @@ struct query_free< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ResultType result_type; }; @@ -260,24 +260,24 @@ struct query_free< template <typename CurrentType, typename OtherType> struct ex_mq_mr { - CurrentType query(CurrentType) const ASIO_NOEXCEPT + CurrentType query(CurrentType) const noexcept { return CurrentType(); } - CurrentType query(OtherType) const ASIO_NOEXCEPT + CurrentType query(OtherType) const noexcept { return CurrentType(); } ex_mq_mr<CurrentType, OtherType> require( - CurrentType) const ASIO_NOEXCEPT + CurrentType) const noexcept { return ex_mq_mr<CurrentType, OtherType>(); } ex_mq_mr<OtherType, CurrentType> require( - OtherType) const ASIO_NOEXCEPT + OtherType) const noexcept { return ex_mq_mr<OtherType, CurrentType>(); } @@ -287,12 +287,12 @@ struct ex_mq_mr { } - friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept { return true; } - friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept { return false; } @@ -301,13 +301,13 @@ struct ex_mq_mr template <typename CurrentType> struct ex_mq_mr<CurrentType, CurrentType> { - CurrentType query(CurrentType) const ASIO_NOEXCEPT + CurrentType query(CurrentType) const noexcept { return CurrentType(); } ex_mq_mr<CurrentType, CurrentType> require( - CurrentType) const ASIO_NOEXCEPT + CurrentType) const noexcept { return ex_mq_mr<CurrentType, CurrentType>(); } @@ -317,12 +317,12 @@ struct ex_mq_mr<CurrentType, CurrentType> { } - friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept { return true; } - friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept { return false; } @@ -357,8 +357,8 @@ struct query_member< || asio::is_convertible<Param, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef CurrentType result_type; }; @@ -374,8 +374,8 @@ struct require_member< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_mq_mr<CurrentType, OtherType> result_type; }; @@ -388,8 +388,8 @@ struct require_member< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_mq_mr<OtherType, CurrentType> result_type; }; @@ -402,36 +402,36 @@ struct require_member< template <typename CurrentType, typename OtherType> struct ex_fq_fr { - friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept { return CurrentType(); } - friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, OtherType) noexcept { return CurrentType(); } friend ex_fq_fr<CurrentType, OtherType> require( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, OtherType>(); } friend ex_fq_fr<OtherType, CurrentType> require( - const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + const ex_fq_fr&, OtherType) noexcept { return ex_fq_fr<OtherType, CurrentType>(); } friend ex_fq_fr<CurrentType, OtherType> prefer( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, OtherType>(); } friend ex_fq_fr<OtherType, CurrentType> prefer( - const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + const ex_fq_fr&, OtherType) noexcept { return ex_fq_fr<OtherType, CurrentType>(); } @@ -441,12 +441,12 @@ struct ex_fq_fr { } - friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept { return true; } - friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept { return false; } @@ -455,19 +455,19 @@ struct ex_fq_fr template <typename CurrentType> struct ex_fq_fr<CurrentType, CurrentType> { - friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept { return CurrentType(); } friend ex_fq_fr<CurrentType, CurrentType> require( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, CurrentType>(); } friend ex_fq_fr<CurrentType, CurrentType> prefer( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, CurrentType>(); } @@ -477,12 +477,12 @@ struct ex_fq_fr<CurrentType, CurrentType> { } - friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept { return true; } - friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept { return false; } @@ -517,8 +517,8 @@ struct query_free< || asio::is_convertible<Param, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef CurrentType result_type; }; @@ -534,8 +534,8 @@ struct require_free< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<CurrentType, OtherType> result_type; }; @@ -548,8 +548,8 @@ struct require_free< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<OtherType, CurrentType> result_type; }; @@ -565,8 +565,8 @@ struct prefer_free< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<CurrentType, OtherType> result_type; }; @@ -579,8 +579,8 @@ struct prefer_free< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<OtherType, CurrentType> result_type; }; @@ -593,19 +593,19 @@ struct prefer_free< template <typename Executor, typename Param, bool ExpectedResult> void test_can_query() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_query<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_query<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_query<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_query<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -628,29 +628,27 @@ void test_query() template <typename Executor, typename Param, typename ExpectedResult> void test_constexpr_query() { -#if defined(ASIO_HAS_CONSTEXPR) constexpr Executor ex1 = {}; constexpr exec::outstanding_work_t result1 = asio::query(ex1, Param()); ASIO_CHECK(result1 == ExpectedResult()); -#endif // defined(ASIO_HAS_CONSTEXPR) } template <typename Executor, typename Param, bool ExpectedResult> void test_can_require() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_require<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_require<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_require<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_require<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -679,19 +677,19 @@ void test_require() template <typename Executor, typename Param, bool ExpectedResult> void test_can_prefer() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_prefer<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_prefer<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_prefer<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_prefer<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -720,8 +718,12 @@ void test_prefer() void test_vars() { ASIO_CHECK(s() == exec::outstanding_work); + ASIO_CHECK(s() != exec::outstanding_work.untracked); + ASIO_CHECK(s() != exec::outstanding_work.tracked); ASIO_CHECK(n1() == exec::outstanding_work.untracked); + ASIO_CHECK(n1() != exec::outstanding_work.tracked); ASIO_CHECK(n2() == exec::outstanding_work.tracked); + ASIO_CHECK(n2() != exec::outstanding_work.untracked); } ASIO_TEST_SUITE diff --git a/3rdparty/asio/src/tests/unit/execution/prefer_only.cpp b/3rdparty/asio/src/tests/unit/execution/prefer_only.cpp index d7467d81114..60500002475 100644 --- a/3rdparty/asio/src/tests/unit/execution/prefer_only.cpp +++ b/3rdparty/asio/src/tests/unit/execution/prefer_only.cpp @@ -2,7 +2,7 @@ // prefer_only.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,22 +16,12 @@ // Test that header file is self-contained. #include "asio/execution/prefer_only.hpp" +#include <functional> #include "asio/execution/any_executor.hpp" #include "../unit_test.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - using namespace asio; - -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif static int possibly_blocking_count = 0; static int never_blocking_count = 0; @@ -45,13 +35,13 @@ struct possibly_blocking_executor } friend bool operator==(const possibly_blocking_executor&, - const possibly_blocking_executor&) ASIO_NOEXCEPT + const possibly_blocking_executor&) noexcept { return true; } friend bool operator!=(const possibly_blocking_executor&, - const possibly_blocking_executor&) ASIO_NOEXCEPT + const possibly_blocking_executor&) noexcept { return false; } @@ -65,8 +55,8 @@ namespace traits { template <typename F> struct execute_member<possibly_blocking_executor, F> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef void result_type; }; @@ -77,8 +67,8 @@ struct execute_member<possibly_blocking_executor, F> template <> struct equality_comparable<possibly_blocking_executor> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; }; #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) @@ -88,8 +78,8 @@ struct equality_comparable<possibly_blocking_executor> struct never_blocking_executor { - static ASIO_CONSTEXPR execution::blocking_t::never_t - query(execution::blocking_t) ASIO_NOEXCEPT + static constexpr execution::blocking_t::never_t + query(execution::blocking_t) noexcept { return execution::blocking_t::never_t(); } @@ -101,13 +91,13 @@ struct never_blocking_executor } friend bool operator==(const never_blocking_executor&, - const never_blocking_executor&) ASIO_NOEXCEPT + const never_blocking_executor&) noexcept { return true; } friend bool operator!=(const never_blocking_executor&, - const never_blocking_executor&) ASIO_NOEXCEPT + const never_blocking_executor&) noexcept { return false; } @@ -121,8 +111,8 @@ namespace traits { template <typename F> struct execute_member<never_blocking_executor, F> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef void result_type; }; @@ -133,8 +123,8 @@ struct execute_member<never_blocking_executor, F> template <> struct equality_comparable<never_blocking_executor> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; }; #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) @@ -148,12 +138,12 @@ struct query_static_constexpr_member< asio::is_convertible<Param, execution::blocking_t>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef execution::blocking_t::never_t result_type; - static ASIO_CONSTEXPR result_type value() + static constexpr result_type value() { return result_type(); } @@ -173,7 +163,7 @@ struct either_blocking_executor { } - execution::blocking_t query(execution::blocking_t) const ASIO_NOEXCEPT + execution::blocking_t query(execution::blocking_t) const noexcept { return blocking_; } @@ -198,13 +188,13 @@ struct either_blocking_executor } friend bool operator==(const either_blocking_executor& a, - const either_blocking_executor& b) ASIO_NOEXCEPT + const either_blocking_executor& b) noexcept { return a.blocking_ == b.blocking_; } friend bool operator!=(const either_blocking_executor& a, - const either_blocking_executor& b) ASIO_NOEXCEPT + const either_blocking_executor& b) noexcept { return a.blocking_ != b.blocking_; } @@ -218,8 +208,8 @@ namespace traits { template <typename F> struct execute_member<either_blocking_executor, F> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef void result_type; }; @@ -230,8 +220,8 @@ struct execute_member<either_blocking_executor, F> template <> struct equality_comparable<either_blocking_executor> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; }; #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) @@ -245,8 +235,8 @@ struct query_member< asio::is_convertible<Param, execution::blocking_t>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef execution::blocking_t result_type; }; @@ -262,8 +252,8 @@ struct require_member< asio::is_convertible<Param, execution::blocking_t>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = false; typedef either_blocking_executor result_type; }; @@ -464,73 +454,73 @@ void prefer_only_executor_execute_test() executor_type ex1 = possibly_blocking_executor(); - execution::execute(ex1, &do_nothing); + ex1.execute(&do_nothing); ASIO_CHECK(possibly_blocking_count == 1); ASIO_CHECK(never_blocking_count == 0); executor_type ex2 = asio::prefer(ex1, execution::blocking.possibly); - execution::execute(ex2, &do_nothing); + ex2.execute(&do_nothing); ASIO_CHECK(possibly_blocking_count == 2); ASIO_CHECK(never_blocking_count == 0); executor_type ex3 = asio::prefer(ex1, execution::blocking.never); - execution::execute(ex3, &do_nothing); + ex3.execute(&do_nothing); ASIO_CHECK(possibly_blocking_count == 3); ASIO_CHECK(never_blocking_count == 0); executor_type ex4 = never_blocking_executor(); - execution::execute(ex4, &do_nothing); + ex4.execute(&do_nothing); ASIO_CHECK(possibly_blocking_count == 3); ASIO_CHECK(never_blocking_count == 1); executor_type ex5 = asio::prefer(ex4, execution::blocking.possibly); - execution::execute(ex5, &do_nothing); + ex5.execute(&do_nothing); ASIO_CHECK(possibly_blocking_count == 3); ASIO_CHECK(never_blocking_count == 2); executor_type ex6 = asio::prefer(ex4, execution::blocking.never); - execution::execute(ex6, &do_nothing); + ex6.execute(&do_nothing); ASIO_CHECK(possibly_blocking_count == 3); ASIO_CHECK(never_blocking_count == 3); executor_type ex7 = either_blocking_executor(execution::blocking.possibly); - execution::execute(ex7, &do_nothing); + ex7.execute(&do_nothing); ASIO_CHECK(possibly_blocking_count == 4); ASIO_CHECK(never_blocking_count == 3); executor_type ex8 = asio::prefer(ex7, execution::blocking.possibly); - execution::execute(ex8, &do_nothing); + ex8.execute(&do_nothing); ASIO_CHECK(possibly_blocking_count == 5); ASIO_CHECK(never_blocking_count == 3); executor_type ex9 = asio::prefer(ex7, execution::blocking.never); - execution::execute(ex9, &do_nothing); + ex9.execute(&do_nothing); ASIO_CHECK(possibly_blocking_count == 5); ASIO_CHECK(never_blocking_count == 4); executor_type ex10 = either_blocking_executor(execution::blocking.never); - execution::execute(ex10, &do_nothing); + ex10.execute(&do_nothing); ASIO_CHECK(possibly_blocking_count == 5); ASIO_CHECK(never_blocking_count == 5); executor_type ex11 = asio::prefer(ex7, execution::blocking.possibly); - execution::execute(ex11, &do_nothing); + ex11.execute(&do_nothing); ASIO_CHECK(possibly_blocking_count == 6); ASIO_CHECK(never_blocking_count == 5); executor_type ex12 = asio::prefer(ex7, execution::blocking.never); - execution::execute(ex12, &do_nothing); + ex12.execute(&do_nothing); ASIO_CHECK(possibly_blocking_count == 6); ASIO_CHECK(never_blocking_count == 6); } diff --git a/3rdparty/asio/src/tests/unit/execution/receiver.cpp b/3rdparty/asio/src/tests/unit/execution/receiver.cpp deleted file mode 100644 index ec373866e80..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/receiver.cpp +++ /dev/null @@ -1,549 +0,0 @@ -// -// receiver.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/receiver.hpp" - -#include <string> -#include "asio/error_code.hpp" -#include "../unit_test.hpp" - -struct not_a_receiver -{ -}; - -struct receiver -{ - receiver() - { - } - - receiver(const receiver&) - { - } - -#if defined(ASIO_HAS_MOVE) - receiver(receiver&&) - { - } -#endif // defined(ASIO_HAS_MOVE) - - template <typename E> - void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT - { - (void)e; - } - - void set_done() ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -template <typename E> -struct set_error_member<receiver, E> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -template <> -struct set_done_member<receiver> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct receiver_of_0 -{ - receiver_of_0() - { - } - - receiver_of_0(const receiver_of_0&) - { - } - -#if defined(ASIO_HAS_MOVE) - receiver_of_0(receiver_of_0&&) - { - } -#endif // defined(ASIO_HAS_MOVE) - - template <typename E> - void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT - { - (void)e; - } - - void set_done() ASIO_NOEXCEPT - { - } - - void set_value() - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -template <typename E> -struct set_error_member<receiver_of_0, E> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -template <> -struct set_done_member<receiver_of_0> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -template <> -struct set_value_member<receiver_of_0, void()> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct receiver_of_1 -{ - receiver_of_1() - { - } - - receiver_of_1(const receiver_of_1&) - { - } - -#if defined(ASIO_HAS_MOVE) - receiver_of_1(receiver_of_1&&) - { - } -#endif // defined(ASIO_HAS_MOVE) - - template <typename E> - void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT - { - (void)e; - } - - void set_done() ASIO_NOEXCEPT - { - } - - void set_value(int) ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -template <typename E> -struct set_error_member<receiver_of_1, E> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -template <> -struct set_done_member<receiver_of_1> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -template <> -struct set_value_member<receiver_of_1, void(int)> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct receiver_of_2 -{ - receiver_of_2() - { - } - - receiver_of_2(const receiver_of_2&) - { - } - -#if defined(ASIO_HAS_MOVE) - receiver_of_2(receiver_of_2&&) - { - } -#endif // defined(ASIO_HAS_MOVE) - - template <typename E> - void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT - { - (void)e; - } - - void set_done() ASIO_NOEXCEPT - { - } - - void set_value(int, std::string) - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -template <typename E> -struct set_error_member<receiver_of_2, E> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -template <> -struct set_done_member<receiver_of_2> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -template <> -struct set_value_member<receiver_of_2, void(int, std::string)> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -void is_receiver_test() -{ - ASIO_CHECK(( - !asio::execution::is_receiver< - void, - asio::error_code - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver< - not_a_receiver, - asio::error_code - >::value)); - - ASIO_CHECK(( - asio::execution::is_receiver< - receiver, - asio::error_code - >::value)); - - ASIO_CHECK(( - asio::execution::is_receiver< - receiver_of_0, - asio::error_code - >::value)); - - ASIO_CHECK(( - asio::execution::is_receiver< - receiver_of_1, - asio::error_code - >::value)); - - ASIO_CHECK(( - asio::execution::is_receiver< - receiver_of_2, - asio::error_code - >::value)); -} - -void is_receiver_of_test() -{ - ASIO_CHECK(( - !asio::execution::is_receiver_of< - void - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - void, - int - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - not_a_receiver - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - not_a_receiver, - int - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - not_a_receiver, - int, - std::string - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - receiver - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - receiver, - int - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - receiver, - int, - std::string - >::value)); - - ASIO_CHECK(( - asio::execution::is_receiver_of< - receiver_of_0 - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - receiver_of_0, - int - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - receiver_of_0, - int, - std::string - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - receiver_of_1 - >::value)); - - ASIO_CHECK(( - asio::execution::is_receiver_of< - receiver_of_1, - int - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - receiver_of_1, - int, - std::string - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - receiver_of_2 - >::value)); - - ASIO_CHECK(( - !asio::execution::is_receiver_of< - receiver_of_2, - int - >::value)); - - ASIO_CHECK(( - asio::execution::is_receiver_of< - receiver_of_2, - int, - std::string - >::value)); -} - -void is_nothrow_receiver_of_test() -{ - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - void - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - void, - int - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - not_a_receiver - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - not_a_receiver, - int - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - not_a_receiver, - int, - std::string - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - receiver - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - receiver, - int - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - receiver, - int, - std::string - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - receiver_of_0 - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - receiver_of_0, - int - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - receiver_of_0, - int, - std::string - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - receiver_of_1 - >::value)); - - ASIO_CHECK(( - asio::execution::is_nothrow_receiver_of< - receiver_of_1, - int - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - receiver_of_1, - int, - std::string - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - receiver_of_2 - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - receiver_of_2, - int - >::value)); - - ASIO_CHECK(( - !asio::execution::is_nothrow_receiver_of< - receiver_of_2, - int, - std::string - >::value)); -} - -ASIO_TEST_SUITE -( - "receiver", - ASIO_TEST_CASE(is_receiver_test) - ASIO_TEST_CASE(is_receiver_of_test) - ASIO_TEST_CASE(is_nothrow_receiver_of_test) -) diff --git a/3rdparty/asio/src/tests/unit/execution/relationship.cpp b/3rdparty/asio/src/tests/unit/execution/relationship.cpp index 3c3f2c3900e..a91144e8125 100644 --- a/3rdparty/asio/src/tests/unit/execution/relationship.cpp +++ b/3rdparty/asio/src/tests/unit/execution/relationship.cpp @@ -2,7 +2,7 @@ // relationship.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -34,12 +34,12 @@ struct ex_nq_nr { } - friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) noexcept { return true; } - friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) noexcept { return false; } @@ -63,7 +63,7 @@ struct is_executor<ex_nq_nr> : asio::true_type template <typename ResultType, typename ParamType, typename Result> struct ex_cq_nr { - static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT + static constexpr ResultType query(ParamType) noexcept { return Result(); } @@ -73,12 +73,12 @@ struct ex_cq_nr { } - friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) noexcept { return true; } - friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) noexcept { return false; } @@ -113,12 +113,12 @@ struct query_static_constexpr_member< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef Result result_type; // Must return raw result type. - static ASIO_CONSTEXPR result_type value() + static constexpr result_type value() { return Result(); } @@ -132,7 +132,7 @@ struct query_static_constexpr_member< template <typename ResultType, typename ParamType, typename Result> struct ex_mq_nr { - ResultType query(ParamType) const ASIO_NOEXCEPT + ResultType query(ParamType) const noexcept { return Result(); } @@ -142,12 +142,12 @@ struct ex_mq_nr { } - friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) noexcept { return true; } - friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) noexcept { return false; } @@ -182,8 +182,8 @@ struct query_member< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ResultType result_type; }; @@ -196,7 +196,7 @@ struct query_member< template <typename ResultType, typename ParamType, typename Result> struct ex_fq_nr { - friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT + friend ResultType query(const ex_fq_nr&, ParamType) noexcept { return Result(); } @@ -206,12 +206,12 @@ struct ex_fq_nr { } - friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) noexcept { return true; } - friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) noexcept { return false; } @@ -246,8 +246,8 @@ struct query_free< asio::is_convertible<Param, ParamType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ResultType result_type; }; @@ -260,24 +260,24 @@ struct query_free< template <typename CurrentType, typename OtherType> struct ex_mq_mr { - CurrentType query(CurrentType) const ASIO_NOEXCEPT + CurrentType query(CurrentType) const noexcept { return CurrentType(); } - CurrentType query(OtherType) const ASIO_NOEXCEPT + CurrentType query(OtherType) const noexcept { return CurrentType(); } ex_mq_mr<CurrentType, OtherType> require( - CurrentType) const ASIO_NOEXCEPT + CurrentType) const noexcept { return ex_mq_mr<CurrentType, OtherType>(); } ex_mq_mr<OtherType, CurrentType> require( - OtherType) const ASIO_NOEXCEPT + OtherType) const noexcept { return ex_mq_mr<OtherType, CurrentType>(); } @@ -287,12 +287,12 @@ struct ex_mq_mr { } - friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept { return true; } - friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept { return false; } @@ -301,13 +301,13 @@ struct ex_mq_mr template <typename CurrentType> struct ex_mq_mr<CurrentType, CurrentType> { - CurrentType query(CurrentType) const ASIO_NOEXCEPT + CurrentType query(CurrentType) const noexcept { return CurrentType(); } ex_mq_mr<CurrentType, CurrentType> require( - CurrentType) const ASIO_NOEXCEPT + CurrentType) const noexcept { return ex_mq_mr<CurrentType, CurrentType>(); } @@ -317,12 +317,12 @@ struct ex_mq_mr<CurrentType, CurrentType> { } - friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept { return true; } - friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept { return false; } @@ -357,8 +357,8 @@ struct query_member< || asio::is_convertible<Param, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef CurrentType result_type; }; @@ -374,8 +374,8 @@ struct require_member< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_mq_mr<CurrentType, OtherType> result_type; }; @@ -388,8 +388,8 @@ struct require_member< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_mq_mr<OtherType, CurrentType> result_type; }; @@ -402,36 +402,36 @@ struct require_member< template <typename CurrentType, typename OtherType> struct ex_fq_fr { - friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept { return CurrentType(); } - friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, OtherType) noexcept { return CurrentType(); } friend ex_fq_fr<CurrentType, OtherType> require( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, OtherType>(); } friend ex_fq_fr<OtherType, CurrentType> require( - const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + const ex_fq_fr&, OtherType) noexcept { return ex_fq_fr<OtherType, CurrentType>(); } friend ex_fq_fr<CurrentType, OtherType> prefer( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, OtherType>(); } friend ex_fq_fr<OtherType, CurrentType> prefer( - const ex_fq_fr&, OtherType) ASIO_NOEXCEPT + const ex_fq_fr&, OtherType) noexcept { return ex_fq_fr<OtherType, CurrentType>(); } @@ -441,12 +441,12 @@ struct ex_fq_fr { } - friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept { return true; } - friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept { return false; } @@ -455,19 +455,19 @@ struct ex_fq_fr template <typename CurrentType> struct ex_fq_fr<CurrentType, CurrentType> { - friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept { return CurrentType(); } friend ex_fq_fr<CurrentType, CurrentType> require( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, CurrentType>(); } friend ex_fq_fr<CurrentType, CurrentType> prefer( - const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT + const ex_fq_fr&, CurrentType) noexcept { return ex_fq_fr<CurrentType, CurrentType>(); } @@ -477,12 +477,12 @@ struct ex_fq_fr<CurrentType, CurrentType> { } - friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept { return true; } - friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT + friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept { return false; } @@ -517,8 +517,8 @@ struct query_free< || asio::is_convertible<Param, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef CurrentType result_type; }; @@ -534,8 +534,8 @@ struct require_free< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<CurrentType, OtherType> result_type; }; @@ -548,8 +548,8 @@ struct require_free< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<OtherType, CurrentType> result_type; }; @@ -565,8 +565,8 @@ struct prefer_free< asio::is_convertible<Param, CurrentType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<CurrentType, OtherType> result_type; }; @@ -579,8 +579,8 @@ struct prefer_free< && !asio::is_same<CurrentType, OtherType>::value >::type> { - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); + static constexpr bool is_valid = true; + static constexpr bool is_noexcept = true; typedef ex_fq_fr<OtherType, CurrentType> result_type; }; @@ -593,19 +593,19 @@ struct prefer_free< template <typename Executor, typename Param, bool ExpectedResult> void test_can_query() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_query<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_query<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_query<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_query<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -628,29 +628,27 @@ void test_query() template <typename Executor, typename Param, typename ExpectedResult> void test_constexpr_query() { -#if defined(ASIO_HAS_CONSTEXPR) constexpr Executor ex1 = {}; constexpr exec::relationship_t result1 = asio::query(ex1, Param()); ASIO_CHECK(result1 == ExpectedResult()); -#endif // defined(ASIO_HAS_CONSTEXPR) } template <typename Executor, typename Param, bool ExpectedResult> void test_can_require() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_require<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_require<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_require<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_require<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -679,19 +677,19 @@ void test_require() template <typename Executor, typename Param, bool ExpectedResult> void test_can_prefer() { - ASIO_CONSTEXPR bool b1 = + constexpr bool b1 = asio::can_prefer<Executor, Param>::value; ASIO_CHECK(b1 == ExpectedResult); - ASIO_CONSTEXPR bool b2 = + constexpr bool b2 = asio::can_prefer<const Executor, Param>::value; ASIO_CHECK(b2 == ExpectedResult); - ASIO_CONSTEXPR bool b3 = + constexpr bool b3 = asio::can_prefer<Executor&, Param>::value; ASIO_CHECK(b3 == ExpectedResult); - ASIO_CONSTEXPR bool b4 = + constexpr bool b4 = asio::can_prefer<const Executor&, Param>::value; ASIO_CHECK(b4 == ExpectedResult); } @@ -720,8 +718,12 @@ void test_prefer() void test_vars() { ASIO_CHECK(s() == exec::relationship); + ASIO_CHECK(s() != exec::relationship.fork); + ASIO_CHECK(s() != exec::relationship.continuation); ASIO_CHECK(n1() == exec::relationship.fork); + ASIO_CHECK(n1() != exec::relationship.continuation); ASIO_CHECK(n2() == exec::relationship.continuation); + ASIO_CHECK(n2() != exec::relationship.fork); } ASIO_TEST_SUITE diff --git a/3rdparty/asio/src/tests/unit/execution/schedule.cpp b/3rdparty/asio/src/tests/unit/execution/schedule.cpp deleted file mode 100644 index a18b9520c2e..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/schedule.cpp +++ /dev/null @@ -1,490 +0,0 @@ -// -// schedule.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/schedule.hpp" - -#include "asio/error_code.hpp" -#include "asio/execution/sender.hpp" -#include "asio/execution/submit.hpp" -#include "asio/traits/connect_member.hpp" -#include "asio/traits/start_member.hpp" -#include "asio/traits/submit_member.hpp" -#include "../unit_test.hpp" - -namespace exec = asio::execution; - -struct operation_state -{ - void start() ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -template <> -struct start_member<operation_state> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct sender : exec::sender_base -{ - sender() - { - } - - template <typename R> - operation_state connect(ASIO_MOVE_ARG(R) r) const - { - (void)r; - return operation_state(); - } - - template <typename R> - void submit(ASIO_MOVE_ARG(R) r) const - { - typename asio::decay<R>::type tmp(ASIO_MOVE_CAST(R)(r)); - exec::set_value(tmp); - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -template <typename R> -struct connect_member<const sender, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT) - -template <typename R> -struct submit_member<const sender, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct no_schedule -{ -}; - -struct const_member_schedule -{ - sender schedule() const ASIO_NOEXCEPT - { - return sender(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SCHEDULE_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct schedule_member<const const_member_schedule> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef sender result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SCHEDULE_MEMBER_TRAIT) - -struct free_schedule_const_receiver -{ - friend sender schedule( - const free_schedule_const_receiver&) ASIO_NOEXCEPT - { - return sender(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SCHEDULE_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct schedule_free<const free_schedule_const_receiver> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef sender result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SCHEDULE_FREE_TRAIT) - -struct non_const_member_schedule -{ - sender schedule() ASIO_NOEXCEPT - { - return sender(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SCHEDULE_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct schedule_member<non_const_member_schedule> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef sender result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SCHEDULE_MEMBER_TRAIT) - -struct free_schedule_non_const_receiver -{ - friend sender schedule( - free_schedule_non_const_receiver&) ASIO_NOEXCEPT - { - return sender(); - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SCHEDULE_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct schedule_free<free_schedule_non_const_receiver> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef sender result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SCHEDULE_FREE_TRAIT) - -struct executor -{ - executor() - { - } - - executor(const executor&) ASIO_NOEXCEPT - { - } - -#if defined(ASIO_HAS_MOVE) - executor(executor&&) ASIO_NOEXCEPT - { - } -#endif // defined(ASIO_HAS_MOVE) - - template <typename F> - void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT - { - typename asio::decay<F>::type tmp(ASIO_MOVE_CAST(F)(f)); - tmp(); - } - - bool operator==(const executor&) const ASIO_NOEXCEPT - { - return true; - } - - bool operator!=(const executor&) const ASIO_NOEXCEPT - { - return false; - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) - -template <typename F> -struct execute_member<executor, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) - -template <> -struct equality_comparable<executor> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); -}; - -#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) - -} // namespace traits -} // namespace asio - -void test_can_schedule() -{ - ASIO_CONSTEXPR bool b1 = exec::can_schedule< - no_schedule&>::value; - ASIO_CHECK(b1 == false); - - ASIO_CONSTEXPR bool b2 = exec::can_schedule< - const no_schedule&>::value; - ASIO_CHECK(b2 == false); - - ASIO_CONSTEXPR bool b3 = exec::can_schedule< - const_member_schedule&>::value; - ASIO_CHECK(b3 == true); - - ASIO_CONSTEXPR bool b4 = exec::can_schedule< - const const_member_schedule&>::value; - ASIO_CHECK(b4 == true); - - ASIO_CONSTEXPR bool b5 = exec::can_schedule< - free_schedule_const_receiver&>::value; - ASIO_CHECK(b5 == true); - - ASIO_CONSTEXPR bool b6 = exec::can_schedule< - const free_schedule_const_receiver&>::value; - ASIO_CHECK(b6 == true); - - ASIO_CONSTEXPR bool b7 = exec::can_schedule< - non_const_member_schedule&>::value; - ASIO_CHECK(b7 == true); - - ASIO_CONSTEXPR bool b8 = exec::can_schedule< - const non_const_member_schedule&>::value; - ASIO_CHECK(b8 == false); - - ASIO_CONSTEXPR bool b9 = exec::can_schedule< - free_schedule_non_const_receiver&>::value; - ASIO_CHECK(b9 == true); - - ASIO_CONSTEXPR bool b10 = exec::can_schedule< - const free_schedule_non_const_receiver&>::value; - ASIO_CHECK(b10 == false); - - ASIO_CONSTEXPR bool b11 = exec::can_schedule< - executor&>::value; - ASIO_CHECK(b11 == true); - - ASIO_CONSTEXPR bool b12 = exec::can_schedule< - const executor&>::value; - ASIO_CHECK(b12 == true); -} - -struct receiver -{ - int* count_; - - receiver(int* count) - : count_(count) - { - } - - receiver(const receiver& other) ASIO_NOEXCEPT - : count_(other.count_) - { - } - -#if defined(ASIO_HAS_MOVE) - receiver(receiver&& other) ASIO_NOEXCEPT - : count_(other.count_) - { - other.count_ = 0; - } -#endif // defined(ASIO_HAS_MOVE) - - void set_value() ASIO_NOEXCEPT - { - ++(*count_); - } - - template <typename E> - void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT - { - (void)e; - } - - void set_done() ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -template <> -struct set_value_member<receiver, void()> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -template <typename E> -struct set_error_member<receiver, E> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -template <> -struct set_done_member<receiver> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -void test_schedule() -{ - int count = 0; - const_member_schedule ex1 = {}; - exec::submit( - exec::schedule(ex1), - receiver(&count)); - ASIO_CHECK(count == 1); - - count = 0; - const const_member_schedule ex2 = {}; - exec::submit( - exec::schedule(ex2), - receiver(&count)); - ASIO_CHECK(count == 1); - - count = 0; - exec::submit( - exec::schedule(const_member_schedule()), - receiver(&count)); - ASIO_CHECK(count == 1); - - count = 0; - free_schedule_const_receiver ex3 = {}; - exec::submit( - exec::schedule(ex3), - receiver(&count)); - ASIO_CHECK(count == 1); - - count = 0; - const free_schedule_const_receiver ex4 = {}; - exec::submit( - exec::schedule(ex4), - receiver(&count)); - ASIO_CHECK(count == 1); - - count = 0; - exec::submit( - exec::schedule(free_schedule_const_receiver()), - receiver(&count)); - ASIO_CHECK(count == 1); - - count = 0; - non_const_member_schedule ex5 = {}; - exec::submit( - exec::schedule(ex5), - receiver(&count)); - ASIO_CHECK(count == 1); - - count = 0; - free_schedule_non_const_receiver ex6 = {}; - exec::submit( - exec::schedule(ex6), - receiver(&count)); - ASIO_CHECK(count == 1); - - count = 0; - executor ex7; - exec::submit( - exec::schedule(ex7), - receiver(&count)); - ASIO_CHECK(count == 1); - - count = 0; - const executor ex8; - exec::submit( - exec::schedule(ex8), - receiver(&count)); - ASIO_CHECK(count == 1); - - count = 0; - exec::submit( - exec::schedule(executor()), - receiver(&count)); - ASIO_CHECK(count == 1); -} - -ASIO_TEST_SUITE -( - "schedule", - ASIO_TEST_CASE(test_can_schedule) - ASIO_TEST_CASE(test_schedule) -) diff --git a/3rdparty/asio/src/tests/unit/execution/scheduler.cpp b/3rdparty/asio/src/tests/unit/execution/scheduler.cpp deleted file mode 100644 index bdcab4dac25..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/scheduler.cpp +++ /dev/null @@ -1,99 +0,0 @@ -// -// scheduler.cpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/scheduler.hpp" - -#include "../unit_test.hpp" - -namespace exec = asio::execution; - -struct not_a_scheduler -{ -}; - -struct executor -{ - executor() - { - } - - executor(const executor&) ASIO_NOEXCEPT - { - } - -#if defined(ASIO_HAS_MOVE) - executor(executor&&) ASIO_NOEXCEPT - { - } -#endif // defined(ASIO_HAS_MOVE) - - template <typename F> - void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT - { - (void)f; - } - - bool operator==(const executor&) const ASIO_NOEXCEPT - { - return true; - } - - bool operator!=(const executor&) const ASIO_NOEXCEPT - { - return false; - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) - -template <typename F> -struct execute_member<executor, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) - -template <> -struct equality_comparable<executor> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); -}; - -#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) - -} // namespace traits -} // namespace asio - -void test_is_scheduler() -{ - ASIO_CHECK(!exec::is_scheduler<void>::value); - ASIO_CHECK(!exec::is_scheduler<not_a_scheduler>::value); - ASIO_CHECK(exec::is_scheduler<executor>::value); -} - -ASIO_TEST_SUITE -( - "scheduler", - ASIO_TEST_CASE(test_is_scheduler) -) diff --git a/3rdparty/asio/src/tests/unit/execution/sender.cpp b/3rdparty/asio/src/tests/unit/execution/sender.cpp deleted file mode 100644 index 4a497e819f7..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/sender.cpp +++ /dev/null @@ -1,231 +0,0 @@ -// -// sender.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/sender.hpp" - -#include "asio/error_code.hpp" -#include "../unit_test.hpp" - -namespace exec = asio::execution; - -struct not_a_sender -{ -}; - -struct sender_using_base : - asio::execution::sender_base -{ - sender_using_base() - { - } -}; - -struct executor -{ - executor() - { - } - - executor(const executor&) ASIO_NOEXCEPT - { - } - -#if defined(ASIO_HAS_MOVE) - executor(executor&&) ASIO_NOEXCEPT - { - } -#endif // defined(ASIO_HAS_MOVE) - - template <typename F> - void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT - { - (void)f; - } - - bool operator==(const executor&) const ASIO_NOEXCEPT - { - return true; - } - - bool operator!=(const executor&) const ASIO_NOEXCEPT - { - return false; - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) - -template <typename F> -struct execute_member<executor, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) - -template <> -struct equality_comparable<executor> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); -}; - -#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) - -} // namespace traits -} // namespace asio - -#if defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT) - -struct operation_state -{ - void start() ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -template <> -struct start_member<operation_state> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct typed_sender -{ - template < - template <typename...> class Tuple, - template <typename...> class Variant> - using value_types = Variant<Tuple<int>>; - - template <template <typename...> class Variant> - using error_types = Variant<asio::error_code>; - - ASIO_STATIC_CONSTEXPR(bool, sends_done = true); - - typed_sender() - { - } - - template <typename R> - operation_state connect(ASIO_MOVE_ARG(R) r) const - { - (void)r; - return operation_state(); - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -template <typename R> -struct connect_member<const typed_sender, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -#endif // defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT) - -template <typename T> -bool is_unspecialised(T*, ...) -{ - return false; -} - -template <typename T> -bool is_unspecialised(T*, - typename asio::void_type< - typename exec::sender_traits< - T>::asio_execution_sender_traits_base_is_unspecialised - >::type*) -{ - return true; -} - -void test_sender_traits() -{ - not_a_sender s1; - ASIO_CHECK(is_unspecialised(&s1, static_cast<void*>(0))); - - sender_using_base s2; - ASIO_CHECK(!is_unspecialised(&s2, static_cast<void*>(0))); - - executor s3; - ASIO_CHECK(!is_unspecialised(&s3, static_cast<void*>(0))); - -#if defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT) - typed_sender s4; - ASIO_CHECK(!is_unspecialised(&s4, static_cast<void*>(0))); -#endif // defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT) -} - -void test_is_sender() -{ - ASIO_CHECK(!exec::is_sender<void>::value); - ASIO_CHECK(!exec::is_sender<not_a_sender>::value); - ASIO_CHECK(exec::is_sender<sender_using_base>::value); - ASIO_CHECK(exec::is_sender<executor>::value); - -#if defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT) - ASIO_CHECK(exec::is_sender<typed_sender>::value); -#endif // defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT) -} - -void test_is_typed_sender() -{ - ASIO_CHECK(!exec::is_typed_sender<void>::value); - ASIO_CHECK(!exec::is_typed_sender<not_a_sender>::value); - ASIO_CHECK(!exec::is_typed_sender<sender_using_base>::value); - -#if defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT) - ASIO_CHECK(exec::is_typed_sender<executor>::value); - ASIO_CHECK(exec::is_typed_sender<typed_sender>::value); -#endif // defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT) -} - -ASIO_TEST_SUITE -( - "sender", - ASIO_TEST_CASE(test_sender_traits) - ASIO_TEST_CASE(test_is_sender) - ASIO_TEST_CASE(test_is_typed_sender) -) diff --git a/3rdparty/asio/src/tests/unit/execution/set_done.cpp b/3rdparty/asio/src/tests/unit/execution/set_done.cpp deleted file mode 100644 index 723a8fc515d..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/set_done.cpp +++ /dev/null @@ -1,228 +0,0 @@ -// -// set_done.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/set_done.hpp" - -#include "asio/error_code.hpp" -#include "../unit_test.hpp" - -namespace exec = asio::execution; - -static int call_count = 0; - -struct no_set_done -{ -}; - -struct const_member_set_done -{ - void set_done() const ASIO_NOEXCEPT - { - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct set_done_member<const const_member_set_done> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -struct free_set_done_const_receiver -{ - friend void set_done(const free_set_done_const_receiver&) ASIO_NOEXCEPT - { - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct set_done_free<const free_set_done_const_receiver> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_FREE_TRAIT) - -struct non_const_member_set_done -{ - void set_done() ASIO_NOEXCEPT - { - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct set_done_member<non_const_member_set_done> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -struct free_set_done_non_const_receiver -{ - friend void set_done(free_set_done_non_const_receiver&) ASIO_NOEXCEPT - { - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct set_done_free<free_set_done_non_const_receiver> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_FREE_TRAIT) - -void test_can_set_done() -{ - ASIO_CONSTEXPR bool b1 = exec::can_set_done< - no_set_done&>::value; - ASIO_CHECK(b1 == false); - - ASIO_CONSTEXPR bool b2 = exec::can_set_done< - const no_set_done&>::value; - ASIO_CHECK(b2 == false); - - ASIO_CONSTEXPR bool b3 = exec::can_set_done< - const_member_set_done&>::value; - ASIO_CHECK(b3 == true); - - ASIO_CONSTEXPR bool b4 = exec::can_set_done< - const const_member_set_done&>::value; - ASIO_CHECK(b4 == true); - - ASIO_CONSTEXPR bool b5 = exec::can_set_done< - free_set_done_const_receiver&>::value; - ASIO_CHECK(b5 == true); - - ASIO_CONSTEXPR bool b6 = exec::can_set_done< - const free_set_done_const_receiver&>::value; - ASIO_CHECK(b6 == true); - - ASIO_CONSTEXPR bool b7 = exec::can_set_done< - non_const_member_set_done&>::value; - ASIO_CHECK(b7 == true); - - ASIO_CONSTEXPR bool b8 = exec::can_set_done< - const non_const_member_set_done&>::value; - ASIO_CHECK(b8 == false); - - ASIO_CONSTEXPR bool b9 = exec::can_set_done< - free_set_done_non_const_receiver&>::value; - ASIO_CHECK(b9 == true); - - ASIO_CONSTEXPR bool b10 = exec::can_set_done< - const free_set_done_non_const_receiver&>::value; - ASIO_CHECK(b10 == false); -} - -void increment(int* count) -{ - ++(*count); -} - -void test_set_done() -{ - call_count = 0; - const_member_set_done ex1 = {}; - exec::set_done(ex1); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const const_member_set_done ex2 = {}; - exec::set_done(ex2); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::set_done(const_member_set_done()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_set_done_const_receiver ex3 = {}; - exec::set_done(ex3); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const free_set_done_const_receiver ex4 = {}; - exec::set_done(ex4); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::set_done(free_set_done_const_receiver()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - non_const_member_set_done ex5 = {}; - exec::set_done(ex5); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_set_done_non_const_receiver ex6 = {}; - exec::set_done(ex6); - ASIO_CHECK(call_count == 1); -} - -ASIO_TEST_SUITE -( - "set_done", - ASIO_TEST_CASE(test_can_set_done) - ASIO_TEST_CASE(test_set_done) -) diff --git a/3rdparty/asio/src/tests/unit/execution/set_error.cpp b/3rdparty/asio/src/tests/unit/execution/set_error.cpp deleted file mode 100644 index 3b5924053b2..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/set_error.cpp +++ /dev/null @@ -1,244 +0,0 @@ -// -// set_error.cpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/set_error.hpp" - -#include "asio/error_code.hpp" -#include "../unit_test.hpp" - -namespace exec = asio::execution; - -static int call_count = 0; - -struct no_set_error -{ -}; - -struct const_member_set_error -{ - template <typename E> - void set_error(ASIO_MOVE_ARG(E) e) const ASIO_NOEXCEPT - { - typename asio::decay<E>::type tmp(ASIO_MOVE_CAST(E)(e)); - (void)tmp; - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <typename E> -struct set_error_member<const const_member_set_error, E> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -struct free_set_error_const_receiver -{ - template <typename E> - friend void set_error(const free_set_error_const_receiver&, - ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT - { - typename asio::decay<E>::type tmp(ASIO_MOVE_CAST(E)(e)); - (void)tmp; - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <typename E> -struct set_error_free<const free_set_error_const_receiver, E> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_FREE_TRAIT) - -struct non_const_member_set_error -{ - template <typename E> - void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT - { - typename asio::decay<E>::type tmp(ASIO_MOVE_CAST(E)(e)); - (void)tmp; - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <typename E> -struct set_error_member<non_const_member_set_error, E> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -struct free_set_error_non_const_receiver -{ - template <typename E> - friend void set_error(free_set_error_non_const_receiver&, - ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT - { - typename asio::decay<E>::type tmp(ASIO_MOVE_CAST(E)(e)); - (void)tmp; - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <typename E> -struct set_error_free<free_set_error_non_const_receiver, E> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_FREE_TRAIT) - -void test_can_set_error() -{ - ASIO_CONSTEXPR bool b1 = exec::can_set_error< - no_set_error&, asio::error_code>::value; - ASIO_CHECK(b1 == false); - - ASIO_CONSTEXPR bool b2 = exec::can_set_error< - const no_set_error&, asio::error_code>::value; - ASIO_CHECK(b2 == false); - - ASIO_CONSTEXPR bool b3 = exec::can_set_error< - const_member_set_error&, asio::error_code>::value; - ASIO_CHECK(b3 == true); - - ASIO_CONSTEXPR bool b4 = exec::can_set_error< - const const_member_set_error&, asio::error_code>::value; - ASIO_CHECK(b4 == true); - - ASIO_CONSTEXPR bool b5 = exec::can_set_error< - free_set_error_const_receiver&, asio::error_code>::value; - ASIO_CHECK(b5 == true); - - ASIO_CONSTEXPR bool b6 = exec::can_set_error< - const free_set_error_const_receiver&, asio::error_code>::value; - ASIO_CHECK(b6 == true); - - ASIO_CONSTEXPR bool b7 = exec::can_set_error< - non_const_member_set_error&, asio::error_code>::value; - ASIO_CHECK(b7 == true); - - ASIO_CONSTEXPR bool b8 = exec::can_set_error< - const non_const_member_set_error&, asio::error_code>::value; - ASIO_CHECK(b8 == false); - - ASIO_CONSTEXPR bool b9 = exec::can_set_error< - free_set_error_non_const_receiver&, asio::error_code>::value; - ASIO_CHECK(b9 == true); - - ASIO_CONSTEXPR bool b10 = exec::can_set_error< - const free_set_error_non_const_receiver&, asio::error_code>::value; - ASIO_CHECK(b10 == false); -} - -void increment(int* count) -{ - ++(*count); -} - -void test_set_error() -{ - asio::error_code ec; - - call_count = 0; - const_member_set_error ex1 = {}; - exec::set_error(ex1, ec); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const const_member_set_error ex2 = {}; - exec::set_error(ex2, ec); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::set_error(const_member_set_error(), ec); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_set_error_const_receiver ex3 = {}; - exec::set_error(ex3, ec); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const free_set_error_const_receiver ex4 = {}; - exec::set_error(ex4, ec); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::set_error(free_set_error_const_receiver(), ec); - ASIO_CHECK(call_count == 1); - - call_count = 0; - non_const_member_set_error ex5 = {}; - exec::set_error(ex5, ec); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_set_error_non_const_receiver ex6 = {}; - exec::set_error(ex6, ec); - ASIO_CHECK(call_count == 1); -} - -ASIO_TEST_SUITE -( - "set_error", - ASIO_TEST_CASE(test_can_set_error) - ASIO_TEST_CASE(test_set_error) -) diff --git a/3rdparty/asio/src/tests/unit/execution/set_value.cpp b/3rdparty/asio/src/tests/unit/execution/set_value.cpp deleted file mode 100644 index ed22478b3c9..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/set_value.cpp +++ /dev/null @@ -1,820 +0,0 @@ -// -// set_value.cpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/set_value.hpp" - -#include <string> -#include "../unit_test.hpp" - -namespace exec = asio::execution; - -static int call_count = 0; - -struct no_set_value -{ -}; - -struct const_member_set_value_0 -{ - void set_value() const - { - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct set_value_member<const const_member_set_value_0, void()> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -struct const_member_set_value_1 -{ - template <typename V1> - void set_value(ASIO_MOVE_ARG(V1) v1) const - { - typename asio::decay<V1>::type tmp(ASIO_MOVE_CAST(V1)(v1)); - (void)tmp; - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <typename V1> -struct set_value_member<const const_member_set_value_1, void(V1)> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -struct const_member_set_value_2 -{ - template <typename V1, typename V2> - void set_value(ASIO_MOVE_ARG(V1) v1, ASIO_MOVE_ARG(V2) v2) const - { - typename asio::decay<V1>::type tmp1(ASIO_MOVE_CAST(V1)(v1)); - (void)tmp1; - typename asio::decay<V2>::type tmp2(ASIO_MOVE_CAST(V2)(v2)); - (void)tmp2; - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <typename V1, typename V2> -struct set_value_member<const const_member_set_value_2, void(V1, V2)> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -struct free_set_value_const_receiver_0 -{ - friend void set_value(const free_set_value_const_receiver_0&) - { - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct set_value_free<const free_set_value_const_receiver_0, void()> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT) - -struct free_set_value_const_receiver_1 -{ - template <typename V1> - friend void set_value(const free_set_value_const_receiver_1&, - ASIO_MOVE_ARG(V1) v1) - { - typename asio::decay<V1>::type tmp(ASIO_MOVE_CAST(V1)(v1)); - (void)tmp; - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <typename V1> -struct set_value_free<const free_set_value_const_receiver_1, void(V1)> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT) - -struct free_set_value_const_receiver_2 -{ - template <typename V1, typename V2> - friend void set_value(const free_set_value_const_receiver_2&, - ASIO_MOVE_ARG(V1) v1, ASIO_MOVE_ARG(V2) v2) - { - typename asio::decay<V1>::type tmp1(ASIO_MOVE_CAST(V1)(v1)); - (void)tmp1; - typename asio::decay<V2>::type tmp2(ASIO_MOVE_CAST(V2)(v2)); - (void)tmp2; - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <typename V1, typename V2> -struct set_value_free<const free_set_value_const_receiver_2, void(V1, V2)> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT) - -struct non_const_member_set_value_0 -{ - void set_value() - { - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct set_value_member<non_const_member_set_value_0, void()> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -struct non_const_member_set_value_1 -{ - template <typename V1> - void set_value(ASIO_MOVE_ARG(V1) v1) - { - typename asio::decay<V1>::type tmp(ASIO_MOVE_CAST(V1)(v1)); - (void)tmp; - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <typename V1> -struct set_value_member<non_const_member_set_value_1, void(V1)> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -struct non_const_member_set_value_2 -{ - template <typename V1, typename V2> - void set_value(ASIO_MOVE_ARG(V1) v1, ASIO_MOVE_ARG(V2) v2) - { - typename asio::decay<V1>::type tmp1(ASIO_MOVE_CAST(V1)(v1)); - (void)tmp1; - typename asio::decay<V2>::type tmp2(ASIO_MOVE_CAST(V2)(v2)); - (void)tmp2; - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <typename V1, typename V2> -struct set_value_member<non_const_member_set_value_2, void(V1, V2)> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -struct free_set_value_non_const_receiver_0 -{ - friend void set_value(free_set_value_non_const_receiver_0&) - { - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct set_value_free<free_set_value_non_const_receiver_0, void()> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT) - -struct free_set_value_non_const_receiver_1 -{ - template <typename V1> - friend void set_value(free_set_value_non_const_receiver_1&, - ASIO_MOVE_ARG(V1) v1) - { - typename asio::decay<V1>::type tmp(ASIO_MOVE_CAST(V1)(v1)); - (void)tmp; - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <typename V1> -struct set_value_free<free_set_value_non_const_receiver_1, void(V1)> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT) - -struct free_set_value_non_const_receiver_2 -{ - template <typename V1, typename V2> - friend void set_value(free_set_value_non_const_receiver_2&, - ASIO_MOVE_ARG(V1) v1, ASIO_MOVE_ARG(V2) v2) - { - typename asio::decay<V1>::type tmp1(ASIO_MOVE_CAST(V1)(v1)); - (void)tmp1; - typename asio::decay<V2>::type tmp2(ASIO_MOVE_CAST(V2)(v2)); - (void)tmp2; - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <typename V1, typename V2> -struct set_value_free<free_set_value_non_const_receiver_2, void(V1, V2)> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT) - -void test_can_set_value() -{ - ASIO_CONSTEXPR bool b1 = exec::can_set_value< - no_set_value&>::value; - ASIO_CHECK(b1 == false); - - ASIO_CONSTEXPR bool b2 = exec::can_set_value< - const no_set_value&>::value; - ASIO_CHECK(b2 == false); - - ASIO_CONSTEXPR bool b3 = exec::can_set_value< - no_set_value&, int>::value; - ASIO_CHECK(b3 == false); - - ASIO_CONSTEXPR bool b4 = exec::can_set_value< - const no_set_value&, int>::value; - ASIO_CHECK(b4 == false); - - ASIO_CONSTEXPR bool b5 = exec::can_set_value< - no_set_value&, int, std::string>::value; - ASIO_CHECK(b5 == false); - - ASIO_CONSTEXPR bool b6 = exec::can_set_value< - const no_set_value&, int, std::string>::value; - ASIO_CHECK(b6 == false); - - ASIO_CONSTEXPR bool b7 = exec::can_set_value< - const_member_set_value_0&>::value; - ASIO_CHECK(b7 == true); - - ASIO_CONSTEXPR bool b8 = exec::can_set_value< - const const_member_set_value_0&>::value; - ASIO_CHECK(b8 == true); - - ASIO_CONSTEXPR bool b9 = exec::can_set_value< - const_member_set_value_0&, int>::value; - ASIO_CHECK(b9 == false); - - ASIO_CONSTEXPR bool b10 = exec::can_set_value< - const const_member_set_value_0&, int>::value; - ASIO_CHECK(b10 == false); - - ASIO_CONSTEXPR bool b11 = exec::can_set_value< - const_member_set_value_0&, int, std::string>::value; - ASIO_CHECK(b11 == false); - - ASIO_CONSTEXPR bool b12 = exec::can_set_value< - const const_member_set_value_0&, int, std::string>::value; - ASIO_CHECK(b12 == false); - - ASIO_CONSTEXPR bool b13 = exec::can_set_value< - const_member_set_value_1&>::value; - ASIO_CHECK(b13 == false); - - ASIO_CONSTEXPR bool b14 = exec::can_set_value< - const const_member_set_value_1&>::value; - ASIO_CHECK(b14 == false); - - ASIO_CONSTEXPR bool b15 = exec::can_set_value< - const_member_set_value_1&, int>::value; - ASIO_CHECK(b15 == true); - - ASIO_CONSTEXPR bool b16 = exec::can_set_value< - const const_member_set_value_1&, int>::value; - ASIO_CHECK(b16 == true); - - ASIO_CONSTEXPR bool b17 = exec::can_set_value< - const_member_set_value_1&, int, std::string>::value; - ASIO_CHECK(b17 == false); - - ASIO_CONSTEXPR bool b18 = exec::can_set_value< - const const_member_set_value_1&, int, std::string>::value; - ASIO_CHECK(b18 == false); - - ASIO_CONSTEXPR bool b19 = exec::can_set_value< - const_member_set_value_2&>::value; - ASIO_CHECK(b19 == false); - - ASIO_CONSTEXPR bool b20 = exec::can_set_value< - const const_member_set_value_2&>::value; - ASIO_CHECK(b20 == false); - - ASIO_CONSTEXPR bool b21 = exec::can_set_value< - const_member_set_value_2&, int>::value; - ASIO_CHECK(b21 == false); - - ASIO_CONSTEXPR bool b22 = exec::can_set_value< - const const_member_set_value_2&, int>::value; - ASIO_CHECK(b22 == false); - - ASIO_CONSTEXPR bool b23 = exec::can_set_value< - const_member_set_value_2&, int, std::string>::value; - ASIO_CHECK(b23 == true); - - ASIO_CONSTEXPR bool b24 = exec::can_set_value< - const const_member_set_value_2&, int, std::string>::value; - ASIO_CHECK(b24 == true); - - ASIO_CONSTEXPR bool b25 = exec::can_set_value< - free_set_value_const_receiver_0&>::value; - ASIO_CHECK(b25 == true); - - ASIO_CONSTEXPR bool b26 = exec::can_set_value< - const free_set_value_const_receiver_0&>::value; - ASIO_CHECK(b26 == true); - - ASIO_CONSTEXPR bool b27 = exec::can_set_value< - free_set_value_const_receiver_0&, int>::value; - ASIO_CHECK(b27 == false); - - ASIO_CONSTEXPR bool b28 = exec::can_set_value< - const free_set_value_const_receiver_0&, int>::value; - ASIO_CHECK(b28 == false); - - ASIO_CONSTEXPR bool b29 = exec::can_set_value< - free_set_value_const_receiver_0&, int, std::string>::value; - ASIO_CHECK(b29 == false); - - ASIO_CONSTEXPR bool b30 = exec::can_set_value< - const free_set_value_const_receiver_0&, int, std::string>::value; - ASIO_CHECK(b30 == false); - - ASIO_CONSTEXPR bool b31 = exec::can_set_value< - free_set_value_const_receiver_1&>::value; - ASIO_CHECK(b31 == false); - - ASIO_CONSTEXPR bool b32 = exec::can_set_value< - const free_set_value_const_receiver_1&>::value; - ASIO_CHECK(b32 == false); - - ASIO_CONSTEXPR bool b33 = exec::can_set_value< - free_set_value_const_receiver_1&, int>::value; - ASIO_CHECK(b33 == true); - - ASIO_CONSTEXPR bool b34 = exec::can_set_value< - const free_set_value_const_receiver_1&, int>::value; - ASIO_CHECK(b34 == true); - - ASIO_CONSTEXPR bool b35 = exec::can_set_value< - free_set_value_const_receiver_1&, int, std::string>::value; - ASIO_CHECK(b35 == false); - - ASIO_CONSTEXPR bool b36 = exec::can_set_value< - const free_set_value_const_receiver_1&, int, std::string>::value; - ASIO_CHECK(b36 == false); - - ASIO_CONSTEXPR bool b37 = exec::can_set_value< - free_set_value_const_receiver_2&>::value; - ASIO_CHECK(b37 == false); - - ASIO_CONSTEXPR bool b38 = exec::can_set_value< - const free_set_value_const_receiver_2&>::value; - ASIO_CHECK(b38 == false); - - ASIO_CONSTEXPR bool b39 = exec::can_set_value< - free_set_value_const_receiver_2&, int>::value; - ASIO_CHECK(b39 == false); - - ASIO_CONSTEXPR bool b40 = exec::can_set_value< - const free_set_value_const_receiver_2&, int>::value; - ASIO_CHECK(b40 == false); - - ASIO_CONSTEXPR bool b41 = exec::can_set_value< - free_set_value_const_receiver_2&, int, std::string>::value; - ASIO_CHECK(b41 == true); - - ASIO_CONSTEXPR bool b42 = exec::can_set_value< - const free_set_value_const_receiver_2&, int, std::string>::value; - ASIO_CHECK(b42 == true); - - ASIO_CONSTEXPR bool b43 = exec::can_set_value< - non_const_member_set_value_0&>::value; - ASIO_CHECK(b43 == true); - - ASIO_CONSTEXPR bool b44 = exec::can_set_value< - const non_const_member_set_value_0&>::value; - ASIO_CHECK(b44 == false); - - ASIO_CONSTEXPR bool b45 = exec::can_set_value< - non_const_member_set_value_0&, int>::value; - ASIO_CHECK(b45 == false); - - ASIO_CONSTEXPR bool b46 = exec::can_set_value< - const non_const_member_set_value_0&, int>::value; - ASIO_CHECK(b46 == false); - - ASIO_CONSTEXPR bool b47 = exec::can_set_value< - non_const_member_set_value_0&, int, std::string>::value; - ASIO_CHECK(b47 == false); - - ASIO_CONSTEXPR bool b48 = exec::can_set_value< - const non_const_member_set_value_0&, int, std::string>::value; - ASIO_CHECK(b48 == false); - - ASIO_CONSTEXPR bool b49 = exec::can_set_value< - non_const_member_set_value_1&>::value; - ASIO_CHECK(b49 == false); - - ASIO_CONSTEXPR bool b50 = exec::can_set_value< - const non_const_member_set_value_1&>::value; - ASIO_CHECK(b50 == false); - - ASIO_CONSTEXPR bool b51 = exec::can_set_value< - non_const_member_set_value_1&, int>::value; - ASIO_CHECK(b51 == true); - - ASIO_CONSTEXPR bool b52 = exec::can_set_value< - const non_const_member_set_value_1&, int>::value; - ASIO_CHECK(b52 == false); - - ASIO_CONSTEXPR bool b53 = exec::can_set_value< - non_const_member_set_value_1&, int, std::string>::value; - ASIO_CHECK(b53 == false); - - ASIO_CONSTEXPR bool b54 = exec::can_set_value< - const non_const_member_set_value_1&, int, std::string>::value; - ASIO_CHECK(b54 == false); - - ASIO_CONSTEXPR bool b55 = exec::can_set_value< - non_const_member_set_value_2&>::value; - ASIO_CHECK(b55 == false); - - ASIO_CONSTEXPR bool b56 = exec::can_set_value< - const non_const_member_set_value_2&>::value; - ASIO_CHECK(b56 == false); - - ASIO_CONSTEXPR bool b57 = exec::can_set_value< - non_const_member_set_value_2&, int>::value; - ASIO_CHECK(b57 == false); - - ASIO_CONSTEXPR bool b58 = exec::can_set_value< - const non_const_member_set_value_2&, int>::value; - ASIO_CHECK(b58 == false); - - ASIO_CONSTEXPR bool b59 = exec::can_set_value< - non_const_member_set_value_2&, int, std::string>::value; - ASIO_CHECK(b59 == true); - - ASIO_CONSTEXPR bool b60 = exec::can_set_value< - const non_const_member_set_value_2&, int, std::string>::value; - ASIO_CHECK(b60 == false); - - ASIO_CONSTEXPR bool b61 = exec::can_set_value< - free_set_value_non_const_receiver_0&>::value; - ASIO_CHECK(b61 == true); - - ASIO_CONSTEXPR bool b62 = exec::can_set_value< - const free_set_value_non_const_receiver_0&>::value; - ASIO_CHECK(b62 == false); - - ASIO_CONSTEXPR bool b63 = exec::can_set_value< - free_set_value_non_const_receiver_0&, int>::value; - ASIO_CHECK(b63 == false); - - ASIO_CONSTEXPR bool b64 = exec::can_set_value< - const free_set_value_non_const_receiver_0&, int>::value; - ASIO_CHECK(b64 == false); - - ASIO_CONSTEXPR bool b65 = exec::can_set_value< - free_set_value_non_const_receiver_0&, int, std::string>::value; - ASIO_CHECK(b65 == false); - - ASIO_CONSTEXPR bool b66 = exec::can_set_value< - const free_set_value_non_const_receiver_0&, int, std::string>::value; - ASIO_CHECK(b66 == false); - - ASIO_CONSTEXPR bool b67 = exec::can_set_value< - free_set_value_non_const_receiver_1&>::value; - ASIO_CHECK(b67 == false); - - ASIO_CONSTEXPR bool b68 = exec::can_set_value< - const free_set_value_non_const_receiver_1&>::value; - ASIO_CHECK(b68 == false); - - ASIO_CONSTEXPR bool b69 = exec::can_set_value< - free_set_value_non_const_receiver_1&, int>::value; - ASIO_CHECK(b69 == true); - - ASIO_CONSTEXPR bool b70 = exec::can_set_value< - const free_set_value_non_const_receiver_1&, int>::value; - ASIO_CHECK(b70 == false); - - ASIO_CONSTEXPR bool b71 = exec::can_set_value< - free_set_value_non_const_receiver_1&, int, std::string>::value; - ASIO_CHECK(b71 == false); - - ASIO_CONSTEXPR bool b72 = exec::can_set_value< - const free_set_value_non_const_receiver_1&, int, std::string>::value; - ASIO_CHECK(b72 == false); - - ASIO_CONSTEXPR bool b73 = exec::can_set_value< - free_set_value_non_const_receiver_2&>::value; - ASIO_CHECK(b73 == false); - - ASIO_CONSTEXPR bool b74 = exec::can_set_value< - const free_set_value_non_const_receiver_2&>::value; - ASIO_CHECK(b74 == false); - - ASIO_CONSTEXPR bool b75 = exec::can_set_value< - free_set_value_non_const_receiver_2&, int>::value; - ASIO_CHECK(b75 == false); - - ASIO_CONSTEXPR bool b76 = exec::can_set_value< - const free_set_value_non_const_receiver_2&, int>::value; - ASIO_CHECK(b76 == false); - - ASIO_CONSTEXPR bool b77 = exec::can_set_value< - free_set_value_non_const_receiver_2&, int, std::string>::value; - ASIO_CHECK(b77 == true); - - ASIO_CONSTEXPR bool b78 = exec::can_set_value< - const free_set_value_non_const_receiver_2&, int, std::string>::value; - ASIO_CHECK(b78 == false); -} - -void increment(int* count) -{ - ++(*count); -} - -void test_set_value() -{ - call_count = 0; - const_member_set_value_0 ex1 = {}; - exec::set_value(ex1); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const const_member_set_value_0 ex2 = {}; - exec::set_value(ex2); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::set_value(const_member_set_value_0()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const_member_set_value_1 ex3 = {}; - exec::set_value(ex3, 123); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const const_member_set_value_1 ex4 = {}; - exec::set_value(ex4, 123); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::set_value(const_member_set_value_1(), 123); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const_member_set_value_2 ex5 = {}; - exec::set_value(ex5, 123, std::string()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const const_member_set_value_2 ex6 = {}; - exec::set_value(ex6, 123, std::string()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::set_value(const_member_set_value_2(), 123, std::string()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_set_value_const_receiver_0 ex7 = {}; - exec::set_value(ex7); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const free_set_value_const_receiver_0 ex8 = {}; - exec::set_value(ex8); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::set_value(free_set_value_const_receiver_0()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_set_value_const_receiver_1 ex9 = {}; - exec::set_value(ex9, 123); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const free_set_value_const_receiver_1 ex10 = {}; - exec::set_value(ex10, 123); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::set_value(free_set_value_const_receiver_1(), 123); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_set_value_const_receiver_2 ex11 = {}; - exec::set_value(ex11, 123, std::string()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const free_set_value_const_receiver_2 ex12 = {}; - exec::set_value(ex12, 123, std::string()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::set_value(free_set_value_const_receiver_2(), 123, std::string()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - non_const_member_set_value_0 ex13 = {}; - exec::set_value(ex13); - ASIO_CHECK(call_count == 1); - - call_count = 0; - non_const_member_set_value_1 ex14 = {}; - exec::set_value(ex14, 123); - ASIO_CHECK(call_count == 1); - - call_count = 0; - non_const_member_set_value_2 ex15 = {}; - exec::set_value(ex15, 123, std::string()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_set_value_non_const_receiver_0 ex16 = {}; - exec::set_value(ex16); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_set_value_non_const_receiver_1 ex17 = {}; - exec::set_value(ex17, 123); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_set_value_non_const_receiver_2 ex18 = {}; - exec::set_value(ex18, 123, std::string()); - ASIO_CHECK(call_count == 1); -} - -ASIO_TEST_SUITE -( - "set_value", - ASIO_TEST_CASE(test_can_set_value) - ASIO_TEST_CASE(test_set_value) -) diff --git a/3rdparty/asio/src/tests/unit/execution/start.cpp b/3rdparty/asio/src/tests/unit/execution/start.cpp deleted file mode 100644 index 8faae16d961..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/start.cpp +++ /dev/null @@ -1,228 +0,0 @@ -// -// start.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/start.hpp" - -#include "asio/error_code.hpp" -#include "../unit_test.hpp" - -namespace exec = asio::execution; - -static int call_count = 0; - -struct no_start -{ -}; - -struct const_member_start -{ - void start() const ASIO_NOEXCEPT - { - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct start_member<const const_member_start> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -struct free_start_const_receiver -{ - friend void start(const free_start_const_receiver&) ASIO_NOEXCEPT - { - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_START_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct start_free<const free_start_const_receiver> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_START_FREE_TRAIT) - -struct non_const_member_start -{ - void start() ASIO_NOEXCEPT - { - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct start_member<non_const_member_start> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -struct free_start_non_const_receiver -{ - friend void start(free_start_non_const_receiver&) ASIO_NOEXCEPT - { - ++call_count; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_START_FREE_TRAIT) - -namespace asio { -namespace traits { - -template <> -struct start_free<free_start_non_const_receiver> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_START_FREE_TRAIT) - -void test_can_start() -{ - ASIO_CONSTEXPR bool b1 = exec::can_start< - no_start&>::value; - ASIO_CHECK(b1 == false); - - ASIO_CONSTEXPR bool b2 = exec::can_start< - const no_start&>::value; - ASIO_CHECK(b2 == false); - - ASIO_CONSTEXPR bool b3 = exec::can_start< - const_member_start&>::value; - ASIO_CHECK(b3 == true); - - ASIO_CONSTEXPR bool b4 = exec::can_start< - const const_member_start&>::value; - ASIO_CHECK(b4 == true); - - ASIO_CONSTEXPR bool b5 = exec::can_start< - free_start_const_receiver&>::value; - ASIO_CHECK(b5 == true); - - ASIO_CONSTEXPR bool b6 = exec::can_start< - const free_start_const_receiver&>::value; - ASIO_CHECK(b6 == true); - - ASIO_CONSTEXPR bool b7 = exec::can_start< - non_const_member_start&>::value; - ASIO_CHECK(b7 == true); - - ASIO_CONSTEXPR bool b8 = exec::can_start< - const non_const_member_start&>::value; - ASIO_CHECK(b8 == false); - - ASIO_CONSTEXPR bool b9 = exec::can_start< - free_start_non_const_receiver&>::value; - ASIO_CHECK(b9 == true); - - ASIO_CONSTEXPR bool b10 = exec::can_start< - const free_start_non_const_receiver&>::value; - ASIO_CHECK(b10 == false); -} - -void increment(int* count) -{ - ++(*count); -} - -void test_start() -{ - call_count = 0; - const_member_start ex1 = {}; - exec::start(ex1); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const const_member_start ex2 = {}; - exec::start(ex2); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::start(const_member_start()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_start_const_receiver ex3 = {}; - exec::start(ex3); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const free_start_const_receiver ex4 = {}; - exec::start(ex4); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::start(free_start_const_receiver()); - ASIO_CHECK(call_count == 1); - - call_count = 0; - non_const_member_start ex5 = {}; - exec::start(ex5); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_start_non_const_receiver ex6 = {}; - exec::start(ex6); - ASIO_CHECK(call_count == 1); -} - -ASIO_TEST_SUITE -( - "start", - ASIO_TEST_CASE(test_can_start) - ASIO_TEST_CASE(test_start) -) diff --git a/3rdparty/asio/src/tests/unit/execution/submit.cpp b/3rdparty/asio/src/tests/unit/execution/submit.cpp deleted file mode 100644 index 6042ef18f1e..00000000000 --- a/3rdparty/asio/src/tests/unit/execution/submit.cpp +++ /dev/null @@ -1,546 +0,0 @@ -// -// submit.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2021 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) -// - -// Disable autolinking for unit tests. -#if !defined(BOOST_ALL_NO_LIB) -#define BOOST_ALL_NO_LIB 1 -#endif // !defined(BOOST_ALL_NO_LIB) - -// Test that header file is self-contained. -#include "asio/execution/submit.hpp" - -#include "asio/error_code.hpp" -#include "../unit_test.hpp" - -namespace exec = asio::execution; - -static int call_count = 0; - -struct operation_state -{ - void start() ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -template <> -struct start_member<operation_state> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct no_submit_1 -{ -}; - -struct no_submit_2 : exec::sender_base -{ -}; - -struct no_submit_3 -{ - template <typename R> - void submit(ASIO_MOVE_ARG(R) r) - { - (void)r; - } -}; - -#if !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT) - -namespace asio { -namespace traits { - -template <typename R> -struct submit_member<no_submit_3, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -} // namespace traits -} // namespace asio - -#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT) - -struct const_member_submit : exec::sender_base -{ - const_member_submit() - { - } - - template <typename R> - operation_state connect(ASIO_MOVE_ARG(R) r) const - { - (void)r; - return operation_state(); - } - - template <typename R> - void submit(ASIO_MOVE_ARG(R) r) const - { - (void)r; - ++call_count; - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -template <typename R> -struct connect_member<const const_member_submit, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT) - -template <typename R> -struct submit_member<const const_member_submit, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct free_submit_const_receiver : exec::sender_base -{ - free_submit_const_receiver() - { - } - - template <typename R> - friend operation_state connect( - const free_submit_const_receiver&, ASIO_MOVE_ARG(R) r) - { - (void)r; - return operation_state(); - } - - template <typename R> - friend void submit( - const free_submit_const_receiver&, ASIO_MOVE_ARG(R) r) - { - (void)r; - ++call_count; - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT) - -template <typename R> -struct connect_free<const free_submit_const_receiver, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_SUBMIT_FREE_TRAIT) - -template <typename R> -struct submit_free<const free_submit_const_receiver, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_FREE_TRAIT) - -} // namespace traits -} // namespace asio - -struct non_const_member_submit : exec::sender_base -{ - non_const_member_submit() - { - } - - template <typename R> - operation_state connect(ASIO_MOVE_ARG(R) r) - { - (void)r; - return operation_state(); - } - - template <typename R> - void submit(ASIO_MOVE_ARG(R) r) - { - (void)r; - ++call_count; - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -template <typename R> -struct connect_member<non_const_member_submit, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT) - -template <typename R> -struct submit_member<non_const_member_submit, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct free_submit_non_const_receiver : exec::sender_base -{ - free_submit_non_const_receiver() - { - } - - template <typename R> - friend operation_state connect( - free_submit_non_const_receiver&, ASIO_MOVE_ARG(R) r) - { - (void)r; - return operation_state(); - } - - template <typename R> - friend void submit( - free_submit_non_const_receiver&, ASIO_MOVE_ARG(R) r) - { - (void)r; - ++call_count; - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT) - -template <typename R> -struct connect_free<free_submit_non_const_receiver, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef operation_state result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_SUBMIT_FREE_TRAIT) - -template <typename R> -struct submit_free<free_submit_non_const_receiver, R> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_FREE_TRAIT) - -} // namespace traits -} // namespace asio - -struct receiver -{ - receiver() - { - } - - receiver(const receiver&) - { - } - -#if defined(ASIO_HAS_MOVE) - receiver(receiver&&) ASIO_NOEXCEPT - { - } -#endif // defined(ASIO_HAS_MOVE) - - template <typename E> - void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT - { - (void)e; - } - - void set_done() ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -template <typename E> -struct set_error_member<receiver, E> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -template <> -struct set_done_member<receiver> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -struct executor -{ - executor() - { - } - - executor(const executor&) ASIO_NOEXCEPT - { - } - -#if defined(ASIO_HAS_MOVE) - executor(executor&&) ASIO_NOEXCEPT - { - } -#endif // defined(ASIO_HAS_MOVE) - - template <typename F> - void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT - { - (void)f; - ++call_count; - } - - bool operator==(const executor&) const ASIO_NOEXCEPT - { - return true; - } - - bool operator!=(const executor&) const ASIO_NOEXCEPT - { - return false; - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) - -template <typename F> -struct execute_member<executor, F> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) -#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) - -template <> -struct equality_comparable<executor> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); -}; - -#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) - -} // namespace traits -} // namespace asio - -void test_can_submit() -{ - ASIO_CONSTEXPR bool b1 = exec::can_submit< - no_submit_1&, receiver>::value; - ASIO_CHECK(b1 == false); - - ASIO_CONSTEXPR bool b2 = exec::can_submit< - const no_submit_1&, receiver>::value; - ASIO_CHECK(b2 == false); - - ASIO_CONSTEXPR bool b3 = exec::can_submit< - no_submit_2&, receiver>::value; - ASIO_CHECK(b3 == false); - - ASIO_CONSTEXPR bool b4 = exec::can_submit< - const no_submit_2&, receiver>::value; - ASIO_CHECK(b4 == false); - - ASIO_CONSTEXPR bool b5 = exec::can_submit< - no_submit_3&, receiver>::value; - ASIO_CHECK(b5 == false); - - ASIO_CONSTEXPR bool b6 = exec::can_submit< - const no_submit_3&, receiver>::value; - ASIO_CHECK(b6 == false); - - ASIO_CONSTEXPR bool b7 = exec::can_submit< - const_member_submit&, receiver>::value; - ASIO_CHECK(b7 == true); - - ASIO_CONSTEXPR bool b8 = exec::can_submit< - const const_member_submit&, receiver>::value; - ASIO_CHECK(b8 == true); - - ASIO_CONSTEXPR bool b9 = exec::can_submit< - free_submit_const_receiver&, receiver>::value; - ASIO_CHECK(b9 == true); - - ASIO_CONSTEXPR bool b10 = exec::can_submit< - const free_submit_const_receiver&, receiver>::value; - ASIO_CHECK(b10 == true); - - ASIO_CONSTEXPR bool b11 = exec::can_submit< - non_const_member_submit&, receiver>::value; - ASIO_CHECK(b11 == true); - - ASIO_CONSTEXPR bool b12 = exec::can_submit< - const non_const_member_submit&, receiver>::value; - ASIO_CHECK(b12 == false); - - ASIO_CONSTEXPR bool b13 = exec::can_submit< - free_submit_non_const_receiver&, receiver>::value; - ASIO_CHECK(b13 == true); - - ASIO_CONSTEXPR bool b14 = exec::can_submit< - const free_submit_non_const_receiver&, receiver>::value; - ASIO_CHECK(b14 == false); - - ASIO_CONSTEXPR bool b15 = exec::can_submit< - executor&, receiver>::value; - ASIO_CHECK(b15 == true); - - ASIO_CONSTEXPR bool b16 = exec::can_submit< - const executor&, receiver>::value; - ASIO_CHECK(b16 == true); -} - -void increment(int* count) -{ - ++(*count); -} - -void test_submit() -{ - receiver r; - - call_count = 0; - const_member_submit s1; - exec::submit(s1, r); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const const_member_submit s2; - exec::submit(s2, r); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::submit(const_member_submit(), r); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_submit_const_receiver s3; - exec::submit(s3, r); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const free_submit_const_receiver s4; - exec::submit(s4, r); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::submit(free_submit_const_receiver(), r); - ASIO_CHECK(call_count == 1); - - call_count = 0; - non_const_member_submit s5; - exec::submit(s5, r); - ASIO_CHECK(call_count == 1); - - call_count = 0; - free_submit_non_const_receiver s6; - exec::submit(s6, r); - ASIO_CHECK(call_count == 1); - - call_count = 0; - executor s7; - exec::submit(s7, r); - ASIO_CHECK(call_count == 1); - - call_count = 0; - const executor s8; - exec::submit(s8, r); - ASIO_CHECK(call_count == 1); - - call_count = 0; - exec::submit(executor(), r); - ASIO_CHECK(call_count == 1); -} - -ASIO_TEST_SUITE -( - "submit", - ASIO_TEST_CASE(test_can_submit) - ASIO_TEST_CASE(test_submit) -) diff --git a/3rdparty/asio/src/tests/unit/execution_context.cpp b/3rdparty/asio/src/tests/unit/execution_context.cpp index fff86c98a73..cf5a499e256 100644 --- a/3rdparty/asio/src/tests/unit/execution_context.cpp +++ b/3rdparty/asio/src/tests/unit/execution_context.cpp @@ -2,7 +2,7 @@ // execution_context.cpp // ~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/executor.cpp b/3rdparty/asio/src/tests/unit/executor.cpp index 4ec2258c2fd..7ea75055aa4 100644 --- a/3rdparty/asio/src/tests/unit/executor.cpp +++ b/3rdparty/asio/src/tests/unit/executor.cpp @@ -2,7 +2,7 @@ // executor.cpp // ~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/executor_work_guard.cpp b/3rdparty/asio/src/tests/unit/executor_work_guard.cpp index 9fb0b08da61..5d7aecd5c7c 100644 --- a/3rdparty/asio/src/tests/unit/executor_work_guard.cpp +++ b/3rdparty/asio/src/tests/unit/executor_work_guard.cpp @@ -2,7 +2,7 @@ // executor_work_guard.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/experimental/awaitable_operators.cpp b/3rdparty/asio/src/tests/unit/experimental/awaitable_operators.cpp index 2323f0d7932..e79eeae3eea 100644 --- a/3rdparty/asio/src/tests/unit/experimental/awaitable_operators.cpp +++ b/3rdparty/asio/src/tests/unit/experimental/awaitable_operators.cpp @@ -2,7 +2,7 @@ // experimental/awaitable_operators.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/experimental/basic_channel.cpp b/3rdparty/asio/src/tests/unit/experimental/basic_channel.cpp new file mode 100644 index 00000000000..a277efeb27c --- /dev/null +++ b/3rdparty/asio/src/tests/unit/experimental/basic_channel.cpp @@ -0,0 +1,25 @@ +// +// experimental/basic_channel.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/experimental/basic_channel.hpp" + +#include "../unit_test.hpp" + +ASIO_TEST_SUITE +( + "experimental/basic_channel", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/experimental/basic_concurrent_channel.cpp b/3rdparty/asio/src/tests/unit/experimental/basic_concurrent_channel.cpp new file mode 100644 index 00000000000..413d1870bd9 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/experimental/basic_concurrent_channel.cpp @@ -0,0 +1,25 @@ +// +// experimental/basic_concurrent_channel.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/experimental/basic_concurrent_channel.hpp" + +#include "../unit_test.hpp" + +ASIO_TEST_SUITE +( + "experimental/basic_concurrent_channel", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/experimental/channel.cpp b/3rdparty/asio/src/tests/unit/experimental/channel.cpp new file mode 100644 index 00000000000..6c5b67fe570 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/experimental/channel.cpp @@ -0,0 +1,888 @@ +// +// experimental/channel.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/experimental/channel.hpp" + +#include <utility> +#include "asio/any_completion_handler.hpp" +#include "asio/bind_executor.hpp" +#include "asio/bind_immediate_executor.hpp" +#include "asio/error.hpp" +#include "asio/io_context.hpp" +#include "asio/system_executor.hpp" +#include "../unit_test.hpp" + +using namespace asio; +using namespace asio::experimental; + +void unbuffered_channel_test() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx); + + ASIO_CHECK(ch1.is_open()); + ASIO_CHECK(!ch1.ready()); + + bool b1 = ch1.try_send(asio::error::eof, "hello"); + + ASIO_CHECK(!b1); + + std::string s1 = "abcdefghijklmnopqrstuvwxyz"; + bool b2 = ch1.try_send(asio::error::eof, std::move(s1)); + + ASIO_CHECK(!b2); + ASIO_CHECK(!s1.empty()); + + asio::error_code ec1; + std::string s2; + ch1.async_receive( + [&](asio::error_code ec, std::string s) + { + ec1 = ec; + s2 = std::move(s); + }); + + bool b3 = ch1.try_send(asio::error::eof, std::move(s1)); + + ASIO_CHECK(b3); + ASIO_CHECK(s1.empty()); + + ctx.run(); + + ASIO_CHECK(ec1 == asio::error::eof); + ASIO_CHECK(s2 == "abcdefghijklmnopqrstuvwxyz"); + + bool b4 = ch1.try_receive([](asio::error_code, std::string){}); + + ASIO_CHECK(!b4); + + asio::error_code ec2 = asio::error::would_block; + std::string s3 = "zyxwvutsrqponmlkjihgfedcba"; + ch1.async_send(asio::error::eof, std::move(s3), + [&](asio::error_code ec) + { + ec2 = ec; + }); + + asio::error_code ec3; + std::string s4; + bool b5 = ch1.try_receive( + [&](asio::error_code ec, std::string s) + { + ec3 = ec; + s4 = s; + }); + + ASIO_CHECK(b5); + ASIO_CHECK(ec3 == asio::error::eof); + ASIO_CHECK(s4 == "zyxwvutsrqponmlkjihgfedcba"); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(!ec2); +} + +void buffered_channel_test() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx, 1); + + ASIO_CHECK(ch1.is_open()); + ASIO_CHECK(!ch1.ready()); + + bool b1 = ch1.try_send(asio::error::eof, "hello"); + + ASIO_CHECK(b1); + + std::string s1 = "abcdefghijklmnopqrstuvwxyz"; + bool b2 = ch1.try_send(asio::error::eof, std::move(s1)); + + ASIO_CHECK(!b2); + ASIO_CHECK(!s1.empty()); + + asio::error_code ec1; + std::string s2; + ch1.async_receive( + [&](asio::error_code ec, std::string s) + { + ec1 = ec; + s2 = std::move(s); + }); + + ctx.run(); + + ASIO_CHECK(ec1 == asio::error::eof); + ASIO_CHECK(s2 == "hello"); + + bool b4 = ch1.try_receive([](asio::error_code, std::string){}); + + ASIO_CHECK(!b4); + + asio::error_code ec2 = asio::error::would_block; + std::string s3 = "zyxwvutsrqponmlkjihgfedcba"; + ch1.async_send(asio::error::eof, std::move(s3), + [&](asio::error_code ec) + { + ec2 = ec; + }); + + asio::error_code ec3; + std::string s4; + bool b5 = ch1.try_receive( + [&](asio::error_code ec, std::string s) + { + ec3 = ec; + s4 = s; + }); + + ASIO_CHECK(b5); + ASIO_CHECK(ec3 == asio::error::eof); + ASIO_CHECK(s4 == "zyxwvutsrqponmlkjihgfedcba"); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(!ec2); + + bool b6 = ch1.try_send(asio::error_code(), "goodbye"); + + ASIO_CHECK(b6); + + ch1.close(); + + asio::error_code ec4; + std::string s5; + ch1.async_receive( + [&](asio::error_code ec, std::string s) + { + ec4 = ec; + s5 = std::move(s); + }); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(!ec4); + ASIO_CHECK(s5 == "goodbye"); + + asio::error_code ec5; + std::string s6; + ch1.async_receive( + [&](asio::error_code ec, std::string s) + { + ec5 = ec; + s6 = std::move(s); + }); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(ec5 == asio::experimental::channel_errc::channel_closed); + ASIO_CHECK(s6.empty()); +} + +void buffered_error_channel_test() +{ + io_context ctx; + + channel<void(asio::error_code)> ch1(ctx, 1); + + ASIO_CHECK(ch1.is_open()); + ASIO_CHECK(!ch1.ready()); + + bool b1 = ch1.try_send(asio::error::eof); + + ASIO_CHECK(b1); + + bool b2 = ch1.try_send(asio::error::eof); + + ASIO_CHECK(!b2); + + asio::error_code ec1; + ch1.async_receive( + [&](asio::error_code ec) + { + ec1 = ec; + }); + + ctx.run(); + + ASIO_CHECK(ec1 == asio::error::eof); + + bool b4 = ch1.try_receive([](asio::error_code){}); + + ASIO_CHECK(!b4); + + asio::error_code ec2 = asio::error::would_block; + ch1.async_send(asio::error::eof, + [&](asio::error_code ec) + { + ec2 = ec; + }); + + asio::error_code ec3; + bool b5 = ch1.try_receive( + [&](asio::error_code ec) + { + ec3 = ec; + }); + + ASIO_CHECK(b5); + ASIO_CHECK(ec3 == asio::error::eof); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(!ec2); +} + +void unbuffered_non_immediate_receive() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx); + + asio::error_code ec1 = asio::error::would_block; + std::string s1 = "0123456789"; + ch1.async_send(asio::error::eof, std::move(s1), + [&](asio::error_code ec) + { + ec1 = ec; + }); + + ASIO_CHECK(ec1 == asio::error::would_block); + + asio::error_code ec2 = asio::error::would_block; + std::string s2; + ch1.async_receive( + [&](asio::error_code ec, std::string s) + { + ec2 = ec; + s2 = std::move(s); + }); + + ASIO_CHECK(ec2 == asio::error::would_block); + + ctx.run(); + + ASIO_CHECK(!ec1); + ASIO_CHECK(ec2 == asio::error::eof); + ASIO_CHECK(s2 == "0123456789"); +} + +void unbuffered_immediate_receive() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx); + + asio::error_code ec1 = asio::error::would_block; + std::string s1 = "0123456789"; + ch1.async_send(asio::error::eof, std::move(s1), + [&](asio::error_code ec) + { + ec1 = ec; + }); + + ASIO_CHECK(ec1 == asio::error::would_block); + + asio::error_code ec2 = asio::error::would_block; + std::string s2; + ch1.async_receive( + bind_immediate_executor(system_executor(), + [&](asio::error_code ec, std::string s) + { + ec2 = ec; + s2 = std::move(s); + })); + + ASIO_CHECK(ec1 == asio::error::would_block); + ASIO_CHECK(ec2 == asio::error::eof); + ASIO_CHECK(s2 == "0123456789"); + + ctx.run(); + + ASIO_CHECK(!ec1); +} + +void unbuffered_executor_receive() +{ + io_context ctx; + io_context ctx2; + + channel<void(asio::error_code, std::string)> ch1(ctx); + + asio::error_code ec1 = asio::error::would_block; + std::string s1 = "0123456789"; + ch1.async_send(asio::error::eof, std::move(s1), + [&](asio::error_code ec) + { + ec1 = ec; + }); + + ASIO_CHECK(ec1 == asio::error::would_block); + + asio::error_code ec2 = asio::error::would_block; + std::string s2; + ch1.async_receive( + bind_executor(ctx2, + [&](asio::error_code ec, std::string s) + { + ec2 = ec; + s2 = std::move(s); + })); + + ASIO_CHECK(ec1 == asio::error::would_block); + ASIO_CHECK(ec2 == asio::error::would_block); + + ctx.run(); + + ASIO_CHECK(!ec1); + ASIO_CHECK(ec2 == asio::error::would_block); + + ctx2.run(); + + ASIO_CHECK(ec2 == asio::error::eof); + ASIO_CHECK(s2 == "0123456789"); +} + +void unbuffered_non_immediate_send() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx); + + asio::error_code ec1 = asio::error::would_block; + std::string s1; + ch1.async_receive( + [&](asio::error_code ec, std::string s) + { + ec1 = ec; + s1 = std::move(s); + }); + + ASIO_CHECK(ec1 == asio::error::would_block); + + asio::error_code ec2 = asio::error::would_block; + std::string s2 = "0123456789"; + ch1.async_send(asio::error::eof, std::move(s2), + [&](asio::error_code ec) + { + ec2 = ec; + }); + + ASIO_CHECK(ec2 == asio::error::would_block); + + ctx.run(); + + ASIO_CHECK(ec1 == asio::error::eof); + ASIO_CHECK(s1 == "0123456789"); + ASIO_CHECK(!ec2); +} + +void unbuffered_immediate_send() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx); + + asio::error_code ec1 = asio::error::would_block; + std::string s1; + ch1.async_receive( + [&](asio::error_code ec, std::string s) + { + ec1 = ec; + s1 = std::move(s); + }); + + ASIO_CHECK(ec1 == asio::error::would_block); + + asio::error_code ec2 = asio::error::would_block; + std::string s2 = "0123456789"; + ch1.async_send(asio::error::eof, std::move(s2), + bind_immediate_executor(system_executor(), + [&](asio::error_code ec) + { + ec2 = ec; + })); + + ASIO_CHECK(ec1 == asio::error::would_block); + ASIO_CHECK(!ec2); + + ctx.run(); + + ASIO_CHECK(ec1 == asio::error::eof); + ASIO_CHECK(s1 == "0123456789"); +} + +void unbuffered_executor_send() +{ + io_context ctx; + io_context ctx2; + + channel<void(asio::error_code, std::string)> ch1(ctx); + + asio::error_code ec1 = asio::error::would_block; + std::string s1; + ch1.async_receive( + [&](asio::error_code ec, std::string s) + { + ec1 = ec; + s1 = std::move(s); + }); + + ASIO_CHECK(ec1 == asio::error::would_block); + + asio::error_code ec2 = asio::error::would_block; + std::string s2 = "0123456789"; + ch1.async_send(asio::error::eof, std::move(s2), + bind_executor(ctx2, + [&](asio::error_code ec) + { + ec2 = ec; + })); + + ASIO_CHECK(ec1 == asio::error::would_block); + ASIO_CHECK(ec2 == asio::error::would_block); + + ctx.run(); + + ASIO_CHECK(ec1 == asio::error::eof); + ASIO_CHECK(s1 == "0123456789"); + ASIO_CHECK(ec2 == asio::error::would_block); + + ctx2.run(); + + ASIO_CHECK(!ec2); +} + +void buffered_non_immediate_receive() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx, 1); + + asio::error_code ec1 = asio::error::would_block; + std::string s1 = "0123456789"; + ch1.async_send(asio::error::eof, std::move(s1), + [&](asio::error_code ec) + { + ec1 = ec; + }); + + ASIO_CHECK(ec1 == asio::error::would_block); + + ctx.run(); + + ASIO_CHECK(!ec1); + + asio::error_code ec2 = asio::error::would_block; + std::string s2; + ch1.async_receive( + [&](asio::error_code ec, std::string s) + { + ec2 = ec; + s2 = std::move(s); + }); + + ASIO_CHECK(ec2 == asio::error::would_block); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(ec2 == asio::error::eof); + ASIO_CHECK(s2 == "0123456789"); +} + +void buffered_immediate_receive() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx, 1); + + asio::error_code ec1 = asio::error::would_block; + std::string s1 = "0123456789"; + ch1.async_send(asio::error::eof, std::move(s1), + [&](asio::error_code ec) + { + ec1 = ec; + }); + + ASIO_CHECK(ec1 == asio::error::would_block); + + ctx.run(); + + ASIO_CHECK(!ec1); + + asio::error_code ec2 = asio::error::would_block; + std::string s2; + ch1.async_receive( + bind_immediate_executor(system_executor(), + [&](asio::error_code ec, std::string s) + { + ec2 = ec; + s2 = std::move(s); + })); + + ASIO_CHECK(ec2 == asio::error::eof); + ASIO_CHECK(s2 == "0123456789"); + + ctx.restart(); + ctx.run(); +} + +void buffered_executor_receive() +{ + io_context ctx; + io_context ctx2; + + channel<void(asio::error_code, std::string)> ch1(ctx, 1); + + asio::error_code ec1 = asio::error::would_block; + std::string s1 = "0123456789"; + ch1.async_send(asio::error::eof, std::move(s1), + [&](asio::error_code ec) + { + ec1 = ec; + }); + + ASIO_CHECK(ec1 == asio::error::would_block); + + ctx.run(); + + ASIO_CHECK(!ec1); + + asio::error_code ec2 = asio::error::would_block; + std::string s2; + ch1.async_receive( + bind_executor(ctx2, + [&](asio::error_code ec, std::string s) + { + ec2 = ec; + s2 = std::move(s); + })); + + ASIO_CHECK(ec2 == asio::error::would_block); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(ec2 == asio::error::would_block); + + ctx2.run(); + + ASIO_CHECK(ec2 == asio::error::eof); + ASIO_CHECK(s2 == "0123456789"); +} + +void buffered_non_immediate_send() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx, 1); + + asio::error_code ec1 = asio::error::would_block; + std::string s1 = "0123456789"; + ch1.async_send(asio::error::eof, std::move(s1), + [&](asio::error_code ec) + { + ec1 = ec; + }); + + ASIO_CHECK(ec1 == asio::error::would_block); + + ctx.run(); + + ASIO_CHECK(!ec1); +} + +void buffered_immediate_send() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx, 1); + + asio::error_code ec1 = asio::error::would_block; + std::string s1 = "0123456789"; + ch1.async_send(asio::error::eof, std::move(s1), + bind_immediate_executor(system_executor(), + [&](asio::error_code ec) + { + ec1 = ec; + })); + + ASIO_CHECK(!ec1); + + ctx.run(); +} + +void buffered_executor_send() +{ + io_context ctx; + io_context ctx2; + + channel<void(asio::error_code, std::string)> ch1(ctx, 1); + + asio::error_code ec1 = asio::error::would_block; + std::string s1 = "0123456789"; + ch1.async_send(asio::error::eof, std::move(s1), + bind_executor(ctx2, + [&](asio::error_code ec) + { + ec1 = ec; + })); + + ASIO_CHECK(ec1 == asio::error::would_block); + + ctx.run(); + + ASIO_CHECK(ec1 == asio::error::would_block); + + ctx2.run(); + + ASIO_CHECK(!ec1); +} + +void try_send_via_dispatch() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx); + + asio::error_code ec1 = asio::error::would_block; + std::string s1; + ch1.async_receive( + bind_executor(asio::system_executor(), + [&](asio::error_code ec, std::string s) + { + ec1 = ec; + s1 = std::move(s); + })); + + ASIO_CHECK(ec1 == asio::error::would_block); + + ctx.poll(); + + ASIO_CHECK(ec1 == asio::error::would_block); + + std::string s2 = "0123456789"; + ch1.try_send_via_dispatch(asio::error::eof, std::move(s2)); + + ASIO_CHECK(ec1 == asio::error::eof); + ASIO_CHECK(s1 == "0123456789"); + ASIO_CHECK(s2.empty()); +} + +void try_send_n_via_dispatch() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx); + + asio::error_code ec1 = asio::error::would_block; + std::string s1; + ch1.async_receive( + bind_executor(asio::system_executor(), + [&](asio::error_code ec, std::string s) + { + ec1 = ec; + s1 = std::move(s); + })); + + ASIO_CHECK(ec1 == asio::error::would_block); + + asio::error_code ec2 = asio::error::would_block; + std::string s2; + ch1.async_receive( + bind_executor(asio::system_executor(), + [&](asio::error_code ec, std::string s) + { + ec2 = ec; + s2 = std::move(s); + })); + + ASIO_CHECK(ec1 == asio::error::would_block); + + ctx.poll(); + + ASIO_CHECK(ec1 == asio::error::would_block); + ASIO_CHECK(ec2 == asio::error::would_block); + + std::string s3 = "0123456789"; + ch1.try_send_n_via_dispatch(2, asio::error::eof, std::move(s3)); + + ASIO_CHECK(ec1 == asio::error::eof); + ASIO_CHECK(s1 == "0123456789"); + ASIO_CHECK(ec2 == asio::error::eof); + ASIO_CHECK(s2 == "0123456789"); + ASIO_CHECK(s3.empty()); +} + +struct multi_signature_handler +{ + std::string* s_; + asio::error_code* ec_; + + void operator()(std::string s) + { + *s_ = s; + } + + void operator()(asio::error_code ec) + { + *ec_ = ec; + } +}; + +void implicit_error_signature_channel_test() +{ + io_context ctx; + + channel<void(std::string)> ch1(ctx); + + ASIO_CHECK(ch1.is_open()); + ASIO_CHECK(!ch1.ready()); + + bool b1 = ch1.try_send("hello"); + + ASIO_CHECK(!b1); + + std::string s1 = "abcdefghijklmnopqrstuvwxyz"; + bool b2 = ch1.try_send(std::move(s1)); + + ASIO_CHECK(!b2); + ASIO_CHECK(!s1.empty()); + + std::string s2; + asio::error_code ec1 = asio::error::would_block; + multi_signature_handler h1 = {&s2, &ec1}; + ch1.async_receive(h1); + + bool b3 = ch1.try_send(std::move(s1)); + + ASIO_CHECK(b3); + ASIO_CHECK(s1.empty()); + + ctx.run(); + + ASIO_CHECK(s2 == "abcdefghijklmnopqrstuvwxyz"); + ASIO_CHECK(ec1 == asio::error::would_block); + + std::string s3; + asio::error_code ec2; + multi_signature_handler h2 = {&s3, &ec2}; + bool b4 = ch1.try_receive(h2); + + ASIO_CHECK(!b4); + + std::string s4 = "zyxwvutsrqponmlkjihgfedcba"; + asio::error_code ec3; + ch1.async_send(std::move(s4), + [&](asio::error_code ec) + { + ec3 = ec; + }); + + std::string s5; + asio::error_code ec4 = asio::error::would_block; + multi_signature_handler h3 = {&s5, &ec4}; + bool b5 = ch1.try_receive(h3); + + ASIO_CHECK(b5); + ASIO_CHECK(ec4 == asio::error::would_block); + ASIO_CHECK(s5 == "zyxwvutsrqponmlkjihgfedcba"); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(!ec3); + + std::string s6; + asio::error_code ec5 = asio::error::would_block; + multi_signature_handler h4 = {&s6, &ec5}; + ch1.async_receive(h4); + + ch1.close(); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(s6.empty()); + ASIO_CHECK(ec5 == asio::experimental::channel_errc::channel_closed); +} + +void channel_with_any_completion_handler_test() +{ + io_context ctx; + + channel<void(asio::error_code, std::string)> ch1(ctx); + + asio::error_code ec1 = asio::error::would_block; + std::string s1; + ch1.async_receive( + asio::any_completion_handler< + void(asio::error_code, std::string)>( + [&](asio::error_code ec, std::string s) + { + ec1 = ec; + s1 = std::move(s); + })); + + asio::error_code ec2 = asio::error::would_block; + std::string s2 = "zyxwvutsrqponmlkjihgfedcba"; + ch1.async_send(asio::error::eof, std::move(s2), + asio::any_completion_handler<void(asio::error_code)>( + [&](asio::error_code ec) + { + ec2 = ec; + })); + + ASIO_CHECK(ec1 == asio::error::would_block); + ASIO_CHECK(ec2 == asio::error::would_block); + + ctx.run(); + + ASIO_CHECK(ec1 == asio::error::eof); + ASIO_CHECK(s1 == "zyxwvutsrqponmlkjihgfedcba"); + ASIO_CHECK(!ec2); +} + +ASIO_TEST_SUITE +( + "experimental/channel", + ASIO_TEST_CASE(unbuffered_channel_test) + ASIO_TEST_CASE(buffered_channel_test) + ASIO_TEST_CASE(buffered_error_channel_test) + ASIO_TEST_CASE(unbuffered_non_immediate_receive) + ASIO_TEST_CASE(unbuffered_immediate_receive) + ASIO_TEST_CASE(unbuffered_executor_receive) + ASIO_TEST_CASE(unbuffered_non_immediate_send) + ASIO_TEST_CASE(unbuffered_immediate_send) + ASIO_TEST_CASE(unbuffered_executor_send) + ASIO_TEST_CASE(buffered_non_immediate_receive) + ASIO_TEST_CASE(buffered_immediate_receive) + ASIO_TEST_CASE(buffered_executor_receive) + ASIO_TEST_CASE(buffered_non_immediate_send) + ASIO_TEST_CASE(buffered_immediate_send) + ASIO_TEST_CASE(buffered_executor_send) + ASIO_TEST_CASE(try_send_via_dispatch) + ASIO_TEST_CASE(try_send_n_via_dispatch) + ASIO_TEST_CASE(implicit_error_signature_channel_test) + ASIO_TEST_CASE(channel_with_any_completion_handler_test) +) diff --git a/3rdparty/asio/src/tests/unit/experimental/channel_traits.cpp b/3rdparty/asio/src/tests/unit/experimental/channel_traits.cpp new file mode 100644 index 00000000000..b1c326f874d --- /dev/null +++ b/3rdparty/asio/src/tests/unit/experimental/channel_traits.cpp @@ -0,0 +1,25 @@ +// +// experimental/channel_traits.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/experimental/channel_traits.hpp" + +#include "../unit_test.hpp" + +ASIO_TEST_SUITE +( + "experimental/channel_traits", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/experimental/co_composed.cpp b/3rdparty/asio/src/tests/unit/experimental/co_composed.cpp new file mode 100644 index 00000000000..755cd46d788 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/experimental/co_composed.cpp @@ -0,0 +1,518 @@ +// +// experimental/co_composed.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Prevent link dependency on the Boost.System library. +#if !defined(BOOST_SYSTEM_NO_DEPRECATED) +#define BOOST_SYSTEM_NO_DEPRECATED +#endif // !defined(BOOST_SYSTEM_NO_DEPRECATED) + +// Test that header file is self-contained. +#include "asio/experimental/co_composed.hpp" + +#include "asio/bind_cancellation_slot.hpp" +#include "asio/deferred.hpp" +#include "asio/detached.hpp" +#include "asio/io_context.hpp" +#include "asio/post.hpp" +#include "../unit_test.hpp" + +template <typename CompletionToken> +auto async_throw(CompletionToken&& token) +{ + return asio::async_initiate<CompletionToken, void()>( + [](auto) { throw 42; }, token); +} + +template <typename CompletionToken> +auto throw_first(CompletionToken&& token) +{ + return asio::async_initiate<CompletionToken, void()>( + asio::experimental::co_composed( + [](auto state) -> void + { + throw 42; + co_yield state.complete(); + }), token); +} + +void test_throw_first() +{ + try + { + throw_first(asio::detached); + ASIO_CHECK(0); + } + catch (int) + { + } +} + +template <typename CompletionToken> +auto throw_after_await(asio::io_context& ctx, CompletionToken&& token) +{ + return asio::async_initiate<CompletionToken, void()>( + asio::experimental::co_composed( + [](auto state, asio::io_context& ctx) -> void + { + co_await asio::post(ctx, asio::deferred); + throw 42; + co_yield state.complete(); + }), token, std::ref(ctx)); +} + +void test_throw_after_await() +{ + try + { + asio::io_context ctx(1); + throw_after_await(ctx, asio::detached); + ctx.run(); + ASIO_CHECK(0); + } + catch (int) + { + } +} + +template <typename CompletionToken> +auto throw_in_first_suspend(CompletionToken&& token) +{ + return asio::async_initiate<CompletionToken, void()>( + asio::experimental::co_composed( + [](auto state) -> void + { + co_await async_throw(asio::deferred); + co_yield state.complete(); + }), token); +} + +void test_throw_in_first_suspend() +{ + try + { + throw_in_first_suspend(asio::detached); + ASIO_CHECK(0); + } + catch (int) + { + } +} + +template <typename CompletionToken> +auto throw_in_suspend_after_await( + asio::io_context& ctx, CompletionToken&& token) +{ + return asio::async_initiate<CompletionToken, void()>( + asio::experimental::co_composed( + [](auto state, asio::io_context& ctx) -> void + { + co_await asio::post(ctx, asio::deferred); + co_await async_throw(asio::deferred); + co_yield state.complete(); + }), token, std::ref(ctx)); +} + +void test_throw_in_suspend_after_await() +{ + try + { + asio::io_context ctx(1); + throw_in_suspend_after_await(ctx, asio::detached); + ctx.run(); + ASIO_CHECK(0); + } + catch (int) + { + } +} + +template <typename CompletionToken> +auto post_loop(asio::io_context& ctx, CompletionToken&& token) +{ + return asio::async_initiate<CompletionToken, void(int)>( + asio::experimental::co_composed( + [](auto state, asio::io_context& ctx) -> void + { + int i = 0; + for (; i < 100; ++i) + co_await asio::post(ctx, asio::deferred); + co_yield state.complete(i); + }, ctx), token, std::ref(ctx)); +} + +void test_post_loop() +{ + asio::io_context ctx(1); + int count = 0; + post_loop(ctx, [&](int i){ count = i; }); + ctx.run(); + ASIO_CHECK(count == 100); +} + +template <typename CompletionToken> +auto nested_post(asio::io_context& ctx, CompletionToken&& token) +{ + return asio::async_initiate<CompletionToken, void()>( + asio::experimental::co_composed( + [](auto state, asio::io_context& ctx) -> void + { + co_await asio::post(ctx, asio::deferred); + co_yield state.complete(); + }, ctx), token, std::ref(ctx)); +} + +template <typename CompletionToken> +auto nested_post_loop(asio::io_context& ctx, CompletionToken&& token) +{ + return asio::async_initiate<CompletionToken, void(int)>( + asio::experimental::co_composed( + [](auto state, asio::io_context& ctx) -> void + { + int i = 0; + for (; i < 100; ++i) + co_await nested_post(ctx, asio::deferred); + co_yield state.complete(i); + }, ctx), token, std::ref(ctx)); +} + +void test_nested_post_loop() +{ + asio::io_context ctx(1); + int count = 0; + nested_post_loop(ctx, [&](int i){ count = i; }); + ctx.run(); + ASIO_CHECK(count == 100); +} + +template <typename CompletionToken> +auto post_loop_return_1_0(asio::io_context& ctx, CompletionToken&& token) +{ + return asio::async_initiate<CompletionToken, void()>( + asio::experimental::co_composed<void()>( + [](auto, asio::io_context& ctx) -> void + { + int i = 0; + for (; i < 100; ++i) + co_await asio::post(ctx, asio::deferred); + co_return {}; + }, ctx), token, std::ref(ctx)); +} + +void test_post_loop_return_1_0() +{ + asio::io_context ctx(1); + bool done = false; + post_loop_return_1_0(ctx, [&]{ done = true; }); + ctx.run(); + ASIO_CHECK(done); +} + +template <typename CompletionToken> +auto post_loop_return_1_1(asio::io_context& ctx, CompletionToken&& token) +{ + return asio::async_initiate<CompletionToken, void(int)>( + asio::experimental::co_composed<void(int)>( + [](auto, asio::io_context& ctx) -> void + { + int i = 0; + for (; i < 100; ++i) + co_await asio::post(ctx, asio::deferred); + co_return {i}; + }, ctx), token, std::ref(ctx)); +} + +void test_post_loop_return_1_1() +{ + asio::io_context ctx(1); + int count = 0; + post_loop_return_1_1(ctx, [&](int i){ count = i; }); + ctx.run(); + ASIO_CHECK(count == 100); +} + +template <typename CompletionToken> +auto post_loop_return_1_2(asio::io_context& ctx, CompletionToken&& token) +{ + return asio::async_initiate<CompletionToken, void(int, char)>( + asio::experimental::co_composed<void(int, char)>( + [](auto, asio::io_context& ctx) -> void + { + int i = 0; + for (; i < 100; ++i) + co_await asio::post(ctx, asio::deferred); + co_return {i, 'A'}; + }, ctx), token, std::ref(ctx)); +} + +void test_post_loop_return_1_2() +{ + asio::io_context ctx(1); + int count = 0; + char ch = 0; + post_loop_return_1_2(ctx, [&](int i, char c){ count = i, ch = c; }); + ctx.run(); + ASIO_CHECK(count == 100); + ASIO_CHECK(ch == 'A'); +} + +template <typename CompletionToken> +auto post_loop_return_2(asio::io_context& ctx, CompletionToken&& token) +{ + return asio::async_initiate<CompletionToken, void(), void(int)>( + asio::experimental::co_composed<void(), void(int)>( + [](auto, asio::io_context& ctx) -> void + { + int i = 0; + for (; i < 100; ++i) + co_await asio::post(ctx, asio::deferred); + co_return {i}; + }, ctx), token, std::ref(ctx)); +} + +void test_post_loop_return_2() +{ + asio::io_context ctx(1); + int count = 0; + post_loop_return_2(ctx, [&](int i = 0){ count = i; }); + ctx.run(); + ASIO_CHECK(count == 100); +} + +template <typename CompletionToken> +auto complete_on_cancel(asio::io_context& ctx, CompletionToken&& token) +{ + return asio::async_initiate< + CompletionToken, void(asio::error_code, int)>( + asio::experimental::co_composed< + void(asio::error_code, int)>( + [](auto state, asio::io_context& ctx) -> void + { + state.on_cancellation_complete_with( + asio::error::invalid_argument, 42); + int i = 0; + for (; i < 100; ++i) + co_await asio::post(ctx, asio::deferred); + co_return {asio::error::eof, i}; + }, ctx), token, std::ref(ctx)); +} + +void test_complete_on_cancel() +{ + asio::io_context ctx(1); + int count = 0; + asio::error_code ec; + asio::cancellation_signal cancel; + + complete_on_cancel(ctx, + [&](asio::error_code e, int i) + { + ec = e; + count = i; + }); + + ctx.run(); + + ASIO_CHECK(ec == asio::error::eof); + ASIO_CHECK(count == 100); + + complete_on_cancel(ctx, + asio::bind_cancellation_slot(cancel.slot(), + [&](asio::error_code e, int i) + { + ec = e; + count = i; + })); + + ctx.restart(); + ctx.run_one(); + cancel.emit(asio::cancellation_type::all); + ctx.run(); + + ASIO_CHECK(ec == asio::error::invalid_argument); + ASIO_CHECK(count == 42); + + complete_on_cancel(ctx, + asio::bind_cancellation_slot(cancel.slot(), + [&](asio::error_code e, int i) + { + ec = e; + count = i; + })); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(ec == asio::error::eof); + ASIO_CHECK(count == 100); +} + +template <typename CompletionToken> +auto complete_with_default_on_cancel( + asio::io_context& ctx, CompletionToken&& token) +{ + return asio::async_initiate< + CompletionToken, void(asio::error_code, int)>( + asio::experimental::co_composed< + void(asio::error_code, int)>( + [](auto, asio::io_context& ctx) -> void + { + int i = 0; + for (; i < 100; ++i) + co_await asio::post(ctx, asio::deferred); + co_return {asio::error::eof, i}; + }, ctx), token, std::ref(ctx)); +} + +void test_complete_with_default_on_cancel() +{ + asio::io_context ctx(1); + int count = 0; + asio::error_code ec; + asio::cancellation_signal cancel; + + complete_with_default_on_cancel(ctx, + [&](asio::error_code e, int i) + { + ec = e; + count = i; + }); + + ctx.run(); + + ASIO_CHECK(ec == asio::error::eof); + ASIO_CHECK(count == 100); + + complete_with_default_on_cancel(ctx, + asio::bind_cancellation_slot(cancel.slot(), + [&](asio::error_code e, int i) + { + ec = e; + count = i; + })); + + ctx.restart(); + ctx.run_one(); + cancel.emit(asio::cancellation_type::all); + ctx.run(); + + ASIO_CHECK(ec == asio::error::operation_aborted); + ASIO_CHECK(count == 0); + + complete_with_default_on_cancel(ctx, + asio::bind_cancellation_slot(cancel.slot(), + [&](asio::error_code e, int i) + { + ec = e; + count = i; + })); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(ec == asio::error::eof); + ASIO_CHECK(count == 100); +} + +template <typename CompletionToken> +auto throw_on_cancel(asio::io_context& ctx, CompletionToken&& token) +{ + return asio::async_initiate< + CompletionToken, void(asio::error_code, int)>( + asio::experimental::co_composed< + void(asio::error_code, int)>( + [](auto state, asio::io_context& ctx) -> void + { + try + { + state.throw_if_cancelled(true); + int i = 0; + for (; i < 100; ++i) + co_await asio::post(ctx, asio::deferred); + co_return {asio::error::eof, i}; + } + catch (...) + { + co_return {asio::error::invalid_argument, 42}; + } + }, ctx), token, std::ref(ctx)); +} + +void test_throw_on_cancel() +{ + asio::io_context ctx(1); + int count = 0; + asio::error_code ec; + asio::cancellation_signal cancel; + + throw_on_cancel(ctx, + [&](asio::error_code e, int i) + { + ec = e; + count = i; + }); + + ctx.run(); + + ASIO_CHECK(ec == asio::error::eof); + ASIO_CHECK(count == 100); + + throw_on_cancel(ctx, + asio::bind_cancellation_slot(cancel.slot(), + [&](asio::error_code e, int i) + { + ec = e; + count = i; + })); + + ctx.restart(); + ctx.run_one(); + cancel.emit(asio::cancellation_type::all); + ctx.run(); + + ASIO_CHECK(ec == asio::error::invalid_argument); + ASIO_CHECK(count == 42); + + throw_on_cancel(ctx, + asio::bind_cancellation_slot(cancel.slot(), + [&](asio::error_code e, int i) + { + ec = e; + count = i; + })); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(ec == asio::error::eof); + ASIO_CHECK(count == 100); +} + +ASIO_TEST_SUITE +( + "experimental/co_composed", + ASIO_TEST_CASE(test_throw_first) + ASIO_TEST_CASE(test_throw_after_await) + ASIO_TEST_CASE(test_throw_in_first_suspend) + ASIO_TEST_CASE(test_throw_in_suspend_after_await) + ASIO_TEST_CASE(test_post_loop) + ASIO_TEST_CASE(test_nested_post_loop) + ASIO_TEST_CASE(test_post_loop_return_1_0) + ASIO_TEST_CASE(test_post_loop_return_1_1) + ASIO_TEST_CASE(test_post_loop_return_1_2) + ASIO_TEST_CASE(test_post_loop_return_2) + ASIO_TEST_CASE(test_complete_on_cancel) + ASIO_TEST_CASE(test_complete_with_default_on_cancel) + ASIO_TEST_CASE(test_throw_on_cancel) +) diff --git a/3rdparty/asio/src/tests/unit/experimental/concurrent_channel.cpp b/3rdparty/asio/src/tests/unit/experimental/concurrent_channel.cpp new file mode 100644 index 00000000000..e64e9051638 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/experimental/concurrent_channel.cpp @@ -0,0 +1,165 @@ +// +// experimental/concurrent_channel.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/experimental/concurrent_channel.hpp" + +#include <utility> +#include "asio/error.hpp" +#include "asio/io_context.hpp" +#include "../unit_test.hpp" + +using namespace asio; +using namespace asio::experimental; + +void unbuffered_concurrent_channel_test() +{ + io_context ctx; + + concurrent_channel<void(asio::error_code, std::string)> ch1(ctx); + + ASIO_CHECK(ch1.is_open()); + ASIO_CHECK(!ch1.ready()); + + bool b1 = ch1.try_send(asio::error::eof, "hello"); + + ASIO_CHECK(!b1); + + std::string s1 = "abcdefghijklmnopqrstuvwxyz"; + bool b2 = ch1.try_send(asio::error::eof, std::move(s1)); + + ASIO_CHECK(!b2); + ASIO_CHECK(!s1.empty()); + + asio::error_code ec1; + std::string s2; + ch1.async_receive( + [&](asio::error_code ec, std::string s) + { + ec1 = ec; + s2 = std::move(s); + }); + + bool b3 = ch1.try_send(asio::error::eof, std::move(s1)); + + ASIO_CHECK(b3); + ASIO_CHECK(s1.empty()); + + ctx.run(); + + ASIO_CHECK(ec1 == asio::error::eof); + ASIO_CHECK(s2 == "abcdefghijklmnopqrstuvwxyz"); + + bool b4 = ch1.try_receive([](asio::error_code, std::string){}); + + ASIO_CHECK(!b4); + + asio::error_code ec2 = asio::error::would_block; + std::string s3 = "zyxwvutsrqponmlkjihgfedcba"; + ch1.async_send(asio::error::eof, std::move(s3), + [&](asio::error_code ec) + { + ec2 = ec; + }); + + asio::error_code ec3; + std::string s4; + bool b5 = ch1.try_receive( + [&](asio::error_code ec, std::string s) + { + ec3 = ec; + s4 = s; + }); + + ASIO_CHECK(b5); + ASIO_CHECK(ec3 == asio::error::eof); + ASIO_CHECK(s4 == "zyxwvutsrqponmlkjihgfedcba"); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(!ec2); +}; + +void buffered_concurrent_channel_test() +{ + io_context ctx; + + concurrent_channel<void(asio::error_code, std::string)> ch1(ctx, 1); + + ASIO_CHECK(ch1.is_open()); + ASIO_CHECK(!ch1.ready()); + + bool b1 = ch1.try_send(asio::error::eof, "hello"); + + ASIO_CHECK(b1); + + std::string s1 = "abcdefghijklmnopqrstuvwxyz"; + bool b2 = ch1.try_send(asio::error::eof, std::move(s1)); + + ASIO_CHECK(!b2); + ASIO_CHECK(!s1.empty()); + + asio::error_code ec1; + std::string s2; + ch1.async_receive( + [&](asio::error_code ec, std::string s) + { + ec1 = ec; + s2 = std::move(s); + }); + + ctx.run(); + + ASIO_CHECK(ec1 == asio::error::eof); + ASIO_CHECK(s2 == "hello"); + + bool b4 = ch1.try_receive([](asio::error_code, std::string){}); + + ASIO_CHECK(!b4); + + asio::error_code ec2 = asio::error::would_block; + std::string s3 = "zyxwvutsrqponmlkjihgfedcba"; + ch1.async_send(asio::error::eof, std::move(s3), + [&](asio::error_code ec) + { + ec2 = ec; + }); + + asio::error_code ec3; + std::string s4; + bool b5 = ch1.try_receive( + [&](asio::error_code ec, std::string s) + { + ec3 = ec; + s4 = s; + }); + + ASIO_CHECK(b5); + ASIO_CHECK(ec3 == asio::error::eof); + ASIO_CHECK(s4 == "zyxwvutsrqponmlkjihgfedcba"); + + ctx.restart(); + ctx.run(); + + ASIO_CHECK(!ec2); +}; + +ASIO_TEST_SUITE +( + "experimental/concurrent_channel", + ASIO_TEST_CASE(unbuffered_concurrent_channel_test) + ASIO_TEST_CASE(buffered_concurrent_channel_test) +) diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/allocator.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/allocator.cpp new file mode 100644 index 00000000000..845906df853 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/experimental/coro/allocator.cpp @@ -0,0 +1,113 @@ +// +// experimental/coro/partial.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2021-2023 Klemens D. Morgenstern +// (klemens dot morgenstern at gmx dot net) +// +// 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/experimental/coro.hpp" + +#include <vector> +#include "asio/io_context.hpp" +#include "../../unit_test.hpp" + +namespace exp = asio::experimental; + +namespace coro { + +template<typename Value = void> +struct tracked_allocator +{ + using value_type = Value; + std::vector<std::pair<void*, std::size_t>> & allocs, &deallocs; + + tracked_allocator(std::vector<std::pair<void*, std::size_t>> & allocs, + std::vector<std::pair<void*, std::size_t>> & deallocs) : allocs(allocs), deallocs(deallocs) {} + + + template<typename T> + tracked_allocator(const tracked_allocator<T> & a) : allocs(a.allocs), deallocs(a.deallocs) {} + + value_type* allocate(std::size_t n) + { + auto p = new char[n * sizeof(Value)]; + allocs.emplace_back(p, n); + return reinterpret_cast<value_type*>(p); + } + + void deallocate(void* p, std::size_t n) + { + deallocs.emplace_back(p, n); + delete[] static_cast<char*>(p); +// ASIO_CHECK(allocs.back() == deallocs.back()); + } + + bool operator==(const tracked_allocator & rhs) const + { + return &allocs == &rhs.allocs + && &deallocs == &rhs.deallocs; + } +}; + +exp::coro<void, void, asio::any_io_executor, tracked_allocator<void>> + alloc_test_impl(asio::io_context & ctx, int, std::allocator_arg_t, tracked_allocator<void> ta, double) +{ + co_return ; +} + +void alloc_test() +{ + std::vector<std::pair<void*, std::size_t>> allocs, deallocs; + asio::io_context ctx; + bool ran = false; + + { + auto pp = alloc_test_impl(ctx, 42, std::allocator_arg, {allocs, deallocs}, 42.); + + ASIO_CHECK(allocs.size() == 1u); + ASIO_CHECK(deallocs.empty()); + + pp.async_resume([&](auto e){ran = true; ASIO_CHECK(!e);}); + ctx.run(); + ASIO_CHECK(deallocs.size() == 0u); + } + ctx.restart(); + ctx.run(); + ASIO_CHECK(deallocs.size() == 1u); + ASIO_CHECK(allocs == deallocs); + + ASIO_CHECK(ran); + + ran = false; + + auto p = asio::experimental::detail::post_coroutine( + ctx, + asio::bind_allocator(tracked_allocator{allocs, deallocs}, [&]{ran = true;})).handle; + ASIO_CHECK(allocs.size() == 2u); + ASIO_CHECK(deallocs.size() == 1u); + p.resume(); + ASIO_CHECK(allocs.size() == 3u); + ASIO_CHECK(deallocs.size() == 2u); + ctx.restart(); + ctx.run(); + + ASIO_CHECK(allocs == deallocs); +} + +} // namespace coro + +ASIO_TEST_SUITE +( + "coro/allocate", + ASIO_TEST_CASE(::coro::alloc_test) +) diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/cancel.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/cancel.cpp index 4f99ebd580d..38cf1067908 100644 --- a/3rdparty/asio/src/tests/unit/experimental/coro/cancel.cpp +++ b/3rdparty/asio/src/tests/unit/experimental/coro/cancel.cpp @@ -2,8 +2,8 @@ // experimental/coro/cancel.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2021 Klemens D. Morgenstern -// (klemens dot morgenstern at gmx dot net) +// Copyright (c) 2021-2023 Klemens D. Morgenstern +// (klemens dot morgenstern at gmx dot net) // // 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) @@ -17,10 +17,10 @@ // Test that header file is self-contained. #include "asio/experimental/coro.hpp" #include <iostream> +#include "asio/bind_cancellation_slot.hpp" #include "asio/io_context.hpp" #include "asio/steady_timer.hpp" #include "asio/this_coro.hpp" -#include <boost/scope_exit.hpp> #include "../../unit_test.hpp" using namespace asio::experimental; @@ -32,6 +32,9 @@ namespace coro { auto coro_simple_cancel_impl(asio::io_context& ) noexcept -> asio::experimental::coro<void() noexcept, asio::error_code> { + ASIO_CHECK( + !(co_await this_coro::cancellation_state).cancelled()); + asio::steady_timer timer{ co_await this_coro::executor, std::chrono::seconds(1)}; @@ -50,12 +53,15 @@ auto coro_simple_cancel_impl(asio::io_context& ) noexcept void coro_simple_cancel() { asio::io_context ctx; + asio::cancellation_signal sig; auto k = coro_simple_cancel_impl(ctx); asio::error_code res_ec; - k.async_resume([&](asio::error_code ec) {res_ec = ec;}); - asio::post(ctx, [&]{k.cancel();}); + k.async_resume( + asio::bind_cancellation_slot(sig.slot(), + [&](asio::error_code ec) {res_ec = ec;})); + asio::post(ctx, [&]{sig.emit(asio::cancellation_type::all);}); ASIO_CHECK(!res_ec); @@ -76,12 +82,15 @@ auto coro_throw_cancel_impl(asio::io_context& ) void coro_throw_cancel() { asio::io_context ctx; + asio::cancellation_signal sig; auto k = coro_throw_cancel_impl(ctx); std::exception_ptr res_ex; - k.async_resume([&](std::exception_ptr ex) {res_ex = ex;}); - asio::post(ctx, [&]{k.cancel();}); + k.async_resume( + asio::bind_cancellation_slot(sig.slot(), + [&](std::exception_ptr ex) {res_ex = ex;})); + asio::post(ctx, [&]{sig.emit(asio::cancellation_type::all);}); ASIO_CHECK(!res_ex); @@ -90,7 +99,8 @@ void coro_throw_cancel() ASIO_CHECK(res_ex); try { - std::rethrow_exception(res_ex); + if (res_ex) + std::rethrow_exception(res_ex); } catch (asio::system_error& se) { @@ -132,21 +142,26 @@ auto coro_simple_cancel_nested_kouter( void coro_simple_cancel_nested() { asio::io_context ctx; + asio::cancellation_signal sig; int cnt = 0; auto kouter = coro_simple_cancel_nested_kouter(ctx, cnt); asio::error_code res_ec; - kouter.async_resume([&](asio::error_code ec) {res_ec = ec;}); - asio::post(ctx, [&]{kouter.cancel();}); + kouter.async_resume( + asio::bind_cancellation_slot(sig.slot(), + [&](asio::error_code ec) {res_ec = ec;})); + asio::post(ctx, [&]{sig.emit(asio::cancellation_type::all);}); ASIO_CHECK(!res_ec); ctx.run(); ASIO_CHECK(res_ec == asio::error::operation_aborted); ctx.restart(); res_ec = {}; - kouter.async_resume([&](asio::error_code ec) {res_ec = ec;}); - asio::post(ctx, [&]{kouter.cancel();}); + kouter.async_resume( + asio::bind_cancellation_slot(sig.slot(), + [&](asio::error_code ec) {res_ec = ec;})); + asio::post(ctx, [&]{sig.emit(asio::cancellation_type::all);}); ASIO_CHECK(!res_ec); ctx.run(); ASIO_CHECK(res_ec == asio::error::operation_aborted); diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/co_spawn.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/co_spawn.cpp new file mode 100644 index 00000000000..8e6586252f2 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/experimental/coro/co_spawn.cpp @@ -0,0 +1,67 @@ +// +// experimental/coro/co_spawn.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2021-2023 Klemens D. Morgenstern +// (klemens dot morgenstern at gmx dot net) +// +// 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/experimental/co_spawn.hpp" + +#include <iostream> +#include "asio/io_context.hpp" +#include "asio/steady_timer.hpp" +#include "asio/this_coro.hpp" +#include "../../unit_test.hpp" + +using namespace asio::experimental; +namespace this_coro = asio::this_coro; + +namespace coro { + +auto coro_simple_co_spawn_impl(asio::io_context& , bool &done) noexcept + -> asio::experimental::coro<void() noexcept, int> +{ + asio::steady_timer timer( + co_await this_coro::executor, + std::chrono::milliseconds(10)); + + done = true; + + co_return 42; +} + +void coro_co_spawn() +{ + asio::io_context ctx; + + bool done1 = false; + bool done2 = false; + int res = 0; + + co_spawn(coro_simple_co_spawn_impl(ctx, done1), + [&](int r){done2= true; res = r;}); + + ctx.run(); + + ASIO_CHECK(done1); + ASIO_CHECK(done2); + ASIO_CHECK(res == 42); +} + +} // namespace coro + +ASIO_TEST_SUITE +( + "coro/co_spawn", + ASIO_TEST_CASE(::coro::coro_co_spawn) +) diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/exception.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/exception.cpp index 49a91dc32e2..f4d782e9903 100644 --- a/3rdparty/asio/src/tests/unit/experimental/coro/exception.cpp +++ b/3rdparty/asio/src/tests/unit/experimental/coro/exception.cpp @@ -2,8 +2,8 @@ // experimental/coro/exception.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2021 Klemens D. Morgenstern -// (klemens dot morgenstern at gmx dot net) +// Copyright (c) 2021-2023 Klemens D. Morgenstern +// (klemens dot morgenstern at gmx dot net) // // 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) @@ -109,6 +109,8 @@ asio::experimental::coro<int(int)> throwing_stacked( asio::any_io_executor exec, int &val, bool &destroyed_inner, bool &destroyed) { + ASIO_CHECK((co_await asio::this_coro::throw_if_cancelled())); + on_scope_exit x = [&]() noexcept { destroyed = true; }; (void)x; diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/executor.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/executor.cpp new file mode 100644 index 00000000000..e0893da2e50 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/experimental/coro/executor.cpp @@ -0,0 +1,116 @@ +// +// experimental/coro/executor.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2021-2023 Klemens D. Morgenstern +// (klemens dot morgenstern at gmx dot net) +// +// 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/experimental/coro.hpp" + +#include "asio/thread_pool.hpp" +#include "asio/io_context.hpp" +#include "../../unit_test.hpp" + +using namespace asio::experimental; + +namespace coro { + +#define ASIO_CHECKPOINT() \ + ASIO_TEST_IOSTREAM << __FILE__ << "(" << __LINE__ << "): " \ + << asio::detail::test_name() << ": " \ + << "Checkpoint" << std::endl; + +template <typename T> +void different_execs() +{ + asio::thread_pool th_ctx{1u}; + asio::io_context ctx; + + auto o = std::make_optional( + asio::prefer(th_ctx.get_executor(), + asio::execution::outstanding_work.tracked)); + + static bool ran_inner = false, ran_outer = false; + + struct c_inner_t + { + auto operator()(asio::any_io_executor e) -> asio::experimental::coro<T> + { + auto p = e.target<asio::thread_pool::executor_type>(); + ASIO_CHECKPOINT(); + ASIO_CHECK(p); + ASIO_CHECK(p->running_in_this_thread()); + ran_inner = true; + co_return; + }; + + }; + + c_inner_t c_inner; + + struct c_outer_t + { + + auto operator()(asio::any_io_executor e, int, + asio::experimental::coro<T> tp) + -> asio::experimental::coro<void> + { + auto p = e.target<asio::io_context::executor_type>(); + + ASIO_CHECK(p); + ASIO_CHECK(p->running_in_this_thread()); + ASIO_CHECKPOINT(); + + co_await tp; + + ASIO_CHECKPOINT(); + ASIO_CHECK(p->running_in_this_thread()); + + ran_outer = true; + }; + }; + + c_outer_t c_outer; + + bool ran = false; + std::exception_ptr ex; + + auto c = c_outer(ctx.get_executor(), 10, c_inner(th_ctx.get_executor())); + c.async_resume( + [&](std::exception_ptr e) + { + ASIO_CHECK(!e); + ASIO_CHECKPOINT(); + ran = true; + }); + + ASIO_CHECK(!ran); + ctx.run(); + o.reset(); + ASIO_CHECK(ran); + ASIO_CHECK(ran_inner); + ASIO_CHECK(ran_outer); + ASIO_CHECK(!ex); + + th_ctx.stop(); + th_ctx.join(); +} + +} // namespace coro + +ASIO_TEST_SUITE +( + "coro/partial", + ASIO_TEST_CASE(::coro::different_execs<void>) + ASIO_TEST_CASE(::coro::different_execs<int()>) +) diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/partial.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/partial.cpp index 6a615a47461..651b8292204 100644 --- a/3rdparty/asio/src/tests/unit/experimental/coro/partial.cpp +++ b/3rdparty/asio/src/tests/unit/experimental/coro/partial.cpp @@ -2,8 +2,8 @@ // experimental/coro/partial.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2021 Klemens D. Morgenstern -// (klemens dot morgenstern at gmx dot net) +// Copyright (c) 2021-2023 Klemens D. Morgenstern +// (klemens dot morgenstern at gmx dot net) // // 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) @@ -28,7 +28,7 @@ void partial() { asio::io_context ctx; bool ran = false; - auto p = detail::post_coroutine(ctx, [&]{ran = true;}); + auto p = detail::post_coroutine(ctx, [&]{ran = true;}).handle; ASIO_CHECK(!ran); p.resume(); ASIO_CHECK(!ran); diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/simple_test.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/simple_test.cpp index 92eecd1d95a..5eac0688548 100644 --- a/3rdparty/asio/src/tests/unit/experimental/coro/simple_test.cpp +++ b/3rdparty/asio/src/tests/unit/experimental/coro/simple_test.cpp @@ -2,8 +2,8 @@ // experimental/coro/simple_test.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2021 Klemens D. Morgenstern -// (klemens dot morgenstern at gmx dot net) +// Copyright (c) 2021-2023 Klemens D. Morgenstern +// (klemens dot morgenstern at gmx dot net) // // 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) diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/stack_test.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/stack_test.cpp index 8b06587028e..9177161afcf 100644 --- a/3rdparty/asio/src/tests/unit/experimental/coro/stack_test.cpp +++ b/3rdparty/asio/src/tests/unit/experimental/coro/stack_test.cpp @@ -2,8 +2,8 @@ // experimental/coro/stack_test.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2021 Klemens D. Morgenstern -// (klemens dot morgenstern at gmx dot net) +// Copyright (c) 2021-2023 Klemens D. Morgenstern +// (klemens dot morgenstern at gmx dot net) // // 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) diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/use_coro.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/use_coro.cpp index e8d13afeacf..f2cb7adfcdd 100644 --- a/3rdparty/asio/src/tests/unit/experimental/coro/use_coro.cpp +++ b/3rdparty/asio/src/tests/unit/experimental/coro/use_coro.cpp @@ -2,8 +2,8 @@ // experimental/coro/use_coro.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2021 Klemens D. Morgenstern -// (klemens dot morgenstern at gmx dot net) +// Copyright (c) 2021-2023 Klemens D. Morgenstern +// (klemens dot morgenstern at gmx dot net) // // 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) @@ -37,7 +37,7 @@ asio::experimental::coro<void() noexcept, int> awaiter_noexcept(asio::any_io_executor exec) { asio::steady_timer timer{exec}; - auto ec = co_await timer.async_wait(use_coro); + auto ec = co_await timer.async_wait(asio::deferred); ASIO_CHECK(ec == asio::error_code{}); co_return 42; } diff --git a/3rdparty/asio/src/tests/unit/experimental/parallel_group.cpp b/3rdparty/asio/src/tests/unit/experimental/parallel_group.cpp new file mode 100644 index 00000000000..c91c95f157d --- /dev/null +++ b/3rdparty/asio/src/tests/unit/experimental/parallel_group.cpp @@ -0,0 +1,25 @@ +// +// experimental/parallel_group.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/experimental/parallel_group.hpp" + +#include "../unit_test.hpp" + +ASIO_TEST_SUITE +( + "experimental/parallel_group", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/experimental/promise.cpp b/3rdparty/asio/src/tests/unit/experimental/promise.cpp index 540cae2008b..67923a4c726 100644 --- a/3rdparty/asio/src/tests/unit/experimental/promise.cpp +++ b/3rdparty/asio/src/tests/unit/experimental/promise.cpp @@ -2,8 +2,8 @@ // promise.cpp // ~~~~~~~~~~~ // -// Copyright (c) 2021 Klemens D. Morgenstern -// (klemens dot morgenstern at gmx dot net) +// Copyright (c) 2021-2023 Klemens D. Morgenstern +// (klemens dot morgenstern at gmx dot net) // // 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) @@ -17,6 +17,11 @@ // Test that header file is self-contained. #include "asio/experimental/promise.hpp" +#include "asio/append.hpp" +#include "asio/bind_cancellation_slot.hpp" +#include "asio/compose.hpp" +#include "asio/deferred.hpp" +#include "asio/experimental/use_promise.hpp" #include "asio/steady_timer.hpp" #include "../unit_test.hpp" @@ -25,7 +30,6 @@ namespace promise { void promise_tester() { using namespace asio; - using asio::error_code; using namespace std::chrono; io_context ctx; @@ -33,16 +37,15 @@ void promise_tester() steady_timer timer1{ctx}, timer2{ctx}; const auto started_when = steady_clock::now(); - timer1.expires_at(started_when + milliseconds(2000)); + timer1.expires_at(started_when + milliseconds(5000)); timer2.expires_at(started_when + milliseconds(1000)); - auto p = timer1.async_wait(experimental::use_promise); + auto p1 = timer1.async_wait(experimental::use_promise); steady_clock::time_point completed_when; - error_code ec; + asio::error_code ec; bool called = false; - p.async_wait( - [&](auto ec_) + p1([&](asio::error_code ec_) { ec = ec_; called = true; @@ -50,271 +53,174 @@ void promise_tester() }); steady_clock::time_point timer2_done; - timer2.async_wait([&](auto) { - timer2_done = steady_clock::now();; - p.cancel(); - }); + timer2.async_wait( + [&](asio::error_code) + { + timer2_done = steady_clock::now(); + p1.cancel(); + }); ctx.run(); - ASIO_CHECK(timer2_done + milliseconds(1) > completed_when); + static_assert( + asio::is_async_operation<decltype(p1)>::value, + "promise is async_op"); + + ASIO_CHECK(timer2_done + milliseconds(1) > started_when); + ASIO_CHECK(completed_when > timer2_done); ASIO_CHECK(called); ASIO_CHECK(ec == error::operation_aborted); -} -void promise_race_tester() -{ - using namespace asio; - using asio::error_code; - using namespace std::chrono; - - io_context ctx; + timer1.expires_after(milliseconds(0)); + auto p2 = timer1.async_wait( + asio::append(experimental::use_promise, 123)); - steady_timer timer1{ctx}, timer2{ctx}; + ec = asio::error::would_block; + called = false; - const auto started_when = steady_clock::now(); - timer1.expires_at(started_when + milliseconds(2000)); - timer2.expires_at(started_when + milliseconds(1000)); - - experimental::promise<void(std::variant<error_code, error_code>)> p = - experimental::promise<>::race( - timer1.async_wait(experimental::use_promise), - timer2.async_wait(experimental::use_promise)); - - auto called = false; - error_code ec; - steady_clock::time_point completed_when; - p.async_wait( - [&](auto v) + p2([&](asio::error_code ec_, int i) { - ASIO_CHECK(v.index() == 1); - ec = get<1>(v); + ASIO_CHECK(i == 123); + ec = ec_; called = true; - completed_when = steady_clock::now(); }); + ASIO_CHECK(ec == asio::error::would_block); + ASIO_CHECK(!called); + + ctx.restart(); ctx.run(); - ASIO_CHECK(started_when + milliseconds(1000) <= completed_when); - ASIO_CHECK(started_when + milliseconds(1500) > completed_when); - ASIO_CHECK(called); + static_assert( + asio::is_async_operation<decltype(p2)>::value, + "promise is async_op"); + ASIO_CHECK(!ec); + ASIO_CHECK(called); } -void promise_all_tester() +void promise_slot_tester() { using namespace asio; - using asio::error_code; using namespace std::chrono; io_context ctx; - steady_timer timer1{ctx}, - timer2{ctx}; + steady_timer timer1{ctx}, timer2{ctx}; const auto started_when = steady_clock::now(); - timer1.expires_at(started_when + milliseconds(2000)); + timer1.expires_at(started_when + milliseconds(2500)); timer2.expires_at(started_when + milliseconds(1000)); + auto p = timer1.async_wait(experimental::use_promise); - experimental::promise<void(error_code, error_code)> p = - experimental::promise<>::all( - timer1.async_wait(experimental::use_promise), - timer2.async_wait(experimental::use_promise)); - - bool called = false; steady_clock::time_point completed_when; + asio::error_code ec; + bool called = false; - p.async_wait( - [&](auto ec1, auto ec2) - { - ASIO_CHECK(!ec1); - ASIO_CHECK(!ec2); - called = true; - completed_when = steady_clock::now(); - }); - - ctx.run(); - - ASIO_CHECK(started_when + milliseconds(2000) <= completed_when); - ASIO_CHECK(started_when + milliseconds(2500) > completed_when); - ASIO_CHECK(called); -} - -void promise_race_ranged_tester() -{ - using namespace asio; - using asio::error_code; - using namespace std::chrono; - - io_context ctx; - - steady_timer timer1{ctx}, timer2{ctx}; + asio::cancellation_signal sig; - const auto started_when = steady_clock::now(); - timer1.expires_at(started_when + milliseconds(2000)); - timer2.expires_at(started_when + milliseconds(1000)); + p(asio::bind_cancellation_slot( + sig.slot(), + [&](asio::error_code ec_) + { + ec = ec_; + called = true; + completed_when = steady_clock::now(); + })); - // promise< - // std::variant< - // tuple<error_code, std::size_t>, - // tuple<error_code, std::size_t>>> - experimental::promise<void(std::size_t, error_code)> p = - experimental::promise<>::race( - std::array{ - timer1.async_wait(experimental::use_promise), - timer2.async_wait(experimental::use_promise) - }); - - auto called = false; - auto completed_when = steady_clock::time_point(); - - p.async_wait([&](auto idx, auto ec ) + steady_clock::time_point timer2_done; + timer2.async_wait( + [&](asio::error_code) { - ASIO_CHECK(idx == 1); - called = true; - completed_when = steady_clock::now(); - ASIO_CHECK(!ec); + timer2_done = steady_clock::now(); + sig.emit(asio::cancellation_type::all); }); - std::array<experimental::promise<void()>, 0u> arr; - - experimental::promise<>::race( - ctx.get_executor(), std::move(arr) - ).async_wait( - [](std::size_t idx) {ASIO_CHECK(idx == std::size_t(-1));} - ); - ctx.run(); - ASIO_CHECK(started_when + milliseconds(1000) <= completed_when); - ASIO_CHECK(started_when + milliseconds(1500) > completed_when); - ASIO_CHECK(called); - - std::exception_ptr ex; - - try - { - experimental::promise<>::race(std::move(arr)); - } - catch (...) - { - ex = std::current_exception(); - } + static_assert( + asio::is_async_operation<decltype(p)>::value, + "promise is async_op"); - ASIO_CHECK(ex); + ASIO_CHECK(timer2_done + milliseconds(1) > started_when); + ASIO_CHECK(completed_when > timer2_done); + ASIO_CHECK(called); + ASIO_CHECK(ec == error::operation_aborted); } -void promise_all_ranged_tester() +void early_completion() { using namespace asio; - using asio::error_code; using namespace std::chrono; io_context ctx; + auto p = asio::post(ctx, asio::experimental::use_promise); + ctx.run(); - steady_timer timer1{ctx}, timer2{ctx}; - - const auto started_when = steady_clock::now(); - timer1.expires_at(started_when + milliseconds(2000)); - timer2.expires_at(started_when + milliseconds(1000)); - - // promise< - // std::variant< - // tuple<error_code, std::size_t>, - // tuple<error_code, std::size_t>>> - experimental::promise<void(std::vector<error_code>)> p = - experimental::promise<>::all( - std::array{ - timer1.async_wait(experimental::use_promise), - timer2.async_wait(experimental::use_promise) - }); - - auto called = false; - auto completed_when = steady_clock::time_point(); - - p.async_wait( - [&](auto v){ - ASIO_CHECK(v.size() == 2u); - completed_when = steady_clock::now(); - ASIO_CHECK(!v[0]); - ASIO_CHECK(!v[1]); - called = true; - }); - - std::array<experimental::promise<void()>, 0u> arr; - experimental::promise<>::all( - ctx.get_executor(), std::move(arr) - ).async_wait( - [](auto v) {ASIO_CHECK(v.size() == 0);} - ); + ASIO_CHECK(p.completed()); + bool completed = false; + p([&]{completed = true;}); + ASIO_CHECK(!completed); + ctx.restart(); ctx.run(); + ASIO_CHECK(completed); +} - ASIO_CHECK(started_when + milliseconds(2000) <= completed_when); - ASIO_CHECK(started_when + milliseconds(2500) > completed_when); - ASIO_CHECK(called == true); - - std::exception_ptr ex; - try +struct test_cancel_impl_op +{ + asio::steady_timer & tim; + asio::error_code &ec; + template<typename Self> + void operator()(Self& self) { - experimental::promise<>::all(std::move(arr)); + tim.async_wait(std::forward<Self>(self)); } - catch (...) + + template<typename Self> + void operator()(Self& self, asio::error_code ec_) { - ex = std::current_exception(); + ec = ec_; + self.complete(ec_); } - - ASIO_CHECK(ex); +}; + +template <typename CompletionToken> +ASIO_INITFN_AUTO_RESULT_TYPE( + CompletionToken, void(asio::error_code)) +test_cancel_impl(asio::steady_timer & tim, + asio::error_code &ec, + CompletionToken&& token) +{ + return asio::async_compose<CompletionToken, void(asio::error_code)>( + test_cancel_impl_op{tim, ec}, token, tim); } -void promise_cancel_tester() +void test_cancel() { - using namespace asio; - using asio::error_code; - using namespace std::chrono; - - io_context ctx; - - steady_timer timer1{ctx}, timer2{ctx}; + asio::io_context ctx; + asio::steady_timer tim{ctx, std::chrono::seconds(10)}; + asio::error_code ec; - const auto started_when = steady_clock::now(); - timer1.expires_at(started_when + milliseconds(2000)); - timer2.expires_at(started_when + milliseconds(1000)); - - // promise< - // std::variant< - // tuple<error_code, std::size_t>, - // tuple<error_code, std::size_t>>> - experimental::promise<void(error_code, error_code)> p = - experimental::promise<>::all( - timer1.async_wait(experimental::use_promise), - timer2.async_wait(experimental::use_promise)); - - bool called = false; - p.async_wait( - [&](auto ec1, auto ec2) - { - called = true; - ASIO_CHECK(ec1 == error::operation_aborted); - ASIO_CHECK(ec2 == error::operation_aborted); - }); - - post(ctx, [&]{p.cancel();}); + { + auto p = test_cancel_impl( + tim, ec, asio::experimental::use_promise); + } ctx.run(); - ASIO_CHECK(called); + ASIO_CHECK_MESSAGE( + ec == asio::error::operation_aborted, + ec.message()); } } // namespace promise ASIO_TEST_SUITE ( - "promise", - ASIO_TEST_CASE(promise::promise_tester) - ASIO_TEST_CASE(promise::promise_race_tester) - ASIO_TEST_CASE(promise::promise_all_tester) - ASIO_TEST_CASE(promise::promise_race_ranged_tester) - ASIO_TEST_CASE(promise::promise_all_ranged_tester) - ASIO_TEST_CASE(promise::promise_cancel_tester) + "promise", + ASIO_TEST_CASE(promise::promise_tester) + ASIO_TEST_CASE(promise::promise_slot_tester) + ASIO_TEST_CASE(promise::early_completion) + ASIO_TEST_CASE(promise::test_cancel) ) diff --git a/3rdparty/asio/src/tests/unit/file_base.cpp b/3rdparty/asio/src/tests/unit/file_base.cpp new file mode 100644 index 00000000000..9f517fd8e37 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/file_base.cpp @@ -0,0 +1,25 @@ +// +// file_base.cpp +// ~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/post.hpp" + +#include "unit_test.hpp" + +ASIO_TEST_SUITE +( + "file_base", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/generic/basic_endpoint.cpp b/3rdparty/asio/src/tests/unit/generic/basic_endpoint.cpp index 72d9d428184..c02f32b8c73 100644 --- a/3rdparty/asio/src/tests/unit/generic/basic_endpoint.cpp +++ b/3rdparty/asio/src/tests/unit/generic/basic_endpoint.cpp @@ -2,7 +2,7 @@ // generic/basic_endpoint.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/generic/datagram_protocol.cpp b/3rdparty/asio/src/tests/unit/generic/datagram_protocol.cpp index c072a8bc0a2..23957a7a15d 100644 --- a/3rdparty/asio/src/tests/unit/generic/datagram_protocol.cpp +++ b/3rdparty/asio/src/tests/unit/generic/datagram_protocol.cpp @@ -2,7 +2,7 @@ // generic/datagram_protocol.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -20,6 +20,7 @@ #include "asio/io_context.hpp" #include "asio/ip/udp.hpp" #include "../unit_test.hpp" +#include "../archetypes/async_result.hpp" #if defined(__cplusplus_cli) || defined(__cplusplus_winrt) # define generic cpp_generic @@ -65,6 +66,7 @@ void test() socket_base::message_flags in_flags = 0; socket_base::send_buffer_size socket_option; socket_base::bytes_readable io_control_command; + archetypes::immediate_handler immediate; asio::error_code ec; // basic_datagram_socket constructors. @@ -78,19 +80,15 @@ void test() dp::socket socket4(ioc, dp(af_inet, ipproto_udp), native_socket1); #endif // !defined(ASIO_WINDOWS_RUNTIME) -#if defined(ASIO_HAS_MOVE) dp::socket socket5(std::move(socket4)); asio::ip::udp::socket udp_socket(ioc); dp::socket socket6(std::move(udp_socket)); -#endif // defined(ASIO_HAS_MOVE) // basic_datagram_socket operators. -#if defined(ASIO_HAS_MOVE) socket1 = dp::socket(ioc); socket1 = std::move(socket2); socket1 = asio::ip::udp::socket(ioc); -#endif // defined(ASIO_HAS_MOVE) // basic_io_object functions. @@ -143,6 +141,7 @@ void test() socket1.connect(dp::endpoint(), ec); socket1.async_connect(dp::endpoint(), connect_handler); + socket1.async_connect(dp::endpoint(), immediate); socket1.set_option(socket_option); socket1.set_option(socket_option, ec); @@ -184,6 +183,12 @@ void test() 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); + socket1.async_send(buffer(mutable_char_buffer), immediate); + socket1.async_send(buffer(const_char_buffer), immediate); + socket1.async_send(null_buffers(), immediate); + socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate); + socket1.async_send(buffer(const_char_buffer), in_flags, immediate); + socket1.async_send(null_buffers(), in_flags, immediate); socket1.send_to(buffer(mutable_char_buffer), dp::endpoint()); @@ -216,6 +221,18 @@ void test() dp::endpoint(), in_flags, send_handler); socket1.async_send_to(null_buffers(), dp::endpoint(), in_flags, send_handler); + socket1.async_send_to(buffer(mutable_char_buffer), + dp::endpoint(), immediate); + socket1.async_send_to(buffer(const_char_buffer), + dp::endpoint(), immediate); + socket1.async_send_to(null_buffers(), + dp::endpoint(), immediate); + socket1.async_send_to(buffer(mutable_char_buffer), + dp::endpoint(), in_flags, immediate); + socket1.async_send_to(buffer(const_char_buffer), + dp::endpoint(), in_flags, immediate); + socket1.async_send_to(null_buffers(), + dp::endpoint(), in_flags, immediate); socket1.receive(buffer(mutable_char_buffer)); socket1.receive(null_buffers()); @@ -229,6 +246,10 @@ void test() socket1.async_receive(buffer(mutable_char_buffer), in_flags, receive_handler); socket1.async_receive(null_buffers(), in_flags, receive_handler); + socket1.async_receive(buffer(mutable_char_buffer), immediate); + socket1.async_receive(null_buffers(), immediate); + socket1.async_receive(buffer(mutable_char_buffer), in_flags, immediate); + socket1.async_receive(null_buffers(), in_flags, immediate); dp::endpoint endpoint; socket1.receive_from(buffer(mutable_char_buffer), endpoint); @@ -246,6 +267,14 @@ void test() endpoint, in_flags, receive_handler); socket1.async_receive_from(null_buffers(), endpoint, in_flags, receive_handler); + socket1.async_receive_from(buffer(mutable_char_buffer), + endpoint, immediate); + socket1.async_receive_from(null_buffers(), + endpoint, immediate); + socket1.async_receive_from(buffer(mutable_char_buffer), + endpoint, in_flags, immediate); + socket1.async_receive_from(null_buffers(), + endpoint, in_flags, immediate); } catch (std::exception&) { @@ -259,5 +288,5 @@ void test() ASIO_TEST_SUITE ( "generic/datagram_protocol", - ASIO_TEST_CASE(generic_datagram_protocol_socket_compile::test) + ASIO_COMPILE_TEST_CASE(generic_datagram_protocol_socket_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/generic/raw_protocol.cpp b/3rdparty/asio/src/tests/unit/generic/raw_protocol.cpp index afe17cf7065..d20ef5ba870 100644 --- a/3rdparty/asio/src/tests/unit/generic/raw_protocol.cpp +++ b/3rdparty/asio/src/tests/unit/generic/raw_protocol.cpp @@ -2,7 +2,7 @@ // generic/raw_protocol.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -20,6 +20,7 @@ #include "asio/io_context.hpp" #include "asio/ip/icmp.hpp" #include "../unit_test.hpp" +#include "../archetypes/async_result.hpp" #if defined(__cplusplus_cli) || defined(__cplusplus_winrt) # define generic cpp_generic @@ -65,6 +66,7 @@ void test() socket_base::message_flags in_flags = 0; socket_base::send_buffer_size socket_option; socket_base::bytes_readable io_control_command; + archetypes::immediate_handler immediate; asio::error_code ec; // basic_raw_socket constructors. @@ -78,19 +80,15 @@ void test() rp::socket socket4(ioc, rp(af_inet, ipproto_icmp), native_socket1); #endif // !defined(ASIO_WINDOWS_RUNTIME) -#if defined(ASIO_HAS_MOVE) rp::socket socket5(std::move(socket4)); asio::ip::icmp::socket icmp_socket(ioc); rp::socket socket6(std::move(icmp_socket)); -#endif // defined(ASIO_HAS_MOVE) // basic_datagram_socket operators. -#if defined(ASIO_HAS_MOVE) socket1 = rp::socket(ioc); socket1 = std::move(socket2); socket1 = asio::ip::icmp::socket(ioc); -#endif // defined(ASIO_HAS_MOVE) // basic_io_object functions. @@ -143,6 +141,7 @@ void test() socket1.connect(rp::endpoint(), ec); socket1.async_connect(rp::endpoint(), connect_handler); + socket1.async_connect(rp::endpoint(), immediate); socket1.set_option(socket_option); socket1.set_option(socket_option, ec); @@ -184,6 +183,12 @@ void test() 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); + socket1.async_send(buffer(mutable_char_buffer), immediate); + socket1.async_send(buffer(const_char_buffer), immediate); + socket1.async_send(null_buffers(), immediate); + socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate); + socket1.async_send(buffer(const_char_buffer), in_flags, immediate); + socket1.async_send(null_buffers(), in_flags, immediate); socket1.send_to(buffer(mutable_char_buffer), rp::endpoint()); @@ -216,6 +221,18 @@ void test() rp::endpoint(), in_flags, send_handler); socket1.async_send_to(null_buffers(), rp::endpoint(), in_flags, send_handler); + socket1.async_send_to(buffer(mutable_char_buffer), + rp::endpoint(), immediate); + socket1.async_send_to(buffer(const_char_buffer), + rp::endpoint(), immediate); + socket1.async_send_to(null_buffers(), + rp::endpoint(), immediate); + socket1.async_send_to(buffer(mutable_char_buffer), + rp::endpoint(), in_flags, immediate); + socket1.async_send_to(buffer(const_char_buffer), + rp::endpoint(), in_flags, immediate); + socket1.async_send_to(null_buffers(), + rp::endpoint(), in_flags, immediate); socket1.receive(buffer(mutable_char_buffer)); socket1.receive(null_buffers()); @@ -229,6 +246,11 @@ void test() socket1.async_receive(buffer(mutable_char_buffer), in_flags, receive_handler); socket1.async_receive(null_buffers(), in_flags, receive_handler); + socket1.async_receive(buffer(mutable_char_buffer), immediate); + socket1.async_receive(null_buffers(), immediate); + socket1.async_receive(buffer(mutable_char_buffer), in_flags, + immediate); + socket1.async_receive(null_buffers(), in_flags, immediate); rp::endpoint endpoint; socket1.receive_from(buffer(mutable_char_buffer), endpoint); @@ -246,6 +268,14 @@ void test() endpoint, in_flags, receive_handler); socket1.async_receive_from(null_buffers(), endpoint, in_flags, receive_handler); + socket1.async_receive_from(buffer(mutable_char_buffer), + endpoint, immediate); + socket1.async_receive_from(null_buffers(), + endpoint, immediate); + socket1.async_receive_from(buffer(mutable_char_buffer), + endpoint, in_flags, immediate); + socket1.async_receive_from(null_buffers(), + endpoint, in_flags, immediate); } catch (std::exception&) { @@ -259,5 +289,5 @@ void test() ASIO_TEST_SUITE ( "generic/raw_protocol", - ASIO_TEST_CASE(generic_raw_protocol_socket_compile::test) + ASIO_COMPILE_TEST_CASE(generic_raw_protocol_socket_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/generic/seq_packet_protocol.cpp b/3rdparty/asio/src/tests/unit/generic/seq_packet_protocol.cpp index c4de03bc58b..587445b1f05 100644 --- a/3rdparty/asio/src/tests/unit/generic/seq_packet_protocol.cpp +++ b/3rdparty/asio/src/tests/unit/generic/seq_packet_protocol.cpp @@ -2,7 +2,7 @@ // generic/seq_packet_protocol.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -19,6 +19,7 @@ #include <cstring> #include "asio/io_context.hpp" #include "../unit_test.hpp" +#include "../archetypes/async_result.hpp" #if defined(__cplusplus_cli) || defined(__cplusplus_winrt) # define generic cpp_generic @@ -64,6 +65,7 @@ void test() socket_base::message_flags out_flags = 0; socket_base::send_buffer_size socket_option; socket_base::bytes_readable io_control_command; + archetypes::immediate_handler immediate; asio::error_code ec; // basic_seq_packet_socket constructors. @@ -77,16 +79,12 @@ void test() spp::socket socket4(ioc, spp(af_inet, 0), native_socket1); #endif // !defined(ASIO_WINDOWS_RUNTIME) -#if defined(ASIO_HAS_MOVE) spp::socket socket5(std::move(socket4)); -#endif // defined(ASIO_HAS_MOVE) // basic_seq_packet_socket operators. -#if defined(ASIO_HAS_MOVE) socket1 = spp::socket(ioc); socket1 = std::move(socket2); -#endif // defined(ASIO_HAS_MOVE) // basic_io_object functions. @@ -139,6 +137,7 @@ void test() socket1.connect(spp::endpoint(), ec); socket1.async_connect(spp::endpoint(), connect_handler); + socket1.async_connect(spp::endpoint(), immediate); socket1.set_option(socket_option); socket1.set_option(socket_option, ec); @@ -174,6 +173,9 @@ void test() 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); + socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate); + socket1.async_send(buffer(const_char_buffer), in_flags, immediate); + socket1.async_send(null_buffers(), in_flags, immediate); socket1.receive(buffer(mutable_char_buffer), out_flags); socket1.receive(null_buffers(), out_flags); @@ -188,6 +190,11 @@ void test() socket1.async_receive(buffer(mutable_char_buffer), in_flags, out_flags, receive_handler); socket1.async_receive(null_buffers(), in_flags, out_flags, receive_handler); + socket1.async_receive(buffer(mutable_char_buffer), out_flags, immediate); + socket1.async_receive(null_buffers(), out_flags, immediate); + socket1.async_receive(buffer(mutable_char_buffer), in_flags, + out_flags, immediate); + socket1.async_receive(null_buffers(), in_flags, out_flags, immediate); } catch (std::exception&) { @@ -201,5 +208,5 @@ void test() ASIO_TEST_SUITE ( "generic/seq_packet_protocol", - ASIO_TEST_CASE(generic_seq_packet_protocol_socket_compile::test) + ASIO_COMPILE_TEST_CASE(generic_seq_packet_protocol_socket_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/generic/stream_protocol.cpp b/3rdparty/asio/src/tests/unit/generic/stream_protocol.cpp index 48c681db9f7..dedf6d76cee 100644 --- a/3rdparty/asio/src/tests/unit/generic/stream_protocol.cpp +++ b/3rdparty/asio/src/tests/unit/generic/stream_protocol.cpp @@ -2,7 +2,7 @@ // generic/stream_protocol.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -20,6 +20,7 @@ #include "asio/io_context.hpp" #include "asio/ip/tcp.hpp" #include "../unit_test.hpp" +#include "../archetypes/async_result.hpp" #if defined(__cplusplus_cli) || defined(__cplusplus_winrt) # define generic cpp_generic @@ -73,6 +74,7 @@ void test() socket_base::message_flags in_flags = 0; socket_base::keep_alive socket_option; socket_base::bytes_readable io_control_command; + archetypes::immediate_handler immediate; asio::error_code ec; // basic_stream_socket constructors. @@ -88,19 +90,15 @@ void test() #endif // defined(ASIO_WINDOWS_RUNTIME) sp::socket socket4(ioc, sp(af_inet, ipproto_tcp), native_socket1); -#if defined(ASIO_HAS_MOVE) sp::socket socket5(std::move(socket4)); asio::ip::tcp::socket tcp_socket(ioc); sp::socket socket6(std::move(tcp_socket)); -#endif // defined(ASIO_HAS_MOVE) // basic_stream_socket operators. -#if defined(ASIO_HAS_MOVE) socket1 = sp::socket(ioc); socket1 = std::move(socket2); socket1 = asio::ip::tcp::socket(ioc); -#endif // defined(ASIO_HAS_MOVE) // basic_io_object functions. @@ -159,6 +157,7 @@ void test() socket1.connect(sp::endpoint(), ec); socket1.async_connect(sp::endpoint(), connect_handler); + socket1.async_connect(sp::endpoint(), immediate); socket1.set_option(socket_option); socket1.set_option(socket_option, ec); @@ -200,6 +199,12 @@ void test() 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); + socket1.async_send(buffer(mutable_char_buffer), immediate); + socket1.async_send(buffer(const_char_buffer), immediate); + socket1.async_send(null_buffers(), immediate); + socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate); + socket1.async_send(buffer(const_char_buffer), in_flags, immediate); + socket1.async_send(null_buffers(), in_flags, immediate); socket1.receive(buffer(mutable_char_buffer)); socket1.receive(null_buffers()); @@ -213,6 +218,11 @@ void test() socket1.async_receive(buffer(mutable_char_buffer), in_flags, receive_handler); socket1.async_receive(null_buffers(), in_flags, receive_handler); + socket1.async_receive(buffer(mutable_char_buffer), immediate); + socket1.async_receive(null_buffers(), immediate); + socket1.async_receive(buffer(mutable_char_buffer), in_flags, + immediate); + socket1.async_receive(null_buffers(), in_flags, immediate); socket1.write_some(buffer(mutable_char_buffer)); socket1.write_some(buffer(const_char_buffer)); @@ -224,6 +234,9 @@ void test() socket1.async_write_some(buffer(mutable_char_buffer), write_some_handler); socket1.async_write_some(buffer(const_char_buffer), write_some_handler); socket1.async_write_some(null_buffers(), write_some_handler); + socket1.async_write_some(buffer(mutable_char_buffer), immediate); + socket1.async_write_some(buffer(const_char_buffer), immediate); + socket1.async_write_some(null_buffers(), immediate); socket1.read_some(buffer(mutable_char_buffer)); socket1.read_some(buffer(mutable_char_buffer), ec); @@ -231,6 +244,8 @@ void test() socket1.async_read_some(buffer(mutable_char_buffer), read_some_handler); socket1.async_read_some(null_buffers(), read_some_handler); + socket1.async_read_some(buffer(mutable_char_buffer), immediate); + socket1.async_read_some(null_buffers(), immediate); } catch (std::exception&) { @@ -244,5 +259,5 @@ void test() ASIO_TEST_SUITE ( "generic/stream_protocol", - ASIO_TEST_CASE(generic_stream_protocol_socket_compile::test) + ASIO_COMPILE_TEST_CASE(generic_stream_protocol_socket_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/high_resolution_timer.cpp b/3rdparty/asio/src/tests/unit/high_resolution_timer.cpp index d47717c98ab..b8dd448c321 100644 --- a/3rdparty/asio/src/tests/unit/high_resolution_timer.cpp +++ b/3rdparty/asio/src/tests/unit/high_resolution_timer.cpp @@ -2,7 +2,7 @@ // high_resolution_timer.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/io_context.cpp b/3rdparty/asio/src/tests/unit/io_context.cpp index 9e05fd9f78f..4341fb62e1e 100644 --- a/3rdparty/asio/src/tests/unit/io_context.cpp +++ b/3rdparty/asio/src/tests/unit/io_context.cpp @@ -2,7 +2,7 @@ // io_context.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,6 +16,7 @@ // Test that header file is self-contained. #include "asio/io_context.hpp" +#include <functional> #include <sstream> #include "asio/bind_executor.hpp" #include "asio/dispatch.hpp" @@ -29,24 +30,13 @@ # include "asio/steady_timer.hpp" #endif // defined(ASIO_HAS_BOOST_DATE_TIME) -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - using namespace asio; - -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif #if defined(ASIO_HAS_BOOST_DATE_TIME) typedef deadline_timer timer; namespace chronons = boost::posix_time; -#elif defined(ASIO_HAS_CHRONO) +#else // defined(ASIO_HAS_BOOST_DATE_TIME) typedef steady_timer timer; namespace chronons = asio::chrono; #endif // defined(ASIO_HAS_BOOST_DATE_TIME) @@ -409,8 +399,7 @@ void io_context_executor_execute_test() io_context ioc; int count = 0; - asio::execution::execute(ioc.get_executor(), - bindns::bind(increment, &count)); + ioc.get_executor().execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -424,10 +413,9 @@ void io_context_executor_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::require(ioc.get_executor(), - asio::execution::blocking.possibly), - bindns::bind(increment, &count)); + asio::require(ioc.get_executor(), + asio::execution::blocking.possibly + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -441,10 +429,9 @@ void io_context_executor_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::require(ioc.get_executor(), - asio::execution::blocking.never), - bindns::bind(increment, &count)); + asio::require(ioc.get_executor(), + asio::execution::blocking.never + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -460,11 +447,10 @@ void io_context_executor_execute_test() ioc.restart(); ASIO_CHECK(!ioc.stopped()); - asio::execution::execute( - asio::require(ioc.get_executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.tracked), - bindns::bind(increment, &count)); + asio::require(ioc.get_executor(), + asio::execution::blocking.never, + asio::execution::outstanding_work.tracked + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -478,11 +464,10 @@ void io_context_executor_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::require(ioc.get_executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked), - bindns::bind(increment, &count)); + asio::require(ioc.get_executor(), + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -496,12 +481,11 @@ void io_context_executor_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::require(ioc.get_executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.fork), - bindns::bind(increment, &count)); + asio::require(ioc.get_executor(), + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.fork + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -515,12 +499,11 @@ void io_context_executor_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::require(ioc.get_executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - bindns::bind(increment, &count)); + asio::require(ioc.get_executor(), + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.continuation + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -534,14 +517,13 @@ void io_context_executor_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::prefer( - asio::require(ioc.get_executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - asio::execution::allocator(std::allocator<void>())), - bindns::bind(increment, &count)); + asio::prefer( + asio::require(ioc.get_executor(), + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.continuation), + asio::execution::allocator(std::allocator<void>()) + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -555,14 +537,13 @@ void io_context_executor_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::prefer( - asio::require(ioc.get_executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - asio::execution::allocator), - bindns::bind(increment, &count)); + asio::prefer( + asio::require(ioc.get_executor(), + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.continuation), + asio::execution::allocator + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); diff --git a/3rdparty/asio/src/tests/unit/io_context_strand.cpp b/3rdparty/asio/src/tests/unit/io_context_strand.cpp index 45cb943eb23..be03eb40dd2 100644 --- a/3rdparty/asio/src/tests/unit/io_context_strand.cpp +++ b/3rdparty/asio/src/tests/unit/io_context_strand.cpp @@ -2,7 +2,7 @@ // io_context_strand.cpp // ~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,6 +16,7 @@ // Test that header file is self-contained. #include "asio/io_context_strand.hpp" +#include <functional> #include <sstream> #include "asio/io_context.hpp" #include "asio/dispatch.hpp" @@ -29,24 +30,14 @@ # include "asio/steady_timer.hpp" #endif // defined(ASIO_HAS_BOOST_DATE_TIME) -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - using namespace asio; -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif #if defined(ASIO_HAS_BOOST_DATE_TIME) typedef deadline_timer timer; namespace chronons = boost::posix_time; -#elif defined(ASIO_HAS_CHRONO) +#else // defined(ASIO_HAS_BOOST_DATE_TIME) typedef steady_timer timer; namespace chronons = asio::chrono; #endif // defined(ASIO_HAS_BOOST_DATE_TIME) diff --git a/3rdparty/asio/src/tests/unit/ip/address.cpp b/3rdparty/asio/src/tests/unit/ip/address.cpp index 1a7024d5d53..a13a343c8e9 100644 --- a/3rdparty/asio/src/tests/unit/ip/address.cpp +++ b/3rdparty/asio/src/tests/unit/ip/address.cpp @@ -2,7 +2,7 @@ // address.cpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -128,10 +128,8 @@ void test() wos << addr1; #endif // !defined(BOOST_NO_STD_WSTREAMBUF) -#if defined(ASIO_HAS_STD_HASH) std::size_t hash1 = std::hash<ip::address>()(addr1); (void)hash1; -#endif // defined(ASIO_HAS_STD_HASH) } catch (std::exception&) { @@ -145,5 +143,5 @@ void test() ASIO_TEST_SUITE ( "ip/address", - ASIO_TEST_CASE(ip_address_compile::test) + ASIO_COMPILE_TEST_CASE(ip_address_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/ip/address_v4.cpp b/3rdparty/asio/src/tests/unit/ip/address_v4.cpp index 8885f469d48..6fb361b9544 100644 --- a/3rdparty/asio/src/tests/unit/ip/address_v4.cpp +++ b/3rdparty/asio/src/tests/unit/ip/address_v4.cpp @@ -2,7 +2,7 @@ // address_v4.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -324,6 +324,6 @@ void test() ASIO_TEST_SUITE ( "ip/address_v4", - ASIO_TEST_CASE(ip_address_v4_compile::test) + ASIO_COMPILE_TEST_CASE(ip_address_v4_compile::test) ASIO_TEST_CASE(ip_address_v4_runtime::test) ) diff --git a/3rdparty/asio/src/tests/unit/ip/address_v4_iterator.cpp b/3rdparty/asio/src/tests/unit/ip/address_v4_iterator.cpp index babcaeae268..8b651b52582 100644 --- a/3rdparty/asio/src/tests/unit/ip/address_v4_iterator.cpp +++ b/3rdparty/asio/src/tests/unit/ip/address_v4_iterator.cpp @@ -2,7 +2,7 @@ // address_v4_iterator.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ip/address_v4_range.cpp b/3rdparty/asio/src/tests/unit/ip/address_v4_range.cpp index 0733c18d089..1b36744cb53 100644 --- a/3rdparty/asio/src/tests/unit/ip/address_v4_range.cpp +++ b/3rdparty/asio/src/tests/unit/ip/address_v4_range.cpp @@ -2,7 +2,7 @@ // address_v4_range.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ip/address_v6.cpp b/3rdparty/asio/src/tests/unit/ip/address_v6.cpp index 8d5ee8a0965..026c5fa4f9a 100644 --- a/3rdparty/asio/src/tests/unit/ip/address_v6.cpp +++ b/3rdparty/asio/src/tests/unit/ip/address_v6.cpp @@ -2,7 +2,7 @@ // address_v6.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -409,6 +409,6 @@ void test() ASIO_TEST_SUITE ( "ip/address_v6", - ASIO_TEST_CASE(ip_address_v6_compile::test) + ASIO_COMPILE_TEST_CASE(ip_address_v6_compile::test) ASIO_TEST_CASE(ip_address_v6_runtime::test) ) diff --git a/3rdparty/asio/src/tests/unit/ip/address_v6_iterator.cpp b/3rdparty/asio/src/tests/unit/ip/address_v6_iterator.cpp index c2a37dea8e2..ef62dc645c2 100644 --- a/3rdparty/asio/src/tests/unit/ip/address_v6_iterator.cpp +++ b/3rdparty/asio/src/tests/unit/ip/address_v6_iterator.cpp @@ -2,7 +2,7 @@ // address_v6_iterator.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ip/address_v6_range.cpp b/3rdparty/asio/src/tests/unit/ip/address_v6_range.cpp index 1dbc6808c5c..b0477214d7e 100644 --- a/3rdparty/asio/src/tests/unit/ip/address_v6_range.cpp +++ b/3rdparty/asio/src/tests/unit/ip/address_v6_range.cpp @@ -2,7 +2,7 @@ // address_v6_range.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ip/basic_endpoint.cpp b/3rdparty/asio/src/tests/unit/ip/basic_endpoint.cpp index 7fc95dc246d..d4aadb6febc 100644 --- a/3rdparty/asio/src/tests/unit/ip/basic_endpoint.cpp +++ b/3rdparty/asio/src/tests/unit/ip/basic_endpoint.cpp @@ -2,7 +2,7 @@ // basic_endpoint.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ip/basic_resolver.cpp b/3rdparty/asio/src/tests/unit/ip/basic_resolver.cpp index a0d6d3e3353..698a2bad25f 100644 --- a/3rdparty/asio/src/tests/unit/ip/basic_resolver.cpp +++ b/3rdparty/asio/src/tests/unit/ip/basic_resolver.cpp @@ -2,7 +2,7 @@ // basic_resolver.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ip/basic_resolver_entry.cpp b/3rdparty/asio/src/tests/unit/ip/basic_resolver_entry.cpp index cdd4e567757..7de5b6fc2c0 100644 --- a/3rdparty/asio/src/tests/unit/ip/basic_resolver_entry.cpp +++ b/3rdparty/asio/src/tests/unit/ip/basic_resolver_entry.cpp @@ -2,7 +2,7 @@ // basic_resolver_entry.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ip/basic_resolver_iterator.cpp b/3rdparty/asio/src/tests/unit/ip/basic_resolver_iterator.cpp index 7fcf85732d7..df7a54a79af 100644 --- a/3rdparty/asio/src/tests/unit/ip/basic_resolver_iterator.cpp +++ b/3rdparty/asio/src/tests/unit/ip/basic_resolver_iterator.cpp @@ -2,7 +2,7 @@ // basic_resolver_iterator.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ip/basic_resolver_query.cpp b/3rdparty/asio/src/tests/unit/ip/basic_resolver_query.cpp index ebdb6aa5f2f..6d10e449482 100644 --- a/3rdparty/asio/src/tests/unit/ip/basic_resolver_query.cpp +++ b/3rdparty/asio/src/tests/unit/ip/basic_resolver_query.cpp @@ -2,7 +2,7 @@ // basic_resolver_query.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ip/host_name.cpp b/3rdparty/asio/src/tests/unit/ip/host_name.cpp index 61a2d8a24d1..6972cbf6f4a 100644 --- a/3rdparty/asio/src/tests/unit/ip/host_name.cpp +++ b/3rdparty/asio/src/tests/unit/ip/host_name.cpp @@ -2,7 +2,7 @@ // host_name.cpp // ~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -51,5 +51,5 @@ void test() ASIO_TEST_SUITE ( "ip/host_name", - ASIO_TEST_CASE(ip_host_name_compile::test) + ASIO_COMPILE_TEST_CASE(ip_host_name_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/ip/icmp.cpp b/3rdparty/asio/src/tests/unit/ip/icmp.cpp index 644e7bb9cde..ec60267b30f 100644 --- a/3rdparty/asio/src/tests/unit/ip/icmp.cpp +++ b/3rdparty/asio/src/tests/unit/ip/icmp.cpp @@ -2,7 +2,7 @@ // icmp.cpp // ~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -38,33 +38,27 @@ struct connect_handler { connect_handler() {} void operator()(const asio::error_code&) {} -#if defined(ASIO_HAS_MOVE) connect_handler(connect_handler&&) {} private: connect_handler(const connect_handler&); -#endif // defined(ASIO_HAS_MOVE) }; struct send_handler { send_handler() {} void operator()(const asio::error_code&, std::size_t) {} -#if defined(ASIO_HAS_MOVE) send_handler(send_handler&&) {} private: send_handler(const send_handler&); -#endif // defined(ASIO_HAS_MOVE) }; struct receive_handler { receive_handler() {} void operator()(const asio::error_code&, std::size_t) {} -#if defined(ASIO_HAS_MOVE) receive_handler(receive_handler&&) {} private: receive_handler(const receive_handler&); -#endif // defined(ASIO_HAS_MOVE) }; void test() @@ -86,6 +80,7 @@ void test() archetypes::gettable_socket_option<int> gettable_socket_option2; archetypes::gettable_socket_option<double> gettable_socket_option3; archetypes::io_control_command io_control_command; + archetypes::immediate_handler immediate; archetypes::lazy_handler lazy; asio::error_code ec; @@ -113,16 +108,12 @@ void test() ip::icmp::socket socket12(ioc_ex, ip::icmp::v4(), native_socket2); #endif // !defined(ASIO_WINDOWS_RUNTIME) -#if defined(ASIO_HAS_MOVE) ip::icmp::socket socket13(std::move(socket6)); -#endif // defined(ASIO_HAS_MOVE) // basic_datagram_socket operators. -#if defined(ASIO_HAS_MOVE) socket1 = ip::icmp::socket(ioc); socket1 = std::move(socket2); -#endif // defined(ASIO_HAS_MOVE) // basic_io_object functions. @@ -193,6 +184,8 @@ void test() connect_handler()); socket1.async_connect(ip::icmp::endpoint(ip::icmp::v6(), 0), connect_handler()); + socket1.async_connect(ip::icmp::endpoint(ip::icmp::v4(), 0), immediate); + socket1.async_connect(ip::icmp::endpoint(ip::icmp::v6(), 0), immediate); int i1 = socket1.async_connect(ip::icmp::endpoint(ip::icmp::v4(), 0), lazy); (void)i1; int i2 = socket1.async_connect(ip::icmp::endpoint(ip::icmp::v6(), 0), lazy); @@ -256,6 +249,12 @@ void test() 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()); + socket1.async_send(buffer(mutable_char_buffer), immediate); + socket1.async_send(buffer(const_char_buffer), immediate); + socket1.async_send(null_buffers(), immediate); + socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate); + socket1.async_send(buffer(const_char_buffer), in_flags, immediate); + socket1.async_send(null_buffers(), in_flags, immediate); int i3 = socket1.async_send(buffer(mutable_char_buffer), lazy); (void)i3; int i4 = socket1.async_send(buffer(const_char_buffer), lazy); @@ -330,6 +329,30 @@ void test() ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, send_handler()); socket1.async_send_to(null_buffers(), ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, send_handler()); + socket1.async_send_to(buffer(mutable_char_buffer), + ip::icmp::endpoint(ip::icmp::v4(), 0), immediate); + socket1.async_send_to(buffer(mutable_char_buffer), + ip::icmp::endpoint(ip::icmp::v6(), 0), immediate); + socket1.async_send_to(buffer(const_char_buffer), + ip::icmp::endpoint(ip::icmp::v4(), 0), immediate); + socket1.async_send_to(buffer(const_char_buffer), + ip::icmp::endpoint(ip::icmp::v6(), 0), immediate); + socket1.async_send_to(null_buffers(), + ip::icmp::endpoint(ip::icmp::v4(), 0), immediate); + socket1.async_send_to(null_buffers(), + ip::icmp::endpoint(ip::icmp::v6(), 0), immediate); + socket1.async_send_to(buffer(mutable_char_buffer), + ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, immediate); + socket1.async_send_to(buffer(mutable_char_buffer), + ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, immediate); + socket1.async_send_to(buffer(const_char_buffer), + ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, immediate); + socket1.async_send_to(buffer(const_char_buffer), + ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, immediate); + socket1.async_send_to(null_buffers(), + ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, immediate); + socket1.async_send_to(null_buffers(), + ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, immediate); int i9 = socket1.async_send_to(buffer(mutable_char_buffer), ip::icmp::endpoint(ip::icmp::v4(), 0), lazy); (void)i9; @@ -379,6 +402,10 @@ void test() socket1.async_receive(buffer(mutable_char_buffer), in_flags, receive_handler()); socket1.async_receive(null_buffers(), in_flags, receive_handler()); + socket1.async_receive(buffer(mutable_char_buffer), immediate); + socket1.async_receive(null_buffers(), immediate); + socket1.async_receive(buffer(mutable_char_buffer), in_flags, immediate); + socket1.async_receive(null_buffers(), in_flags, immediate); int i21 = socket1.async_receive(buffer(mutable_char_buffer), lazy); (void)i21; int i22 = socket1.async_receive(null_buffers(), lazy); @@ -405,6 +432,14 @@ void test() endpoint, in_flags, receive_handler()); socket1.async_receive_from(null_buffers(), endpoint, in_flags, receive_handler()); + socket1.async_receive_from(buffer(mutable_char_buffer), + endpoint, immediate); + socket1.async_receive_from(null_buffers(), + endpoint, immediate); + socket1.async_receive_from(buffer(mutable_char_buffer), + endpoint, in_flags, immediate); + socket1.async_receive_from(null_buffers(), + endpoint, in_flags, immediate); int i25 = socket1.async_receive_from(buffer(mutable_char_buffer), endpoint, lazy); (void)i25; @@ -439,11 +474,9 @@ struct resolve_handler resolve_handler() {} void operator()(const asio::error_code&, asio::ip::icmp::resolver::results_type) {} -#if defined(ASIO_HAS_MOVE) resolve_handler(resolve_handler&&) {} private: resolve_handler(const resolve_handler&); -#endif // defined(ASIO_HAS_MOVE) }; void test() @@ -467,16 +500,12 @@ void test() ip::icmp::resolver resolver(ioc); ip::icmp::resolver resolver2(ioc_ex); -#if defined(ASIO_HAS_MOVE) ip::icmp::resolver resolver3(std::move(resolver)); -#endif // defined(ASIO_HAS_MOVE) // basic_resolver operators. -#if defined(ASIO_HAS_MOVE) resolver = ip::icmp::resolver(ioc); resolver = std::move(resolver3); -#endif // defined(ASIO_HAS_MOVE) // basic_io_object functions. @@ -572,6 +601,6 @@ void test() ASIO_TEST_SUITE ( "ip/icmp", - ASIO_TEST_CASE(ip_icmp_socket_compile::test) - ASIO_TEST_CASE(ip_icmp_resolver_compile::test) + ASIO_COMPILE_TEST_CASE(ip_icmp_socket_compile::test) + ASIO_COMPILE_TEST_CASE(ip_icmp_resolver_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/ip/multicast.cpp b/3rdparty/asio/src/tests/unit/ip/multicast.cpp index 7d8a9e7bc33..4f0b3f45e14 100644 --- a/3rdparty/asio/src/tests/unit/ip/multicast.cpp +++ b/3rdparty/asio/src/tests/unit/ip/multicast.cpp @@ -2,7 +2,7 @@ // multicast.cpp // ~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -358,6 +358,6 @@ void test() ASIO_TEST_SUITE ( "ip/multicast", - ASIO_TEST_CASE(ip_multicast_compile::test) + ASIO_COMPILE_TEST_CASE(ip_multicast_compile::test) ASIO_TEST_CASE(ip_multicast_runtime::test) ) diff --git a/3rdparty/asio/src/tests/unit/ip/network_v4.cpp b/3rdparty/asio/src/tests/unit/ip/network_v4.cpp index 06fb34d0dbd..0b7a7a9c783 100644 --- a/3rdparty/asio/src/tests/unit/ip/network_v4.cpp +++ b/3rdparty/asio/src/tests/unit/ip/network_v4.cpp @@ -2,7 +2,7 @@ // network_v4.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -309,6 +309,6 @@ void test() ASIO_TEST_SUITE ( "ip/network_v4", - ASIO_TEST_CASE(ip_network_v4_compile::test) + ASIO_COMPILE_TEST_CASE(ip_network_v4_compile::test) ASIO_TEST_CASE(ip_network_v4_runtime::test) ) diff --git a/3rdparty/asio/src/tests/unit/ip/network_v6.cpp b/3rdparty/asio/src/tests/unit/ip/network_v6.cpp index e1c7bcff6b4..d80b1d447b6 100644 --- a/3rdparty/asio/src/tests/unit/ip/network_v6.cpp +++ b/3rdparty/asio/src/tests/unit/ip/network_v6.cpp @@ -2,7 +2,7 @@ // network_v6.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -233,6 +233,6 @@ void test() ASIO_TEST_SUITE ( "ip/network_v6", - ASIO_TEST_CASE(ip_network_v6_compile::test) + ASIO_COMPILE_TEST_CASE(ip_network_v6_compile::test) ASIO_TEST_CASE(ip_network_v6_runtime::test) ) diff --git a/3rdparty/asio/src/tests/unit/ip/resolver_query_base.cpp b/3rdparty/asio/src/tests/unit/ip/resolver_query_base.cpp index c59d75237ed..b38f5091b53 100644 --- a/3rdparty/asio/src/tests/unit/ip/resolver_query_base.cpp +++ b/3rdparty/asio/src/tests/unit/ip/resolver_query_base.cpp @@ -2,7 +2,7 @@ // resolver_query_base.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ip/tcp.cpp b/3rdparty/asio/src/tests/unit/ip/tcp.cpp index 4b7208a221b..2bbdc3a1071 100644 --- a/3rdparty/asio/src/tests/unit/ip/tcp.cpp +++ b/3rdparty/asio/src/tests/unit/ip/tcp.cpp @@ -2,7 +2,7 @@ // tcp.cpp // ~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -20,6 +20,7 @@ #include "asio/ip/tcp.hpp" #include <cstring> +#include <functional> #include "asio/io_context.hpp" #include "asio/read.hpp" #include "asio/write.hpp" @@ -35,12 +36,6 @@ # include <array> #endif // defined(ASIO_HAS_BOOST_ARRAY) -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - //------------------------------------------------------------------------------ // ip_tcp_compile test @@ -71,10 +66,8 @@ void test() (void)static_cast<bool>(!no_delay1); (void)static_cast<bool>(no_delay1.value()); -#if defined(ASIO_HAS_STD_HASH) ip::tcp::endpoint ep; (void)static_cast<std::size_t>(std::hash<ip::tcp::endpoint>()(ep)); -#endif // defined(ASIO_HAS_STD_HASH) } catch (std::exception&) { @@ -146,66 +139,54 @@ struct connect_handler { connect_handler() {} void operator()(const asio::error_code&) {} -#if defined(ASIO_HAS_MOVE) connect_handler(connect_handler&&) {} private: connect_handler(const connect_handler&); -#endif // defined(ASIO_HAS_MOVE) }; struct wait_handler { wait_handler() {} void operator()(const asio::error_code&) {} -#if defined(ASIO_HAS_MOVE) wait_handler(wait_handler&&) {} private: wait_handler(const wait_handler&); -#endif // defined(ASIO_HAS_MOVE) }; struct send_handler { send_handler() {} void operator()(const asio::error_code&, std::size_t) {} -#if defined(ASIO_HAS_MOVE) send_handler(send_handler&&) {} private: send_handler(const send_handler&); -#endif // defined(ASIO_HAS_MOVE) }; struct receive_handler { receive_handler() {} void operator()(const asio::error_code&, std::size_t) {} -#if defined(ASIO_HAS_MOVE) receive_handler(receive_handler&&) {} private: receive_handler(const receive_handler&); -#endif // defined(ASIO_HAS_MOVE) }; struct write_some_handler { write_some_handler() {} void operator()(const asio::error_code&, std::size_t) {} -#if defined(ASIO_HAS_MOVE) write_some_handler(write_some_handler&&) {} private: write_some_handler(const write_some_handler&); -#endif // defined(ASIO_HAS_MOVE) }; struct read_some_handler { read_some_handler() {} void operator()(const asio::error_code&, std::size_t) {} -#if defined(ASIO_HAS_MOVE) read_some_handler(read_some_handler&&) {} private: read_some_handler(const read_some_handler&); -#endif // defined(ASIO_HAS_MOVE) }; void test() @@ -239,6 +220,7 @@ void test() archetypes::gettable_socket_option<int> gettable_socket_option2; archetypes::gettable_socket_option<double> gettable_socket_option3; archetypes::io_control_command io_control_command; + archetypes::immediate_handler immediate; archetypes::lazy_handler lazy; asio::error_code ec; @@ -266,16 +248,12 @@ void test() ip::tcp::socket socket12(ioc_ex, ip::tcp::v4(), native_socket2); #endif // !defined(ASIO_WINDOWS_RUNTIME) -#if defined(ASIO_HAS_MOVE) ip::tcp::socket socket13(std::move(socket5)); -#endif // defined(ASIO_HAS_MOVE) // basic_stream_socket operators. -#if defined(ASIO_HAS_MOVE) socket1 = ip::tcp::socket(ioc); socket1 = std::move(socket2); -#endif // defined(ASIO_HAS_MOVE) // basic_io_object functions. @@ -346,6 +324,8 @@ void test() connect_handler()); socket1.async_connect(ip::tcp::endpoint(ip::tcp::v6(), 0), connect_handler()); + socket1.async_connect(ip::tcp::endpoint(ip::tcp::v4(), 0), immediate); + socket1.async_connect(ip::tcp::endpoint(ip::tcp::v6(), 0), immediate); int i1 = socket1.async_connect(ip::tcp::endpoint(ip::tcp::v4(), 0), lazy); (void)i1; int i2 = socket1.async_connect(ip::tcp::endpoint(ip::tcp::v6(), 0), lazy); @@ -395,6 +375,7 @@ void test() socket1.wait(socket_base::wait_write, ec); socket1.async_wait(socket_base::wait_read, wait_handler()); + socket1.async_wait(socket_base::wait_read, immediate); int i3 = socket1.async_wait(socket_base::wait_write, lazy); (void)i3; @@ -426,6 +407,16 @@ void test() socket1.async_send(mutable_buffers, in_flags, send_handler()); socket1.async_send(const_buffers, in_flags, send_handler()); socket1.async_send(null_buffers(), in_flags, send_handler()); + socket1.async_send(buffer(mutable_char_buffer), immediate); + socket1.async_send(buffer(const_char_buffer), immediate); + socket1.async_send(mutable_buffers, immediate); + socket1.async_send(const_buffers, immediate); + socket1.async_send(null_buffers(), immediate); + socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate); + socket1.async_send(buffer(const_char_buffer), in_flags, immediate); + socket1.async_send(mutable_buffers, in_flags, immediate); + socket1.async_send(const_buffers, in_flags, immediate); + socket1.async_send(null_buffers(), in_flags, immediate); int i4 = socket1.async_send(buffer(mutable_char_buffer), lazy); (void)i4; int i5 = socket1.async_send(buffer(const_char_buffer), lazy); @@ -464,6 +455,12 @@ void test() receive_handler()); socket1.async_receive(mutable_buffers, in_flags, receive_handler()); socket1.async_receive(null_buffers(), in_flags, receive_handler()); + socket1.async_receive(buffer(mutable_char_buffer), immediate); + socket1.async_receive(mutable_buffers, immediate); + socket1.async_receive(null_buffers(), immediate); + socket1.async_receive(buffer(mutable_char_buffer), in_flags, immediate); + socket1.async_receive(mutable_buffers, in_flags, immediate); + socket1.async_receive(null_buffers(), in_flags, immediate); int i14 = socket1.async_receive(buffer(mutable_char_buffer), lazy); (void)i14; int i15 = socket1.async_receive(mutable_buffers, lazy); @@ -494,6 +491,11 @@ void test() socket1.async_write_some(mutable_buffers, write_some_handler()); socket1.async_write_some(const_buffers, write_some_handler()); socket1.async_write_some(null_buffers(), write_some_handler()); + socket1.async_write_some(buffer(mutable_char_buffer), immediate); + socket1.async_write_some(buffer(const_char_buffer), immediate); + socket1.async_write_some(mutable_buffers, immediate); + socket1.async_write_some(const_buffers, immediate); + socket1.async_write_some(null_buffers(), immediate); int i20 = socket1.async_write_some(buffer(mutable_char_buffer), lazy); (void)i20; int i21 = socket1.async_write_some(buffer(const_char_buffer), lazy); @@ -515,6 +517,9 @@ void test() socket1.async_read_some(buffer(mutable_char_buffer), read_some_handler()); socket1.async_read_some(mutable_buffers, read_some_handler()); socket1.async_read_some(null_buffers(), read_some_handler()); + socket1.async_read_some(buffer(mutable_char_buffer), immediate); + socket1.async_read_some(mutable_buffers, immediate); + socket1.async_read_some(null_buffers(), immediate); int i25 = socket1.async_read_some(buffer(mutable_char_buffer), lazy); (void)i25; int i26 = socket1.async_read_some(mutable_buffers, lazy); @@ -594,11 +599,7 @@ void test() using namespace asio; namespace ip = asio::ip; -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -706,25 +707,20 @@ struct wait_handler { wait_handler() {} void operator()(const asio::error_code&) {} -#if defined(ASIO_HAS_MOVE) wait_handler(wait_handler&&) {} private: wait_handler(const wait_handler&); -#endif // defined(ASIO_HAS_MOVE) }; struct accept_handler { accept_handler() {} void operator()(const asio::error_code&) {} -#if defined(ASIO_HAS_MOVE) accept_handler(accept_handler&&) {} private: accept_handler(const accept_handler&); -#endif // defined(ASIO_HAS_MOVE) }; -#if defined(ASIO_HAS_MOVE) struct move_accept_handler { move_accept_handler() {} @@ -745,7 +741,6 @@ struct move_accept_ioc_handler private: move_accept_ioc_handler(const move_accept_handler&) {} }; -#endif // defined(ASIO_HAS_MOVE) void test() { @@ -767,6 +762,7 @@ void test() archetypes::gettable_socket_option<int> gettable_socket_option2; archetypes::gettable_socket_option<double> gettable_socket_option3; archetypes::io_control_command io_control_command; + archetypes::immediate_handler immediate; archetypes::lazy_handler lazy; asio::error_code ec; @@ -794,16 +790,12 @@ void test() ip::tcp::acceptor acceptor12(ioc_ex, ip::tcp::v4(), native_acceptor2); #endif // !defined(ASIO_WINDOWS_RUNTIME) -#if defined(ASIO_HAS_MOVE) ip::tcp::acceptor acceptor13(std::move(acceptor5)); -#endif // defined(ASIO_HAS_MOVE) // basic_socket_acceptor operators. -#if defined(ASIO_HAS_MOVE) acceptor1 = ip::tcp::acceptor(ioc); acceptor1 = std::move(acceptor2); -#endif // defined(ASIO_HAS_MOVE) // basic_io_object functions. @@ -883,6 +875,7 @@ void test() acceptor1.wait(socket_base::wait_write, ec); acceptor1.async_wait(socket_base::wait_read, wait_handler()); + acceptor1.async_wait(socket_base::wait_read, immediate); int i1 = acceptor1.async_wait(socket_base::wait_write, lazy); (void)i1; @@ -896,7 +889,6 @@ void test() acceptor1.accept(peer_socket2, peer_endpoint); acceptor1.accept(peer_socket2, peer_endpoint, ec); -#if defined(ASIO_HAS_MOVE) peer_socket1 = acceptor1.accept(); peer_socket1 = acceptor1.accept(ioc); peer_socket1 = acceptor1.accept(ioc_ex); @@ -910,10 +902,11 @@ void test() peer_socket2 = acceptor1.accept(ioc, peer_endpoint); peer_socket2 = acceptor1.accept(ioc_ex, peer_endpoint); (void)peer_socket2; -#endif // defined(ASIO_HAS_MOVE) acceptor1.async_accept(peer_socket1, accept_handler()); acceptor1.async_accept(peer_socket1, peer_endpoint, accept_handler()); + acceptor1.async_accept(peer_socket1, immediate); + acceptor1.async_accept(peer_socket1, peer_endpoint, immediate); int i2 = acceptor1.async_accept(peer_socket1, lazy); (void)i2; int i3 = acceptor1.async_accept(peer_socket1, peer_endpoint, lazy); @@ -921,12 +914,13 @@ void test() acceptor1.async_accept(peer_socket2, accept_handler()); acceptor1.async_accept(peer_socket2, peer_endpoint, accept_handler()); + acceptor1.async_accept(peer_socket2, immediate); + acceptor1.async_accept(peer_socket2, peer_endpoint, immediate); int i4 = acceptor1.async_accept(peer_socket2, lazy); (void)i4; int i5 = acceptor1.async_accept(peer_socket2, peer_endpoint, lazy); (void)i5; -#if defined(ASIO_HAS_MOVE) acceptor1.async_accept(move_accept_handler()); acceptor1.async_accept(ioc, move_accept_handler()); acceptor1.async_accept(ioc_ex, move_accept_handler()); @@ -935,7 +929,12 @@ void test() acceptor1.async_accept(ioc, peer_endpoint, move_accept_handler()); acceptor1.async_accept(ioc_ex, peer_endpoint, move_accept_handler()); acceptor1.async_accept(ioc_ex, peer_endpoint, move_accept_ioc_handler()); -#endif // defined(ASIO_HAS_MOVE) + acceptor1.async_accept(immediate); + acceptor1.async_accept(ioc, immediate); + acceptor1.async_accept(ioc_ex, immediate); + acceptor1.async_accept(peer_endpoint, immediate); + acceptor1.async_accept(ioc, peer_endpoint, immediate); + acceptor1.async_accept(ioc_ex, peer_endpoint, immediate); } catch (std::exception&) { @@ -1037,11 +1036,9 @@ struct resolve_handler resolve_handler() {} void operator()(const asio::error_code&, asio::ip::tcp::resolver::results_type) {} -#if defined(ASIO_HAS_MOVE) resolve_handler(resolve_handler&&) {} private: resolve_handler(const resolve_handler&); -#endif // defined(ASIO_HAS_MOVE) }; #if !defined(ASIO_NO_DEPRECATED) @@ -1050,11 +1047,9 @@ struct legacy_resolve_handler legacy_resolve_handler() {} void operator()(const asio::error_code&, asio::ip::tcp::resolver::iterator) {} -#if defined(ASIO_HAS_MOVE) legacy_resolve_handler(legacy_resolve_handler&&) {} private: legacy_resolve_handler(const legacy_resolve_handler&); -#endif // defined(ASIO_HAS_MOVE) }; #endif // !defined(ASIO_NO_DEPRECATED) @@ -1079,16 +1074,12 @@ void test() ip::tcp::resolver resolver(ioc); ip::tcp::resolver resolver2(ioc_ex); -#if defined(ASIO_HAS_MOVE) ip::tcp::resolver resolver3(std::move(resolver)); -#endif // defined(ASIO_HAS_MOVE) // basic_resolver operators. -#if defined(ASIO_HAS_MOVE) resolver = ip::tcp::resolver(ioc); resolver = std::move(resolver3); -#endif // defined(ASIO_HAS_MOVE) // basic_io_object functions. @@ -1224,9 +1215,7 @@ void test() const ip::basic_resolver_entry<ip::tcp> entry1; ip::basic_resolver_entry<ip::tcp> entry2(endpoint, host_name, service_name); ip::basic_resolver_entry<ip::tcp> entry3(entry1); -#if defined(ASIO_HAS_MOVE) ip::basic_resolver_entry<ip::tcp> entry4(std::move(entry2)); -#endif // defined(ASIO_HAS_MOVE) // basic_resolver_entry functions. @@ -1287,19 +1276,15 @@ void test() ip::tcp::iostream ios1; -#if defined(ASIO_HAS_STD_IOSTREAM_MOVE) ip::tcp::iostream ios2(std::move(sock)); -#endif // defined(ASIO_HAS_STD_IOSTREAM_MOVE) ip::tcp::iostream ios3("hostname", "service"); // basic_socket_iostream operators. -#if defined(ASIO_HAS_STD_IOSTREAM_MOVE) ios1 = ip::tcp::iostream(); ios2 = std::move(ios1); -#endif // defined(ASIO_HAS_STD_IOSTREAM_MOVE) // basic_socket_iostream members. @@ -1338,14 +1323,14 @@ void test() ASIO_TEST_SUITE ( "ip/tcp", - ASIO_TEST_CASE(ip_tcp_compile::test) + ASIO_COMPILE_TEST_CASE(ip_tcp_compile::test) ASIO_TEST_CASE(ip_tcp_runtime::test) - ASIO_TEST_CASE(ip_tcp_socket_compile::test) + ASIO_COMPILE_TEST_CASE(ip_tcp_socket_compile::test) ASIO_TEST_CASE(ip_tcp_socket_runtime::test) - ASIO_TEST_CASE(ip_tcp_acceptor_compile::test) + ASIO_COMPILE_TEST_CASE(ip_tcp_acceptor_compile::test) ASIO_TEST_CASE(ip_tcp_acceptor_runtime::test) - ASIO_TEST_CASE(ip_tcp_resolver_compile::test) - ASIO_TEST_CASE(ip_tcp_resolver_entry_compile::test) - ASIO_TEST_CASE(ip_tcp_resolver_entry_compile::test) + ASIO_COMPILE_TEST_CASE(ip_tcp_resolver_compile::test) + ASIO_COMPILE_TEST_CASE(ip_tcp_resolver_entry_compile::test) + ASIO_COMPILE_TEST_CASE(ip_tcp_resolver_entry_compile::test) ASIO_COMPILE_TEST_CASE(ip_tcp_iostream_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/ip/udp.cpp b/3rdparty/asio/src/tests/unit/ip/udp.cpp index 507931d098e..ae67f9c9c73 100644 --- a/3rdparty/asio/src/tests/unit/ip/udp.cpp +++ b/3rdparty/asio/src/tests/unit/ip/udp.cpp @@ -2,7 +2,7 @@ // udp.cpp // ~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -17,6 +17,7 @@ #include "asio/ip/udp.hpp" #include <cstring> +#include <functional> #include "asio/io_context.hpp" #include "../unit_test.hpp" #include "../archetypes/async_result.hpp" @@ -24,12 +25,6 @@ #include "../archetypes/io_control_command.hpp" #include "../archetypes/settable_socket_option.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - //------------------------------------------------------------------------------ // ip_udp_socket_compile test @@ -43,44 +38,36 @@ struct connect_handler { connect_handler() {} void operator()(const asio::error_code&) {} -#if defined(ASIO_HAS_MOVE) connect_handler(connect_handler&&) {} private: connect_handler(const connect_handler&); -#endif // defined(ASIO_HAS_MOVE) }; struct wait_handler { wait_handler() {} void operator()(const asio::error_code&) {} -#if defined(ASIO_HAS_MOVE) wait_handler(wait_handler&&) {} private: wait_handler(const wait_handler&); -#endif // defined(ASIO_HAS_MOVE) }; struct send_handler { send_handler() {} void operator()(const asio::error_code&, std::size_t) {} -#if defined(ASIO_HAS_MOVE) send_handler(send_handler&&) {} private: send_handler(const send_handler&); -#endif // defined(ASIO_HAS_MOVE) }; struct receive_handler { receive_handler() {} void operator()(const asio::error_code&, std::size_t) {} -#if defined(ASIO_HAS_MOVE) receive_handler(receive_handler&&) {} private: receive_handler(const receive_handler&); -#endif // defined(ASIO_HAS_MOVE) }; void test() @@ -102,6 +89,7 @@ void test() archetypes::gettable_socket_option<int> gettable_socket_option2; archetypes::gettable_socket_option<double> gettable_socket_option3; archetypes::io_control_command io_control_command; + archetypes::immediate_handler immediate; archetypes::lazy_handler lazy; asio::error_code ec; @@ -129,16 +117,12 @@ void test() ip::udp::socket socket12(ioc_ex, ip::udp::v4(), native_socket2); #endif // !defined(ASIO_WINDOWS_RUNTIME) -#if defined(ASIO_HAS_MOVE) ip::udp::socket socket13(std::move(socket6)); -#endif // defined(ASIO_HAS_MOVE) // basic_datagram_socket operators. -#if defined(ASIO_HAS_MOVE) socket1 = ip::udp::socket(ioc); socket1 = std::move(socket2); -#endif // defined(ASIO_HAS_MOVE) // basic_io_object functions. @@ -209,6 +193,8 @@ void test() connect_handler()); socket1.async_connect(ip::udp::endpoint(ip::udp::v6(), 0), connect_handler()); + socket1.async_connect(ip::udp::endpoint(ip::udp::v4(), 0), immediate); + socket1.async_connect(ip::udp::endpoint(ip::udp::v6(), 0), immediate); 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); @@ -258,6 +244,7 @@ void test() socket1.wait(socket_base::wait_write, ec); socket1.async_wait(socket_base::wait_read, wait_handler()); + socket1.async_wait(socket_base::wait_read, immediate); int i3 = socket1.async_wait(socket_base::wait_write, lazy); (void)i3; @@ -279,6 +266,12 @@ void test() 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()); + socket1.async_send(buffer(mutable_char_buffer), immediate); + socket1.async_send(buffer(const_char_buffer), immediate); + socket1.async_send(null_buffers(), immediate); + socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate); + socket1.async_send(buffer(const_char_buffer), in_flags, immediate); + socket1.async_send(null_buffers(), in_flags, immediate); int i4 = socket1.async_send(buffer(mutable_char_buffer), lazy); (void)i4; int i5 = socket1.async_send(buffer(const_char_buffer), lazy); @@ -353,6 +346,30 @@ void test() 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()); + socket1.async_send_to(buffer(mutable_char_buffer), + ip::udp::endpoint(ip::udp::v4(), 0), immediate); + socket1.async_send_to(buffer(mutable_char_buffer), + ip::udp::endpoint(ip::udp::v6(), 0), immediate); + socket1.async_send_to(buffer(const_char_buffer), + ip::udp::endpoint(ip::udp::v4(), 0), immediate); + socket1.async_send_to(buffer(const_char_buffer), + ip::udp::endpoint(ip::udp::v6(), 0), immediate); + socket1.async_send_to(null_buffers(), + ip::udp::endpoint(ip::udp::v4(), 0), immediate); + socket1.async_send_to(null_buffers(), + ip::udp::endpoint(ip::udp::v6(), 0), immediate); + socket1.async_send_to(buffer(mutable_char_buffer), + ip::udp::endpoint(ip::udp::v4(), 0), in_flags, immediate); + socket1.async_send_to(buffer(mutable_char_buffer), + ip::udp::endpoint(ip::udp::v6(), 0), in_flags, immediate); + socket1.async_send_to(buffer(const_char_buffer), + ip::udp::endpoint(ip::udp::v4(), 0), in_flags, immediate); + socket1.async_send_to(buffer(const_char_buffer), + ip::udp::endpoint(ip::udp::v6(), 0), in_flags, immediate); + socket1.async_send_to(null_buffers(), + ip::udp::endpoint(ip::udp::v4(), 0), in_flags, immediate); + socket1.async_send_to(null_buffers(), + ip::udp::endpoint(ip::udp::v6(), 0), in_flags, immediate); int i10 = socket1.async_send_to(buffer(mutable_char_buffer), ip::udp::endpoint(ip::udp::v4(), 0), lazy); (void)i10; @@ -402,6 +419,10 @@ void test() socket1.async_receive(buffer(mutable_char_buffer), in_flags, receive_handler()); socket1.async_receive(null_buffers(), in_flags, receive_handler()); + socket1.async_receive(buffer(mutable_char_buffer), immediate); + socket1.async_receive(null_buffers(), immediate); + socket1.async_receive(buffer(mutable_char_buffer), in_flags, immediate); + socket1.async_receive(null_buffers(), in_flags, immediate); int i22 = socket1.async_receive(buffer(mutable_char_buffer), lazy); (void)i22; int i23 = socket1.async_receive(null_buffers(), lazy); @@ -428,6 +449,14 @@ void test() endpoint, in_flags, receive_handler()); socket1.async_receive_from(null_buffers(), endpoint, in_flags, receive_handler()); + socket1.async_receive_from(buffer(mutable_char_buffer), + endpoint, immediate); + socket1.async_receive_from(null_buffers(), + endpoint, immediate); + socket1.async_receive_from(buffer(mutable_char_buffer), + endpoint, in_flags, immediate); + socket1.async_receive_from(null_buffers(), + endpoint, in_flags, immediate); int i26 = socket1.async_receive_from(buffer(mutable_char_buffer), endpoint, lazy); (void)i26; @@ -476,11 +505,7 @@ void test() using namespace asio; namespace ip = asio::ip; -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -533,11 +558,9 @@ struct resolve_handler resolve_handler() {} void operator()(const asio::error_code&, asio::ip::udp::resolver::results_type) {} -#if defined(ASIO_HAS_MOVE) resolve_handler(resolve_handler&&) {} private: resolve_handler(const resolve_handler&); -#endif // defined(ASIO_HAS_MOVE) }; void test() @@ -561,16 +584,12 @@ void test() ip::udp::resolver resolver(ioc); ip::udp::resolver resolver2(ioc_ex); -#if defined(ASIO_HAS_MOVE) ip::udp::resolver resolver3(std::move(resolver)); -#endif // defined(ASIO_HAS_MOVE) // basic_resolver operators. -#if defined(ASIO_HAS_MOVE) resolver = ip::udp::resolver(ioc); resolver = std::move(resolver3); -#endif // defined(ASIO_HAS_MOVE) // basic_io_object functions. @@ -667,7 +686,7 @@ void test() ASIO_TEST_SUITE ( "ip/udp", - ASIO_TEST_CASE(ip_udp_socket_compile::test) + ASIO_COMPILE_TEST_CASE(ip_udp_socket_compile::test) ASIO_TEST_CASE(ip_udp_socket_runtime::test) - ASIO_TEST_CASE(ip_udp_resolver_compile::test) + ASIO_COMPILE_TEST_CASE(ip_udp_resolver_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/ip/unicast.cpp b/3rdparty/asio/src/tests/unit/ip/unicast.cpp index 84f1a8dc8b0..db3497f6e1c 100644 --- a/3rdparty/asio/src/tests/unit/ip/unicast.cpp +++ b/3rdparty/asio/src/tests/unit/ip/unicast.cpp @@ -2,7 +2,7 @@ // unicast.cpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -166,6 +166,6 @@ void test() ASIO_TEST_SUITE ( "ip/unicast", - ASIO_TEST_CASE(ip_unicast_compile::test) + ASIO_COMPILE_TEST_CASE(ip_unicast_compile::test) ASIO_TEST_CASE(ip_unicast_runtime::test) ) diff --git a/3rdparty/asio/src/tests/unit/ip/v6_only.cpp b/3rdparty/asio/src/tests/unit/ip/v6_only.cpp index 9a6bb69c250..ba37fdb3954 100644 --- a/3rdparty/asio/src/tests/unit/ip/v6_only.cpp +++ b/3rdparty/asio/src/tests/unit/ip/v6_only.cpp @@ -2,7 +2,7 @@ // v6_only.cpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -130,6 +130,6 @@ void test() ASIO_TEST_SUITE ( "ip/v6_only", - ASIO_TEST_CASE(ip_v6_only_compile::test) + ASIO_COMPILE_TEST_CASE(ip_v6_only_compile::test) ASIO_TEST_CASE(ip_v6_only_runtime::test) ) diff --git a/3rdparty/asio/src/tests/unit/is_read_buffered.cpp b/3rdparty/asio/src/tests/unit/is_read_buffered.cpp index 9f1d2069dc1..031cd0fb34d 100644 --- a/3rdparty/asio/src/tests/unit/is_read_buffered.cpp +++ b/3rdparty/asio/src/tests/unit/is_read_buffered.cpp @@ -2,7 +2,7 @@ // is_read_buffered.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/is_write_buffered.cpp b/3rdparty/asio/src/tests/unit/is_write_buffered.cpp index eff1a35a0f7..df7a9c86d79 100644 --- a/3rdparty/asio/src/tests/unit/is_write_buffered.cpp +++ b/3rdparty/asio/src/tests/unit/is_write_buffered.cpp @@ -2,7 +2,7 @@ // is_write_buffered.cpp // ~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/local/basic_endpoint.cpp b/3rdparty/asio/src/tests/unit/local/basic_endpoint.cpp index 163bb7a1c1d..855888e52c9 100644 --- a/3rdparty/asio/src/tests/unit/local/basic_endpoint.cpp +++ b/3rdparty/asio/src/tests/unit/local/basic_endpoint.cpp @@ -2,7 +2,7 @@ // basic_endpoint.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/local/connect_pair.cpp b/3rdparty/asio/src/tests/unit/local/connect_pair.cpp index 8dfb38e3083..095a0d89696 100644 --- a/3rdparty/asio/src/tests/unit/local/connect_pair.cpp +++ b/3rdparty/asio/src/tests/unit/local/connect_pair.cpp @@ -2,7 +2,7 @@ // connect_pair.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -72,5 +72,5 @@ void test() ASIO_TEST_SUITE ( "local/connect_pair", - ASIO_TEST_CASE(local_connect_pair_compile::test) + ASIO_COMPILE_TEST_CASE(local_connect_pair_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/local/datagram_protocol.cpp b/3rdparty/asio/src/tests/unit/local/datagram_protocol.cpp index b73a67f02a2..23f677d6723 100644 --- a/3rdparty/asio/src/tests/unit/local/datagram_protocol.cpp +++ b/3rdparty/asio/src/tests/unit/local/datagram_protocol.cpp @@ -2,7 +2,7 @@ // datagram_protocol.cpp // ~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -238,5 +238,5 @@ void test() ASIO_TEST_SUITE ( "local/datagram_protocol", - ASIO_TEST_CASE(local_datagram_protocol_socket_compile::test) + ASIO_COMPILE_TEST_CASE(local_datagram_protocol_socket_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/local/seq_packet_protocol.cpp b/3rdparty/asio/src/tests/unit/local/seq_packet_protocol.cpp new file mode 100644 index 00000000000..00934827aa6 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/local/seq_packet_protocol.cpp @@ -0,0 +1,209 @@ +// +// local/seq_packet_protocol.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/local/seq_packet_protocol.hpp" + +#include <cstring> +#include "asio/io_context.hpp" +#include "../unit_test.hpp" +#include "../archetypes/async_result.hpp" + +#if defined(__cplusplus_cli) || defined(__cplusplus_winrt) +# define local cpp_local +#endif + +//------------------------------------------------------------------------------ + +// local_seq_packet_protocol_socket_compile test +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// The following test checks that all public member functions on the class +// local::seq_packet_socket::socket compile and link correctly. Runtime +// failures are ignored. + +namespace local_seq_packet_protocol_socket_compile { + +void connect_handler(const asio::error_code&) +{ +} + +void send_handler(const asio::error_code&, std::size_t) +{ +} + +void receive_handler(const asio::error_code&, std::size_t) +{ +} + +void test() +{ + using namespace asio; + namespace local = asio::local; + typedef local::seq_packet_protocol spp; + + try + { + io_context ioc; + char mutable_char_buffer[128] = ""; + const char const_char_buffer[128] = ""; + const socket_base::message_flags in_flags = 0; + socket_base::message_flags out_flags = 0; + socket_base::send_buffer_size socket_option; + socket_base::bytes_readable io_control_command; + archetypes::immediate_handler immediate; + asio::error_code ec; + + // basic_seq_packet_socket constructors. + + spp::socket socket1(ioc); + spp::socket socket2(ioc, spp()); + spp::socket socket3(ioc, spp::endpoint()); +#if !defined(ASIO_WINDOWS_RUNTIME) + spp::socket::native_handle_type native_socket1 + = ::socket(AF_UNIX, SOCK_SEQPACKET, 0); + spp::socket socket4(ioc, spp(), native_socket1); +#endif // !defined(ASIO_WINDOWS_RUNTIME) + + spp::socket socket5(std::move(socket4)); + + // basic_seq_packet_socket operators. + + socket1 = spp::socket(ioc); + socket1 = std::move(socket2); + + // basic_io_object functions. + + spp::socket::executor_type ex = socket1.get_executor(); + (void)ex; + + // basic_socket functions. + + spp::socket::lowest_layer_type& lowest_layer = socket1.lowest_layer(); + (void)lowest_layer; + + socket1.open(spp()); + socket1.open(spp(), ec); + +#if !defined(ASIO_WINDOWS_RUNTIME) + spp::socket::native_handle_type native_socket2 + = ::socket(AF_UNIX, SOCK_SEQPACKET, 0); + socket1.assign(spp(), native_socket2); + spp::socket::native_handle_type native_socket3 + = ::socket(AF_UNIX, SOCK_SEQPACKET, 0); + socket1.assign(spp(), native_socket3, ec); +#endif // !defined(ASIO_WINDOWS_RUNTIME) + + bool is_open = socket1.is_open(); + (void)is_open; + + socket1.close(); + socket1.close(ec); + + spp::socket::native_handle_type native_socket4 = socket1.native_handle(); + (void)native_socket4; + + socket1.cancel(); + socket1.cancel(ec); + + bool at_mark1 = socket1.at_mark(); + (void)at_mark1; + bool at_mark2 = socket1.at_mark(ec); + (void)at_mark2; + + std::size_t available1 = socket1.available(); + (void)available1; + std::size_t available2 = socket1.available(ec); + (void)available2; + + socket1.bind(spp::endpoint()); + socket1.bind(spp::endpoint(), ec); + + socket1.connect(spp::endpoint()); + socket1.connect(spp::endpoint(), ec); + + socket1.async_connect(spp::endpoint(), connect_handler); + socket1.async_connect(spp::endpoint(), immediate); + + socket1.set_option(socket_option); + socket1.set_option(socket_option, ec); + + socket1.get_option(socket_option); + socket1.get_option(socket_option, ec); + + socket1.io_control(io_control_command); + socket1.io_control(io_control_command, ec); + + spp::endpoint endpoint1 = socket1.local_endpoint(); + (void)endpoint1; + spp::endpoint endpoint2 = socket1.local_endpoint(ec); + (void)endpoint2; + + spp::endpoint endpoint3 = socket1.remote_endpoint(); + (void)endpoint3; + spp::endpoint endpoint4 = socket1.remote_endpoint(ec); + (void)endpoint4; + + socket1.shutdown(socket_base::shutdown_both); + socket1.shutdown(socket_base::shutdown_both, ec); + + // basic_seq_packet_socket functions. + + socket1.send(buffer(mutable_char_buffer), in_flags); + socket1.send(buffer(const_char_buffer), in_flags); + socket1.send(null_buffers(), in_flags); + socket1.send(buffer(mutable_char_buffer), in_flags, ec); + socket1.send(buffer(const_char_buffer), in_flags, ec); + socket1.send(null_buffers(), in_flags, ec); + + 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); + socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate); + socket1.async_send(buffer(const_char_buffer), in_flags, immediate); + socket1.async_send(null_buffers(), in_flags, immediate); + + socket1.receive(buffer(mutable_char_buffer), out_flags); + socket1.receive(null_buffers(), out_flags); + socket1.receive(buffer(mutable_char_buffer), in_flags, out_flags); + socket1.receive(null_buffers(), in_flags, out_flags); + socket1.receive(buffer(mutable_char_buffer), in_flags, out_flags, ec); + socket1.receive(null_buffers(), in_flags, out_flags, ec); + + socket1.async_receive(buffer(mutable_char_buffer), out_flags, + receive_handler); + socket1.async_receive(null_buffers(), out_flags, receive_handler); + socket1.async_receive(buffer(mutable_char_buffer), in_flags, + out_flags, receive_handler); + socket1.async_receive(null_buffers(), in_flags, out_flags, receive_handler); + socket1.async_receive(buffer(mutable_char_buffer), out_flags, immediate); + socket1.async_receive(null_buffers(), out_flags, immediate); + socket1.async_receive(buffer(mutable_char_buffer), in_flags, + out_flags, immediate); + socket1.async_receive(null_buffers(), in_flags, out_flags, immediate); + } + catch (std::exception&) + { + } +} + +} // namespace local_seq_packet_protocol_socket_compile + +//------------------------------------------------------------------------------ + +ASIO_TEST_SUITE +( + "local/seq_packet_protocol", + ASIO_COMPILE_TEST_CASE(local_seq_packet_protocol_socket_compile::test) +) diff --git a/3rdparty/asio/src/tests/unit/local/stream_protocol.cpp b/3rdparty/asio/src/tests/unit/local/stream_protocol.cpp index 18a3f63c158..985d143e412 100644 --- a/3rdparty/asio/src/tests/unit/local/stream_protocol.cpp +++ b/3rdparty/asio/src/tests/unit/local/stream_protocol.cpp @@ -2,7 +2,7 @@ // stream_protocol.cpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -215,5 +215,5 @@ void test() ASIO_TEST_SUITE ( "local/stream_protocol", - ASIO_TEST_CASE(local_stream_protocol_socket_compile::test) + ASIO_COMPILE_TEST_CASE(local_stream_protocol_socket_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/packaged_task.cpp b/3rdparty/asio/src/tests/unit/packaged_task.cpp index fb1b3e8a82c..90b36d9f335 100644 --- a/3rdparty/asio/src/tests/unit/packaged_task.cpp +++ b/3rdparty/asio/src/tests/unit/packaged_task.cpp @@ -2,7 +2,7 @@ // packaged_task.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/placeholders.cpp b/3rdparty/asio/src/tests/unit/placeholders.cpp index 1d75daf6bf1..4f27d319b73 100644 --- a/3rdparty/asio/src/tests/unit/placeholders.cpp +++ b/3rdparty/asio/src/tests/unit/placeholders.cpp @@ -2,7 +2,7 @@ // placeholders.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/posix/basic_descriptor.cpp b/3rdparty/asio/src/tests/unit/posix/basic_descriptor.cpp index 0f1d4944168..f05ed3153cc 100644 --- a/3rdparty/asio/src/tests/unit/posix/basic_descriptor.cpp +++ b/3rdparty/asio/src/tests/unit/posix/basic_descriptor.cpp @@ -2,7 +2,7 @@ // basic_descriptor.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/posix/basic_stream_descriptor.cpp b/3rdparty/asio/src/tests/unit/posix/basic_stream_descriptor.cpp index 65c99df2c37..8ea66857eae 100644 --- a/3rdparty/asio/src/tests/unit/posix/basic_stream_descriptor.cpp +++ b/3rdparty/asio/src/tests/unit/posix/basic_stream_descriptor.cpp @@ -2,7 +2,7 @@ // basic_stream_descriptor.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/posix/descriptor.cpp b/3rdparty/asio/src/tests/unit/posix/descriptor.cpp index 5a26f307f21..c08ef8f4963 100644 --- a/3rdparty/asio/src/tests/unit/posix/descriptor.cpp +++ b/3rdparty/asio/src/tests/unit/posix/descriptor.cpp @@ -2,7 +2,7 @@ // descriptor.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/posix/descriptor_base.cpp b/3rdparty/asio/src/tests/unit/posix/descriptor_base.cpp index 0c28c029a7a..0437c9f852c 100644 --- a/3rdparty/asio/src/tests/unit/posix/descriptor_base.cpp +++ b/3rdparty/asio/src/tests/unit/posix/descriptor_base.cpp @@ -2,7 +2,7 @@ // descriptor_base.cpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/posix/stream_descriptor.cpp b/3rdparty/asio/src/tests/unit/posix/stream_descriptor.cpp index 8826c937a9f..a8fdc4b2c19 100644 --- a/3rdparty/asio/src/tests/unit/posix/stream_descriptor.cpp +++ b/3rdparty/asio/src/tests/unit/posix/stream_descriptor.cpp @@ -2,7 +2,7 @@ // stream_descriptor.cpp // ~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -55,6 +55,7 @@ void test() char mutable_char_buffer[128] = ""; const char const_char_buffer[128] = ""; posix::descriptor_base::bytes_readable io_control_command; + archetypes::immediate_handler immediate; archetypes::lazy_handler lazy; asio::error_code ec; @@ -66,16 +67,16 @@ void test() posix::stream_descriptor descriptor3(ioc, native_descriptor1); posix::stream_descriptor descriptor4(ioc_ex, native_descriptor1); -#if defined(ASIO_HAS_MOVE) posix::stream_descriptor descriptor5(std::move(descriptor2)); -#endif // defined(ASIO_HAS_MOVE) + + posix::basic_stream_descriptor<io_context::executor_type> descriptor6(ioc); + posix::stream_descriptor descriptor7(std::move(descriptor6)); // basic_stream_descriptor operators. -#if defined(ASIO_HAS_MOVE) descriptor1 = posix::stream_descriptor(ioc); descriptor1 = std::move(descriptor2); -#endif // defined(ASIO_HAS_MOVE) + descriptor1 = std::move(descriptor6); // basic_io_object functions. @@ -88,9 +89,9 @@ void test() = descriptor1.lowest_layer(); (void)lowest_layer; - const posix::stream_descriptor& descriptor6 = descriptor1; + const posix::stream_descriptor& descriptor8 = descriptor1; const posix::stream_descriptor::lowest_layer_type& lowest_layer2 - = descriptor6.lowest_layer(); + = descriptor8.lowest_layer(); (void)lowest_layer2; int native_descriptor2 = -1; @@ -130,6 +131,7 @@ void test() descriptor1.wait(posix::descriptor_base::wait_write, ec); descriptor1.async_wait(posix::descriptor_base::wait_read, &wait_handler); + descriptor1.async_wait(posix::descriptor_base::wait_read, immediate); int i1 = descriptor1.async_wait(posix::descriptor_base::wait_write, lazy); (void)i1; @@ -148,6 +150,9 @@ void test() write_some_handler); descriptor1.async_write_some(null_buffers(), write_some_handler); + descriptor1.async_write_some(buffer(mutable_char_buffer), immediate); + descriptor1.async_write_some(buffer(const_char_buffer), immediate); + descriptor1.async_write_some(null_buffers(), immediate); int i2 = descriptor1.async_write_some(buffer(mutable_char_buffer), lazy); (void)i2; int i3 = descriptor1.async_write_some(buffer(const_char_buffer), lazy); @@ -161,6 +166,8 @@ void test() descriptor1.async_read_some(buffer(mutable_char_buffer), read_some_handler); descriptor1.async_read_some(null_buffers(), read_some_handler); + descriptor1.async_read_some(buffer(mutable_char_buffer), immediate); + descriptor1.async_read_some(null_buffers(), immediate); int i5 = descriptor1.async_read_some(buffer(mutable_char_buffer), lazy); (void)i5; int i6 = descriptor1.async_read_some(null_buffers(), lazy); @@ -179,5 +186,5 @@ void test() ASIO_TEST_SUITE ( "posix/stream_descriptor", - ASIO_TEST_CASE(posix_stream_descriptor_compile::test) + ASIO_COMPILE_TEST_CASE(posix_stream_descriptor_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/post.cpp b/3rdparty/asio/src/tests/unit/post.cpp index 550c38201b5..d2ef2352299 100644 --- a/3rdparty/asio/src/tests/unit/post.cpp +++ b/3rdparty/asio/src/tests/unit/post.cpp @@ -2,7 +2,7 @@ // post.cpp // ~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/prepend.cpp b/3rdparty/asio/src/tests/unit/prepend.cpp new file mode 100644 index 00000000000..cc26bf9835c --- /dev/null +++ b/3rdparty/asio/src/tests/unit/prepend.cpp @@ -0,0 +1,58 @@ +// +// prepend.cpp +// ~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/prepend.hpp" + +#include "asio/bind_executor.hpp" +#include "asio/io_context.hpp" +#include "asio/post.hpp" +#include "asio/system_timer.hpp" +#include "unit_test.hpp" + +void prepend_test() +{ + asio::io_context io1; + asio::io_context io2; + asio::system_timer timer1(io1); + int count = 0; + + timer1.expires_after(asio::chrono::seconds(0)); + timer1.async_wait( + asio::prepend( + asio::bind_executor(io2.get_executor(), + [&count](int a, int b, asio::error_code) + { + ++count; + ASIO_CHECK(a == 123); + ASIO_CHECK(b == 321); + }), 123, 321)); + + ASIO_CHECK(count == 0); + + io1.run(); + + ASIO_CHECK(count == 0); + + io2.run(); + + ASIO_CHECK(count == 1); +} + +ASIO_TEST_SUITE +( + "prepend", + ASIO_TEST_CASE(prepend_test) +) diff --git a/3rdparty/asio/src/tests/unit/random_access_file.cpp b/3rdparty/asio/src/tests/unit/random_access_file.cpp new file mode 100644 index 00000000000..be703cd395e --- /dev/null +++ b/3rdparty/asio/src/tests/unit/random_access_file.cpp @@ -0,0 +1,171 @@ +// +// random_access_file.cpp +// ~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/random_access_file.hpp" + +#include "archetypes/async_result.hpp" +#include "asio/io_context.hpp" +#include "unit_test.hpp" + +// random_access_file_compile test +// ~~~~~~~~~~~~~~~~~~~~~~~~ +// The following test checks that all public member functions on the class +// random_access_file compile and link correctly. Runtime failures are ignored. + +namespace random_access_file_compile { + +struct write_some_at_handler +{ + write_some_at_handler() {} + void operator()(const asio::error_code&, std::size_t) {} + write_some_at_handler(write_some_at_handler&&) {} +private: + write_some_at_handler(const write_some_at_handler&); +}; + +struct read_some_at_handler +{ + read_some_at_handler() {} + void operator()(const asio::error_code&, std::size_t) {} + read_some_at_handler(read_some_at_handler&&) {} +private: + read_some_at_handler(const read_some_at_handler&); +}; + +void test() +{ +#if defined(ASIO_HAS_FILE) + using namespace asio; + + try + { + io_context ioc; + const io_context::executor_type ioc_ex = ioc.get_executor(); + char mutable_char_buffer[128] = ""; + const char const_char_buffer[128] = ""; + archetypes::lazy_handler lazy; + asio::error_code ec; + const std::string path; + + // basic_random_access_file constructors. + + random_access_file file1(ioc); + random_access_file file2(ioc, "", random_access_file::read_only); + random_access_file file3(ioc, path, random_access_file::read_only); + random_access_file::native_handle_type native_file1 = file1.native_handle(); + random_access_file file4(ioc, native_file1); + + random_access_file file5(ioc_ex); + random_access_file file6(ioc_ex, "", random_access_file::read_only); + random_access_file file7(ioc_ex, path, random_access_file::read_only); + random_access_file::native_handle_type native_file2 = file1.native_handle(); + random_access_file file8(ioc_ex, native_file2); + + random_access_file file9(std::move(file8)); + + basic_random_access_file<io_context::executor_type> file10(ioc); + random_access_file file11(std::move(file10)); + + // basic_random_access_file operators. + + file1 = random_access_file(ioc); + file1 = std::move(file2); + file1 = std::move(file10); + + // basic_io_object functions. + + random_access_file::executor_type ex = file1.get_executor(); + (void)ex; + + // basic_random_access_file functions. + + file1.open("", random_access_file::read_only); + file1.open("", random_access_file::read_only, ec); + + file1.open(path, random_access_file::read_only); + file1.open(path, random_access_file::read_only, ec); + + random_access_file::native_handle_type native_file3 = file1.native_handle(); + file1.assign(native_file3); + random_access_file::native_handle_type native_file4 = file1.native_handle(); + file1.assign(native_file4, ec); + + bool is_open = file1.is_open(); + (void)is_open; + + file1.close(); + file1.close(ec); + + random_access_file::native_handle_type native_file5 = file1.native_handle(); + (void)native_file5; + + random_access_file::native_handle_type native_file6 = file1.release(); + (void)native_file6; + random_access_file::native_handle_type native_file7 = file1.release(ec); + (void)native_file7; + + file1.cancel(); + file1.cancel(ec); + + asio::uint64_t s1 = file1.size(); + (void)s1; + asio::uint64_t s2 = file1.size(ec); + (void)s2; + + file1.resize(asio::uint64_t(0)); + file1.resize(asio::uint64_t(0), ec); + + file1.sync_all(); + file1.sync_all(ec); + + file1.sync_data(); + file1.sync_data(ec); + + file1.write_some_at(0, buffer(mutable_char_buffer)); + file1.write_some_at(0, buffer(const_char_buffer)); + file1.write_some_at(0, buffer(mutable_char_buffer), ec); + file1.write_some_at(0, buffer(const_char_buffer), ec); + + file1.async_write_some_at(0, buffer(mutable_char_buffer), + write_some_at_handler()); + file1.async_write_some_at(0, buffer(const_char_buffer), + write_some_at_handler()); + int i1 = file1.async_write_some_at(0, buffer(mutable_char_buffer), lazy); + (void)i1; + int i2 = file1.async_write_some_at(0, buffer(const_char_buffer), lazy); + (void)i2; + + file1.read_some_at(0, buffer(mutable_char_buffer)); + file1.read_some_at(0, buffer(mutable_char_buffer), ec); + + file1.async_read_some_at(0, buffer(mutable_char_buffer), + read_some_at_handler()); + int i3 = file1.async_read_some_at(0, buffer(mutable_char_buffer), lazy); + (void)i3; + } + catch (std::exception&) + { + } +#endif // defined(ASIO_HAS_FILE) +} + +} // namespace random_access_file_compile + +ASIO_TEST_SUITE +( + "random_access_file", + ASIO_COMPILE_TEST_CASE(random_access_file_compile::test) +) diff --git a/3rdparty/asio/src/tests/unit/read.cpp b/3rdparty/asio/src/tests/unit/read.cpp index bd0e9592ca9..a268c041d9b 100644 --- a/3rdparty/asio/src/tests/unit/read.cpp +++ b/3rdparty/asio/src/tests/unit/read.cpp @@ -2,7 +2,7 @@ // read.cpp // ~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,7 +16,9 @@ // Test that header file is self-contained. #include "asio/read.hpp" +#include <array> #include <cstring> +#include <functional> #include <vector> #include "archetypes/async_result.hpp" #include "asio/io_context.hpp" @@ -24,20 +26,10 @@ #include "asio/streambuf.hpp" #include "unit_test.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - #if defined(ASIO_HAS_BOOST_ARRAY) #include <boost/array.hpp> #endif // defined(ASIO_HAS_BOOST_ARRAY) -#if defined(ASIO_HAS_STD_ARRAY) -# include <array> -#endif // defined(ASIO_HAS_STD_ARRAY) - using namespace std; // For memcmp, memcpy and memset. class test_stream @@ -53,7 +45,7 @@ public: { } - executor_type get_executor() ASIO_NOEXCEPT + executor_type get_executor() noexcept { return io_context_.get_executor(); } @@ -121,12 +113,12 @@ public: template <typename Mutable_Buffers, typename Handler> void async_read_some(const Mutable_Buffers& buffers, - ASIO_MOVE_ARG(Handler) handler) + Handler&& handler) { size_t bytes_transferred = read_some(buffers); asio::post(get_executor(), asio::detail::bind_handler( - ASIO_MOVE_CAST(Handler)(handler), + static_cast<Handler&&>(handler), asio::error_code(), bytes_transferred)); } @@ -439,11 +431,7 @@ bool old_style_transfer_all(const asio::error_code& ec, struct short_transfer { short_transfer() {} -#if defined(ASIO_HAS_MOVE) short_transfer(short_transfer&&) {} -#else // defined(ASIO_HAS_MOVE) - short_transfer(const short_transfer&) {} -#endif // defined(ASIO_HAS_MOVE) size_t operator()(const asio::error_code& ec, size_t /*bytes_transferred*/) { @@ -2475,11 +2463,7 @@ void async_read_handler(const asio::error_code& e, void test_3_arg_mutable_buffer_async_read() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -2535,11 +2519,7 @@ void test_3_arg_mutable_buffer_async_read() void test_3_arg_boost_array_buffers_async_read() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -2598,15 +2578,10 @@ void test_3_arg_boost_array_buffers_async_read() void test_3_arg_std_array_buffers_async_read() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; -#if defined(ASIO_HAS_STD_ARRAY) asio::io_context ioc; test_stream s(ioc); char read_buf[sizeof(read_data)]; @@ -2656,16 +2631,11 @@ void test_3_arg_std_array_buffers_async_read() ioc.restart(); ioc.run(); ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); -#endif // defined(ASIO_HAS_STD_ARRAY) } void test_3_arg_vector_buffers_async_read() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -2723,11 +2693,7 @@ void test_3_arg_vector_buffers_async_read() void test_3_arg_dynamic_string_async_read() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -2789,11 +2755,7 @@ void test_3_arg_dynamic_string_async_read() void test_3_arg_streambuf_async_read() { #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1) -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -2852,11 +2814,7 @@ void test_3_arg_streambuf_async_read() void test_4_arg_mutable_buffer_async_read() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3193,11 +3151,7 @@ void test_4_arg_mutable_buffer_async_read() void test_4_arg_boost_array_buffers_async_read() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3537,15 +3491,10 @@ void test_4_arg_boost_array_buffers_async_read() void test_4_arg_std_array_buffers_async_read() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; -#if defined(ASIO_HAS_STD_ARRAY) asio::io_context ioc; test_stream s(ioc); char read_buf[sizeof(read_data)]; @@ -3876,16 +3825,11 @@ void test_4_arg_std_array_buffers_async_read() ioc.restart(); ioc.run(); ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data))); -#endif // defined(ASIO_HAS_STD_ARRAY) } void test_4_arg_vector_buffers_async_read() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -4224,11 +4168,7 @@ void test_4_arg_vector_buffers_async_read() void test_4_arg_dynamic_string_async_read() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -4595,11 +4535,7 @@ void test_4_arg_dynamic_string_async_read() void test_4_arg_streambuf_async_read() { #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1) -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; diff --git a/3rdparty/asio/src/tests/unit/read_at.cpp b/3rdparty/asio/src/tests/unit/read_at.cpp index bfe4af75d29..72d21bc3236 100644 --- a/3rdparty/asio/src/tests/unit/read_at.cpp +++ b/3rdparty/asio/src/tests/unit/read_at.cpp @@ -2,7 +2,7 @@ // read_at.cpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,27 +16,19 @@ // Test that header file is self-contained. #include "asio/read_at.hpp" +#include <array> #include <cstring> +#include <functional> #include "archetypes/async_result.hpp" #include "asio/io_context.hpp" #include "asio/post.hpp" #include "asio/streambuf.hpp" #include "unit_test.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - #if defined(ASIO_HAS_BOOST_ARRAY) #include <boost/array.hpp> #endif // defined(ASIO_HAS_BOOST_ARRAY) -#if defined(ASIO_HAS_STD_ARRAY) -# include <array> -#endif // defined(ASIO_HAS_STD_ARRAY) - using namespace std; // For memcmp, memcpy and memset. class test_random_access_device @@ -51,7 +43,7 @@ public: { } - executor_type get_executor() ASIO_NOEXCEPT + executor_type get_executor() noexcept { return io_context_.get_executor(); } @@ -125,12 +117,12 @@ public: template <typename Mutable_Buffers, typename Handler> void async_read_some_at(asio::uint64_t offset, - const Mutable_Buffers& buffers, ASIO_MOVE_ARG(Handler) handler) + const Mutable_Buffers& buffers, Handler&& handler) { size_t bytes_transferred = read_some_at(offset, buffers); asio::post(get_executor(), asio::detail::bind_handler( - ASIO_MOVE_CAST(Handler)(handler), + static_cast<Handler&&>(handler), asio::error_code(), bytes_transferred)); } @@ -479,11 +471,7 @@ bool old_style_transfer_all(const asio::error_code& ec, struct short_transfer { short_transfer() {} -#if defined(ASIO_HAS_MOVE) short_transfer(short_transfer&&) {} -#else // defined(ASIO_HAS_MOVE) - short_transfer(const short_transfer&) {} -#endif // defined(ASIO_HAS_MOVE) size_t operator()(const asio::error_code& ec, size_t /*bytes_transferred*/) { @@ -3436,11 +3424,7 @@ void async_read_handler(const asio::error_code& e, void test_4_arg_mutable_buffer_async_read_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3532,11 +3516,7 @@ void test_4_arg_mutable_buffer_async_read_at() void test_4_arg_boost_array_buffers_async_read_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3631,15 +3611,10 @@ void test_4_arg_boost_array_buffers_async_read_at() void test_4_arg_std_array_buffers_async_read_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; -#if defined(ASIO_HAS_STD_ARRAY) asio::io_context ioc; test_random_access_device s(ioc); char read_buf[sizeof(read_data)]; @@ -3725,16 +3700,11 @@ void test_4_arg_std_array_buffers_async_read_at() ioc.restart(); ioc.run(); ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data))); -#endif // defined(ASIO_HAS_STD_ARRAY) } void test_4_arg_vector_buffers_async_read_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3827,11 +3797,7 @@ void test_4_arg_vector_buffers_async_read_at() void test_4_arg_streambuf_async_read_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3927,11 +3893,7 @@ void test_4_arg_streambuf_async_read_at() void test_5_arg_mutable_buffer_async_read_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -4625,11 +4587,7 @@ void test_5_arg_mutable_buffer_async_read_at() void test_5_arg_boost_array_buffers_async_read_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -5326,15 +5284,10 @@ void test_5_arg_boost_array_buffers_async_read_at() void test_5_arg_std_array_buffers_async_read_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; -#if defined(ASIO_HAS_STD_ARRAY) asio::io_context ioc; test_random_access_device s(ioc); char read_buf[sizeof(read_data)]; @@ -6022,16 +5975,11 @@ void test_5_arg_std_array_buffers_async_read_at() ioc.restart(); ioc.run(); ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data))); -#endif // defined(ASIO_HAS_STD_ARRAY) } void test_5_arg_vector_buffers_async_read_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -6726,11 +6674,7 @@ void test_5_arg_vector_buffers_async_read_at() void test_5_arg_streambuf_async_read_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; diff --git a/3rdparty/asio/src/tests/unit/read_until.cpp b/3rdparty/asio/src/tests/unit/read_until.cpp index 0b9979ed629..139fcf6f0a9 100644 --- a/3rdparty/asio/src/tests/unit/read_until.cpp +++ b/3rdparty/asio/src/tests/unit/read_until.cpp @@ -2,7 +2,7 @@ // read_until.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -17,18 +17,13 @@ #include "asio/read_until.hpp" #include <cstring> +#include <functional> #include "archetypes/async_result.hpp" #include "asio/io_context.hpp" #include "asio/post.hpp" #include "asio/streambuf.hpp" #include "unit_test.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - class test_stream { public: @@ -42,7 +37,7 @@ public: { } - executor_type get_executor() ASIO_NOEXCEPT + executor_type get_executor() noexcept { return io_context_.get_executor(); } @@ -88,7 +83,7 @@ public: size_t bytes_transferred = read_some(buffers); asio::post(get_executor(), asio::detail::bind_handler( - ASIO_MOVE_CAST(Handler)(handler), + static_cast<Handler&&>(handler), asio::error_code(), bytes_transferred)); } @@ -673,11 +668,7 @@ void async_read_handler( void test_dynamic_string_async_read_until_char() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -836,11 +827,7 @@ void test_dynamic_string_async_read_until_char() void test_streambuf_async_read_until_char() { #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1) -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -996,11 +983,7 @@ void test_streambuf_async_read_until_char() void test_dynamic_string_async_read_until_string() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -1159,11 +1142,7 @@ void test_dynamic_string_async_read_until_string() void test_streambuf_async_read_until_string() { #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1) -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -1319,11 +1298,7 @@ void test_streambuf_async_read_until_string() void test_dynamic_string_async_read_until_match_condition() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -1482,11 +1457,7 @@ void test_dynamic_string_async_read_until_match_condition() void test_streambuf_async_read_until_match_condition() { #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1) -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; diff --git a/3rdparty/asio/src/tests/unit/readable_pipe.cpp b/3rdparty/asio/src/tests/unit/readable_pipe.cpp new file mode 100644 index 00000000000..6f29710e3da --- /dev/null +++ b/3rdparty/asio/src/tests/unit/readable_pipe.cpp @@ -0,0 +1,131 @@ +// +// readable_pipe.cpp +// ~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header pipe is self-contained. +#include "asio/readable_pipe.hpp" + +#include "archetypes/async_result.hpp" +#include "asio/io_context.hpp" +#include "unit_test.hpp" + +// readable_pipe_compile test +// ~~~~~~~~~~~~~~~~~~~~~~~~~~ +// The following test checks that all public member functions on the class +// readable_pipe compile and link correctly. Runtime failures are ignored. + +namespace readable_pipe_compile { + +struct write_some_handler +{ + write_some_handler() {} + void operator()(const asio::error_code&, std::size_t) {} + write_some_handler(write_some_handler&&) {} +private: + write_some_handler(const write_some_handler&); +}; + +struct read_some_handler +{ + read_some_handler() {} + void operator()(const asio::error_code&, std::size_t) {} + read_some_handler(read_some_handler&&) {} +private: + read_some_handler(const read_some_handler&); +}; + +void test() +{ +#if defined(ASIO_HAS_PIPE) + using namespace asio; + + try + { + io_context ioc; + const io_context::executor_type ioc_ex = ioc.get_executor(); + char mutable_char_buffer[128] = ""; + archetypes::lazy_handler lazy; + asio::error_code ec; + const std::string path; + + // basic_readable_pipe constructors. + + readable_pipe pipe1(ioc); + readable_pipe::native_handle_type native_pipe1 = pipe1.native_handle(); + readable_pipe pipe2(ioc, native_pipe1); + + readable_pipe pipe3(ioc_ex); + readable_pipe::native_handle_type native_pipe2 = pipe1.native_handle(); + readable_pipe pipe4(ioc_ex, native_pipe2); + + readable_pipe pipe5(std::move(pipe4)); + + basic_readable_pipe<io_context::executor_type> pipe6(ioc); + readable_pipe pipe7(std::move(pipe6)); + + // basic_readable_pipe operators. + + pipe1 = readable_pipe(ioc); + pipe1 = std::move(pipe2); + pipe1 = std::move(pipe6); + + // basic_io_object functions. + + readable_pipe::executor_type ex = pipe1.get_executor(); + (void)ex; + + // basic_readable_pipe functions. + + readable_pipe::native_handle_type native_pipe3 = pipe1.native_handle(); + pipe1.assign(native_pipe3); + readable_pipe::native_handle_type native_pipe4 = pipe1.native_handle(); + pipe1.assign(native_pipe4, ec); + + bool is_open = pipe1.is_open(); + (void)is_open; + + pipe1.close(); + pipe1.close(ec); + + readable_pipe::native_handle_type native_pipe5 = pipe1.release(); + (void)native_pipe5; + readable_pipe::native_handle_type native_pipe6 = pipe1.release(ec); + (void)native_pipe6; + + readable_pipe::native_handle_type native_pipe7 = pipe1.native_handle(); + (void)native_pipe7; + + pipe1.cancel(); + pipe1.cancel(ec); + + pipe1.read_some(buffer(mutable_char_buffer)); + pipe1.read_some(buffer(mutable_char_buffer), ec); + + pipe1.async_read_some(buffer(mutable_char_buffer), read_some_handler()); + int i3 = pipe1.async_read_some(buffer(mutable_char_buffer), lazy); + (void)i3; + } + catch (std::exception&) + { + } +#endif // defined(ASIO_HAS_PIPE) +} + +} // namespace readable_pipe_compile + +ASIO_TEST_SUITE +( + "readable_pipe", + ASIO_COMPILE_TEST_CASE(readable_pipe_compile::test) +) diff --git a/3rdparty/asio/src/tests/unit/recycling_allocator.cpp b/3rdparty/asio/src/tests/unit/recycling_allocator.cpp new file mode 100644 index 00000000000..cc4654fc9f0 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/recycling_allocator.cpp @@ -0,0 +1,80 @@ +// +// recycling_allocator.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/recycling_allocator.hpp" + +#include "unit_test.hpp" +#include <vector> +#include "asio/detail/type_traits.hpp" + +void recycling_allocator_test() +{ + ASIO_CHECK(( + asio::is_same< + asio::recycling_allocator<int>::value_type, + int + >::value)); + + ASIO_CHECK(( + asio::is_same< + asio::recycling_allocator<void>::value_type, + void + >::value)); + + ASIO_CHECK(( + asio::is_same< + asio::recycling_allocator<int>::rebind<char>::other, + asio::recycling_allocator<char> + >::value)); + + ASIO_CHECK(( + asio::is_same< + asio::recycling_allocator<void>::rebind<char>::other, + asio::recycling_allocator<char> + >::value)); + + asio::recycling_allocator<int> a1; + asio::recycling_allocator<int> a2(a1); + + ASIO_CHECK(a1 == a2); + ASIO_CHECK(!(a1 != a2)); + + asio::recycling_allocator<void> a3; + asio::recycling_allocator<void> a4(a3); + + ASIO_CHECK(a3 == a4); + ASIO_CHECK(!(a3 != a4)); + + asio::recycling_allocator<int> a5(a4); + (void)a5; + + asio::recycling_allocator<void> a6(a5); + (void)a6; + + int* p = a1.allocate(42); + ASIO_CHECK(p != 0); + + a1.deallocate(p, 42); + + std::vector<int, asio::recycling_allocator<int> > v(42); + ASIO_CHECK(v.size() == 42); +} + +ASIO_TEST_SUITE +( + "recycling_allocator", + ASIO_TEST_CASE(recycling_allocator_test) +) diff --git a/3rdparty/asio/src/tests/unit/redirect_error.cpp b/3rdparty/asio/src/tests/unit/redirect_error.cpp index 219a5c5b355..7a581495566 100644 --- a/3rdparty/asio/src/tests/unit/redirect_error.cpp +++ b/3rdparty/asio/src/tests/unit/redirect_error.cpp @@ -2,7 +2,7 @@ // redirect_error.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,10 +16,106 @@ // Test that header file is self-contained. #include "asio/redirect_error.hpp" +#include "asio/bind_executor.hpp" +#include "asio/deferred.hpp" +#include "asio/io_context.hpp" +#include "asio/post.hpp" +#include "asio/system_timer.hpp" +#include "asio/use_future.hpp" #include "unit_test.hpp" +struct redirect_error_handler +{ + int* count_; + + explicit redirect_error_handler(int* c) + : count_(c) + { + } + + void operator()() + { + ++(*count_); + } +}; + +void redirect_error_test() +{ + asio::io_context io1; + asio::io_context io2; + asio::system_timer timer1(io1); + asio::error_code ec = asio::error::would_block; + int count = 0; + + timer1.expires_after(asio::chrono::seconds(0)); + timer1.async_wait( + asio::redirect_error( + asio::bind_executor(io2.get_executor(), + redirect_error_handler(&count)), ec)); + + ASIO_CHECK(ec == asio::error::would_block); + ASIO_CHECK(count == 0); + + io1.run(); + + ASIO_CHECK(ec == asio::error::would_block); + ASIO_CHECK(count == 0); + + io2.run(); + + ASIO_CHECK(!ec); + ASIO_CHECK(count == 1); + + ec = asio::error::would_block; + timer1.async_wait( + asio::redirect_error( + asio::bind_executor(io2.get_executor(), + asio::deferred), ec))(redirect_error_handler(&count)); + + ASIO_CHECK(ec == asio::error::would_block); + ASIO_CHECK(count == 1); + + io1.restart(); + io1.run(); + + ASIO_CHECK(ec == asio::error::would_block); + ASIO_CHECK(count == 1); + + io2.restart(); + io2.run(); + + ASIO_CHECK(!ec); + ASIO_CHECK(count == 2); + +#if defined(ASIO_HAS_STD_FUTURE_CLASS) + ec = asio::error::would_block; + std::future<void> f = timer1.async_wait( + asio::redirect_error( + asio::bind_executor(io2.get_executor(), + asio::use_future), ec)); + + ASIO_CHECK(ec == asio::error::would_block); + ASIO_CHECK(f.wait_for(std::chrono::seconds(0)) + == std::future_status::timeout); + + io1.restart(); + io1.run(); + + ASIO_CHECK(ec == asio::error::would_block); + ASIO_CHECK(f.wait_for(std::chrono::seconds(0)) + == std::future_status::timeout); + + io2.restart(); + io2.run(); + + ASIO_CHECK(!ec); + ASIO_CHECK(f.wait_for(std::chrono::seconds(0)) + == std::future_status::ready); +#endif // defined(ASIO_HAS_STD_FUTURE_CLASS) +} + ASIO_TEST_SUITE ( "redirect_error", - ASIO_TEST_CASE(null_test) + ASIO_TEST_CASE(redirect_error_test) ) diff --git a/3rdparty/asio/src/tests/unit/registered_buffer.cpp b/3rdparty/asio/src/tests/unit/registered_buffer.cpp new file mode 100644 index 00000000000..09c33415a14 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/registered_buffer.cpp @@ -0,0 +1,111 @@ +// +// registered_buffer.cpp +// ~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/registered_buffer.hpp" + +#include "unit_test.hpp" + +//------------------------------------------------------------------------------ + +// registered_buffer_compile test +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// The following test checks that all the mutable_registered_buffer and +// const_registered_buffer classes compile and link correctly. Runtime +// failures are ignored. + +namespace registered_buffer_compile { + +using namespace asio; + +void test() +{ + try + { + // mutable_registered_buffer constructors. + + mutable_registered_buffer mb1; + mutable_registered_buffer mb2(mb1); + (void)mb2; + + // mutable_registered_buffer functions. + + mutable_buffer b1 = mb1.buffer(); + (void)b1; + + void* ptr1 = mb1.data(); + (void)ptr1; + + std::size_t n1 = mb1.size(); + (void)n1; + + registered_buffer_id id1 = mb1.id(); + (void)id1; + + // mutable_registered_buffer operators. + + mb1 += 128; + mb1 = mb2 + 128; + mb1 = 128 + mb2; + + // const_registered_buffer constructors. + + const_registered_buffer cb1; + const_registered_buffer cb2(cb1); + (void)cb2; + const_registered_buffer cb3(mb1); + (void)cb3; + + // const_registered_buffer functions. + + const_buffer b2 = cb1.buffer(); + (void)b2; + + const void* ptr2 = cb1.data(); + (void)ptr2; + + std::size_t n2 = cb1.size(); + (void)n2; + + registered_buffer_id id2 = cb1.id(); + (void)id2; + + // const_registered_buffer operators. + + cb1 += 128; + cb1 = cb2 + 128; + cb1 = 128 + cb2; + + // buffer function overloads. + + mb1 = buffer(mb2); + mb1 = buffer(mb2, 128); + cb1 = buffer(cb2); + cb1 = buffer(cb2, 128); + } + catch (std::exception&) + { + } +} + +} // namespace buffer_compile + +//------------------------------------------------------------------------------ + +ASIO_TEST_SUITE +( + "registered_buffer", + ASIO_COMPILE_TEST_CASE(registered_buffer_compile::test) +) diff --git a/3rdparty/asio/src/tests/unit/serial_port.cpp b/3rdparty/asio/src/tests/unit/serial_port.cpp index 23f9610f982..9bbafd34d9b 100644 --- a/3rdparty/asio/src/tests/unit/serial_port.cpp +++ b/3rdparty/asio/src/tests/unit/serial_port.cpp @@ -2,7 +2,7 @@ // serial_port.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -34,22 +34,18 @@ struct write_some_handler { write_some_handler() {} void operator()(const asio::error_code&, std::size_t) {} -#if defined(ASIO_HAS_MOVE) write_some_handler(write_some_handler&&) {} private: write_some_handler(const write_some_handler&); -#endif // defined(ASIO_HAS_MOVE) }; struct read_some_handler { read_some_handler() {} void operator()(const asio::error_code&, std::size_t) {} -#if defined(ASIO_HAS_MOVE) read_some_handler(read_some_handler&&) {} private: read_some_handler(const read_some_handler&); -#endif // defined(ASIO_HAS_MOVE) }; void test() @@ -83,16 +79,16 @@ void test() serial_port::native_handle_type native_port2 = port1.native_handle(); serial_port port6(ioc_ex, native_port2); -#if defined(ASIO_HAS_MOVE) serial_port port7(std::move(port6)); -#endif // defined(ASIO_HAS_MOVE) + + basic_serial_port<io_context::executor_type> port8(ioc); + serial_port port9(std::move(port8)); // basic_serial_port operators. -#if defined(ASIO_HAS_MOVE) port1 = serial_port(ioc); port1 = std::move(port2); -#endif // defined(ASIO_HAS_MOVE) + port1 = std::move(port8); // basic_io_object functions. @@ -104,8 +100,8 @@ void test() serial_port::lowest_layer_type& lowest_layer = port1.lowest_layer(); (void)lowest_layer; - const serial_port& port8 = port1; - const serial_port::lowest_layer_type& lowest_layer2 = port8.lowest_layer(); + const serial_port& port10 = port1; + const serial_port::lowest_layer_type& lowest_layer2 = port10.lowest_layer(); (void)lowest_layer2; port1.open("null"); @@ -169,5 +165,5 @@ void test() ASIO_TEST_SUITE ( "serial_port", - ASIO_TEST_CASE(serial_port_compile::test) + ASIO_COMPILE_TEST_CASE(serial_port_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/serial_port_base.cpp b/3rdparty/asio/src/tests/unit/serial_port_base.cpp index 1575a6d3a3d..1c888ef661c 100644 --- a/3rdparty/asio/src/tests/unit/serial_port_base.cpp +++ b/3rdparty/asio/src/tests/unit/serial_port_base.cpp @@ -2,7 +2,7 @@ // serial_port_base.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -95,5 +95,5 @@ void test() ASIO_TEST_SUITE ( "serial_port_base", - ASIO_TEST_CASE(serial_port_base_compile::test) + ASIO_COMPILE_TEST_CASE(serial_port_base_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/signal_set.cpp b/3rdparty/asio/src/tests/unit/signal_set.cpp index cd8bd004154..962be8ba92e 100644 --- a/3rdparty/asio/src/tests/unit/signal_set.cpp +++ b/3rdparty/asio/src/tests/unit/signal_set.cpp @@ -2,7 +2,7 @@ // signal_set.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -66,6 +66,9 @@ void test() set1.add(1); set1.add(1, ec); + set1.add(1, signal_set::flags::dont_care); + set1.add(1, signal_set::flags::dont_care, ec); + set1.remove(1); set1.remove(1, ec); @@ -91,5 +94,5 @@ void test() ASIO_TEST_SUITE ( "signal_set", - ASIO_TEST_CASE(signal_set_compile::test) + ASIO_COMPILE_TEST_CASE(signal_set_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/signal_set_base.cpp b/3rdparty/asio/src/tests/unit/signal_set_base.cpp new file mode 100644 index 00000000000..7f27e8ccc2e --- /dev/null +++ b/3rdparty/asio/src/tests/unit/signal_set_base.cpp @@ -0,0 +1,30 @@ +// +// signal_set_base.cpp +// ~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Prevent link dependency on the Boost.System library. +#if !defined(BOOST_SYSTEM_NO_DEPRECATED) +#define BOOST_SYSTEM_NO_DEPRECATED +#endif // !defined(BOOST_SYSTEM_NO_DEPRECATED) + +// Test that header file is self-contained. +#include "asio/signal_set_base.hpp" + +#include "unit_test.hpp" + +ASIO_TEST_SUITE +( + "signal_set_base", + ASIO_TEST_CASE(null_test) +) diff --git a/3rdparty/asio/src/tests/unit/socket_base.cpp b/3rdparty/asio/src/tests/unit/socket_base.cpp index e6eb96b2351..21f63ab433c 100644 --- a/3rdparty/asio/src/tests/unit/socket_base.cpp +++ b/3rdparty/asio/src/tests/unit/socket_base.cpp @@ -2,7 +2,7 @@ // socket_base.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -645,6 +645,6 @@ void test() ASIO_TEST_SUITE ( "socket_base", - ASIO_TEST_CASE(socket_base_compile::test) + ASIO_COMPILE_TEST_CASE(socket_base_compile::test) ASIO_TEST_CASE(socket_base_runtime::test) ) diff --git a/3rdparty/asio/src/tests/unit/ssl/context.cpp b/3rdparty/asio/src/tests/unit/ssl/context.cpp index 4ba3aa98c02..621bf11c4a0 100644 --- a/3rdparty/asio/src/tests/unit/ssl/context.cpp +++ b/3rdparty/asio/src/tests/unit/ssl/context.cpp @@ -2,7 +2,7 @@ // context.cpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ssl/context_base.cpp b/3rdparty/asio/src/tests/unit/ssl/context_base.cpp index 40f07ca3850..9ddddad3a8e 100644 --- a/3rdparty/asio/src/tests/unit/ssl/context_base.cpp +++ b/3rdparty/asio/src/tests/unit/ssl/context_base.cpp @@ -2,7 +2,7 @@ // context_base.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ssl/error.cpp b/3rdparty/asio/src/tests/unit/ssl/error.cpp index 90286d681bc..633d7b61e8f 100644 --- a/3rdparty/asio/src/tests/unit/ssl/error.cpp +++ b/3rdparty/asio/src/tests/unit/ssl/error.cpp @@ -2,7 +2,7 @@ // error.cpp // ~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ssl/host_name_verification.cpp b/3rdparty/asio/src/tests/unit/ssl/host_name_verification.cpp index fc16dbe0426..7126e4b083a 100644 --- a/3rdparty/asio/src/tests/unit/ssl/host_name_verification.cpp +++ b/3rdparty/asio/src/tests/unit/ssl/host_name_verification.cpp @@ -2,7 +2,7 @@ // host_name_verification.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ssl/rfc2818_verification.cpp b/3rdparty/asio/src/tests/unit/ssl/rfc2818_verification.cpp index 21cf82f1f4e..adcfa95ded8 100644 --- a/3rdparty/asio/src/tests/unit/ssl/rfc2818_verification.cpp +++ b/3rdparty/asio/src/tests/unit/ssl/rfc2818_verification.cpp @@ -2,7 +2,7 @@ // rfc2818_verification.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ssl/stream.cpp b/3rdparty/asio/src/tests/unit/ssl/stream.cpp index 7a6eeb1f1f1..467115169b9 100644 --- a/3rdparty/asio/src/tests/unit/ssl/stream.cpp +++ b/3rdparty/asio/src/tests/unit/ssl/stream.cpp @@ -2,7 +2,7 @@ // stream.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -75,17 +75,13 @@ void test() ip::tcp::socket socket1(ioc, ip::tcp::v4()); ssl::stream<ip::tcp::socket&> stream2(socket1, context); -#if defined(ASIO_HAS_MOVE) ssl::stream<ip::tcp::socket> stream3 = ssl::stream<ip::tcp::socket>(ioc, context); ssl::stream<ip::tcp::socket> stream4(std::move(stream3)); -#endif // defined(ASIO_HAS_MOVE) // ssl::stream assignment. -#if defined(ASIO_HAS_MOVE) stream3 = std::move(stream4); -#endif // defined(ASIO_HAS_MOVE) // basic_io_object functions. @@ -199,5 +195,5 @@ void test() ASIO_TEST_SUITE ( "ssl/stream", - ASIO_TEST_CASE(ssl_stream_compile::test) + ASIO_COMPILE_TEST_CASE(ssl_stream_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/ssl/stream_base.cpp b/3rdparty/asio/src/tests/unit/ssl/stream_base.cpp index 03573e17aed..7e6a1e62ef0 100644 --- a/3rdparty/asio/src/tests/unit/ssl/stream_base.cpp +++ b/3rdparty/asio/src/tests/unit/ssl/stream_base.cpp @@ -2,7 +2,7 @@ // stream_base.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/static_thread_pool.cpp b/3rdparty/asio/src/tests/unit/static_thread_pool.cpp index 64071223942..b9b050bf7ee 100644 --- a/3rdparty/asio/src/tests/unit/static_thread_pool.cpp +++ b/3rdparty/asio/src/tests/unit/static_thread_pool.cpp @@ -2,7 +2,7 @@ // static_thread_pool.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/steady_timer.cpp b/3rdparty/asio/src/tests/unit/steady_timer.cpp index 054e80c961d..fe2c041db4e 100644 --- a/3rdparty/asio/src/tests/unit/steady_timer.cpp +++ b/3rdparty/asio/src/tests/unit/steady_timer.cpp @@ -2,7 +2,7 @@ // steady_timer.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/strand.cpp b/3rdparty/asio/src/tests/unit/strand.cpp index bf801049654..90ae2bc22a8 100644 --- a/3rdparty/asio/src/tests/unit/strand.cpp +++ b/3rdparty/asio/src/tests/unit/strand.cpp @@ -2,7 +2,7 @@ // strand.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,6 +16,7 @@ // Test that header file is self-contained. #include "asio/strand.hpp" +#include <functional> #include <sstream> #include "asio/executor.hpp" #include "asio/io_context.hpp" @@ -30,24 +31,13 @@ # include "asio/steady_timer.hpp" #endif // defined(ASIO_HAS_BOOST_DATE_TIME) -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - using namespace asio; - -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif #if defined(ASIO_HAS_BOOST_DATE_TIME) typedef deadline_timer timer; namespace chronons = boost::posix_time; -#elif defined(ASIO_HAS_CHRONO) +#else // defined(ASIO_HAS_BOOST_DATE_TIME) typedef steady_timer timer; namespace chronons = asio::chrono; #endif // defined(ASIO_HAS_BOOST_DATE_TIME) @@ -303,7 +293,7 @@ void strand_execute_test() strand<io_context::executor_type> s1 = make_strand(ioc); int count = 0; - asio::execution::execute(s1, bindns::bind(increment, &count)); + s1.execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -317,8 +307,7 @@ void strand_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::require(s1, asio::execution::blocking.possibly), + asio::require(s1, asio::execution::blocking.possibly).execute( bindns::bind(increment, &count)); // No handlers can be called until run() is called. @@ -333,8 +322,7 @@ void strand_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::require(s1, asio::execution::blocking.never), + asio::require(s1, asio::execution::blocking.never).execute( bindns::bind(increment, &count)); // No handlers can be called until run() is called. @@ -351,11 +339,10 @@ void strand_execute_test() ioc.restart(); ASIO_CHECK(!ioc.stopped()); - asio::execution::execute( - asio::require(s1, - asio::execution::blocking.never, - asio::execution::outstanding_work.tracked), - bindns::bind(increment, &count)); + asio::require(s1, + asio::execution::blocking.never, + asio::execution::outstanding_work.tracked + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -369,11 +356,10 @@ void strand_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::require(s1, - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked), - bindns::bind(increment, &count)); + asio::require(s1, + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -387,12 +373,11 @@ void strand_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::require(s1, - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.fork), - bindns::bind(increment, &count)); + asio::require(s1, + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.fork + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -406,12 +391,11 @@ void strand_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::require(s1, - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - bindns::bind(increment, &count)); + asio::require(s1, + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.continuation + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -425,14 +409,13 @@ void strand_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::prefer( - asio::require(s1, - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - asio::execution::allocator(std::allocator<void>())), - bindns::bind(increment, &count)); + asio::prefer( + asio::require(s1, + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.continuation), + asio::execution::allocator(std::allocator<void>()) + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); @@ -446,14 +429,13 @@ void strand_execute_test() count = 0; ioc.restart(); - asio::execution::execute( - asio::prefer( - asio::require(s1, - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - asio::execution::allocator), - bindns::bind(increment, &count)); + asio::prefer( + asio::require(s1, + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.continuation), + asio::execution::allocator + ).execute(bindns::bind(increment, &count)); // No handlers can be called until run() is called. ASIO_CHECK(!ioc.stopped()); diff --git a/3rdparty/asio/src/tests/unit/stream_file.cpp b/3rdparty/asio/src/tests/unit/stream_file.cpp new file mode 100644 index 00000000000..a4416751cd2 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/stream_file.cpp @@ -0,0 +1,173 @@ +// +// stream_file.cpp +// ~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header file is self-contained. +#include "asio/stream_file.hpp" + +#include "archetypes/async_result.hpp" +#include "asio/io_context.hpp" +#include "unit_test.hpp" + +// stream_file_compile test +// ~~~~~~~~~~~~~~~~~~~~~~~~ +// The following test checks that all public member functions on the class +// stream_file compile and link correctly. Runtime failures are ignored. + +namespace stream_file_compile { + +struct write_some_handler +{ + write_some_handler() {} + void operator()(const asio::error_code&, std::size_t) {} + write_some_handler(write_some_handler&&) {} +private: + write_some_handler(const write_some_handler&); +}; + +struct read_some_handler +{ + read_some_handler() {} + void operator()(const asio::error_code&, std::size_t) {} + read_some_handler(read_some_handler&&) {} +private: + read_some_handler(const read_some_handler&); +}; + +void test() +{ +#if defined(ASIO_HAS_FILE) + using namespace asio; + + try + { + io_context ioc; + const io_context::executor_type ioc_ex = ioc.get_executor(); + char mutable_char_buffer[128] = ""; + const char const_char_buffer[128] = ""; + archetypes::lazy_handler lazy; + asio::error_code ec; + const std::string path; + + // basic_stream_file constructors. + + stream_file file1(ioc); + stream_file file2(ioc, "", stream_file::read_only); + stream_file file3(ioc, path, stream_file::read_only); + stream_file::native_handle_type native_file1 = file1.native_handle(); + stream_file file4(ioc, native_file1); + + stream_file file5(ioc_ex); + stream_file file6(ioc_ex, "", stream_file::read_only); + stream_file file7(ioc_ex, path, stream_file::read_only); + stream_file::native_handle_type native_file2 = file1.native_handle(); + stream_file file8(ioc_ex, native_file2); + + stream_file file9(std::move(file8)); + + basic_stream_file<io_context::executor_type> file10(ioc); + stream_file file11(std::move(file10)); + + // basic_stream_file operators. + + file1 = stream_file(ioc); + file1 = std::move(file2); + file1 = std::move(file10); + + // basic_io_object functions. + + stream_file::executor_type ex = file1.get_executor(); + (void)ex; + + // basic_stream_file functions. + + file1.open("", stream_file::read_only); + file1.open("", stream_file::read_only, ec); + + file1.open(path, stream_file::read_only); + file1.open(path, stream_file::read_only, ec); + + stream_file::native_handle_type native_file3 = file1.native_handle(); + file1.assign(native_file3); + stream_file::native_handle_type native_file4 = file1.native_handle(); + file1.assign(native_file4, ec); + + bool is_open = file1.is_open(); + (void)is_open; + + file1.close(); + file1.close(ec); + + stream_file::native_handle_type native_file5 = file1.native_handle(); + (void)native_file5; + + stream_file::native_handle_type native_file6 = file1.release(); + (void)native_file6; + stream_file::native_handle_type native_file7 = file1.release(ec); + (void)native_file7; + + file1.cancel(); + file1.cancel(ec); + + asio::uint64_t s1 = file1.size(); + (void)s1; + asio::uint64_t s2 = file1.size(ec); + (void)s2; + + file1.resize(asio::uint64_t(0)); + file1.resize(asio::uint64_t(0), ec); + + file1.sync_all(); + file1.sync_all(ec); + + file1.sync_data(); + file1.sync_data(ec); + + asio::uint64_t s3 = file1.seek(0, stream_file::seek_set); + (void)s3; + asio::uint64_t s4 = file1.seek(0, stream_file::seek_set, ec); + (void)s4; + + file1.write_some(buffer(mutable_char_buffer)); + file1.write_some(buffer(const_char_buffer)); + file1.write_some(buffer(mutable_char_buffer), ec); + file1.write_some(buffer(const_char_buffer), ec); + + file1.async_write_some(buffer(mutable_char_buffer), write_some_handler()); + file1.async_write_some(buffer(const_char_buffer), write_some_handler()); + int i1 = file1.async_write_some(buffer(mutable_char_buffer), lazy); + (void)i1; + int i2 = file1.async_write_some(buffer(const_char_buffer), lazy); + (void)i2; + + file1.read_some(buffer(mutable_char_buffer)); + file1.read_some(buffer(mutable_char_buffer), ec); + + file1.async_read_some(buffer(mutable_char_buffer), read_some_handler()); + int i3 = file1.async_read_some(buffer(mutable_char_buffer), lazy); + (void)i3; + } + catch (std::exception&) + { + } +#endif // defined(ASIO_HAS_FILE) +} + +} // namespace stream_file_compile + +ASIO_TEST_SUITE +( + "stream_file", + ASIO_COMPILE_TEST_CASE(stream_file_compile::test) +) diff --git a/3rdparty/asio/src/tests/unit/streambuf.cpp b/3rdparty/asio/src/tests/unit/streambuf.cpp index 7409fce07dc..c1c8477a242 100644 --- a/3rdparty/asio/src/tests/unit/streambuf.cpp +++ b/3rdparty/asio/src/tests/unit/streambuf.cpp @@ -2,7 +2,7 @@ // streambuf.cpp // ~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/system_context.cpp b/3rdparty/asio/src/tests/unit/system_context.cpp index 9d4adad4b20..297ab6bd7c1 100644 --- a/3rdparty/asio/src/tests/unit/system_context.cpp +++ b/3rdparty/asio/src/tests/unit/system_context.cpp @@ -2,7 +2,7 @@ // system_context.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/system_executor.cpp b/3rdparty/asio/src/tests/unit/system_executor.cpp index 68d9236ba89..7b811ccac0c 100644 --- a/3rdparty/asio/src/tests/unit/system_executor.cpp +++ b/3rdparty/asio/src/tests/unit/system_executor.cpp @@ -2,7 +2,7 @@ // system_executor.cpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -21,23 +21,14 @@ // Test that header file is self-contained. #include "asio/system_executor.hpp" +#include <functional> #include "asio/dispatch.hpp" #include "asio/post.hpp" #include "unit_test.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - using namespace asio; -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif void increment(asio::detail::atomic_count* count) { @@ -83,11 +74,6 @@ void system_executor_query_test() ASIO_CHECK( asio::query(system_executor(), - asio::execution::bulk_guarantee) - == asio::execution::bulk_guarantee.unsequenced); - - ASIO_CHECK( - asio::query(system_executor(), asio::execution::mapping) == asio::execution::mapping.thread); @@ -101,61 +87,52 @@ void system_executor_execute_test() { asio::detail::atomic_count count(0); - asio::execution::execute(system_executor(), - bindns::bind(increment, &count)); + system_executor().execute(bindns::bind(increment, &count)); - asio::execution::execute( - asio::require(system_executor(), - asio::execution::blocking.possibly), - bindns::bind(increment, &count)); + asio::require(system_executor(), + asio::execution::blocking.possibly + ).execute(bindns::bind(increment, &count)); - asio::execution::execute( - asio::require(system_executor(), - asio::execution::blocking.always), - bindns::bind(increment, &count)); + asio::require(system_executor(), + asio::execution::blocking.always + ).execute(bindns::bind(increment, &count)); - asio::execution::execute( - asio::require(system_executor(), - asio::execution::blocking.never), - bindns::bind(increment, &count)); + asio::require(system_executor(), + asio::execution::blocking.never + ).execute(bindns::bind(increment, &count)); - asio::execution::execute( - asio::require(system_executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked), - bindns::bind(increment, &count)); + asio::require(system_executor(), + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked + ).execute(bindns::bind(increment, &count)); - asio::execution::execute( + asio::require(system_executor(), + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.fork + ).execute(bindns::bind(increment, &count)); + + asio::require(system_executor(), + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.continuation + ).execute(bindns::bind(increment, &count)); + + asio::prefer( asio::require(system_executor(), asio::execution::blocking.never, asio::execution::outstanding_work.untracked, - asio::execution::relationship.fork), - bindns::bind(increment, &count)); + asio::execution::relationship.continuation), + asio::execution::allocator(std::allocator<void>()) + ).execute(bindns::bind(increment, &count)); - asio::execution::execute( + asio::prefer( asio::require(system_executor(), asio::execution::blocking.never, asio::execution::outstanding_work.untracked, asio::execution::relationship.continuation), - bindns::bind(increment, &count)); - - asio::execution::execute( - asio::prefer( - asio::require(system_executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - asio::execution::allocator(std::allocator<void>())), - bindns::bind(increment, &count)); - - asio::execution::execute( - asio::prefer( - asio::require(system_executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - asio::execution::allocator), - bindns::bind(increment, &count)); + asio::execution::allocator + ).execute(bindns::bind(increment, &count)); asio::query(system_executor(), execution::context).join(); diff --git a/3rdparty/asio/src/tests/unit/system_timer.cpp b/3rdparty/asio/src/tests/unit/system_timer.cpp index 864a9f2e7fb..26a5720129f 100644 --- a/3rdparty/asio/src/tests/unit/system_timer.cpp +++ b/3rdparty/asio/src/tests/unit/system_timer.cpp @@ -2,7 +2,7 @@ // system_timer.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -21,27 +21,15 @@ // Test that header file is self-contained. #include "asio/system_timer.hpp" -#include "unit_test.hpp" - -#if defined(ASIO_HAS_STD_CHRONO) - +#include <functional> #include "asio/bind_cancellation_slot.hpp" #include "asio/cancellation_signal.hpp" #include "asio/executor_work_guard.hpp" #include "asio/io_context.hpp" #include "asio/thread.hpp" +#include "unit_test.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) void increment(int* count) { @@ -237,11 +225,9 @@ struct timer_handler { timer_handler() {} void operator()(const asio::error_code&) {} -#if defined(ASIO_HAS_MOVE) timer_handler(timer_handler&&) {} private: timer_handler(const timer_handler&); -#endif // defined(ASIO_HAS_MOVE) }; void system_timer_cancel_test() @@ -290,18 +276,18 @@ struct custom_allocation_timer_handler typedef allocator<U> other; }; - explicit allocator(int* count) ASIO_NOEXCEPT + explicit allocator(int* count) noexcept : count_(count) { } - allocator(const allocator& other) ASIO_NOEXCEPT + allocator(const allocator& other) noexcept : count_(other.count_) { } template <typename U> - allocator(const allocator<U>& other) ASIO_NOEXCEPT + allocator(const allocator<U>& other) noexcept : count_(other.count_) { } @@ -338,7 +324,7 @@ struct custom_allocation_timer_handler typedef allocator<int> allocator_type; - allocator_type get_allocator() const ASIO_NOEXCEPT + allocator_type get_allocator() const noexcept { return allocator_type(count_); } @@ -406,7 +392,6 @@ void system_timer_thread_test() ASIO_CHECK(count == 1); } -#if defined(ASIO_HAS_MOVE) asio::system_timer make_timer(asio::io_context& ioc, int* count) { asio::system_timer t(ioc); @@ -427,11 +412,9 @@ io_context_system_timer make_convertible_timer(asio::io_context& ioc, int* count t.async_wait(bindns::bind(increment, count)); return t; } -#endif void system_timer_move_test() { -#if defined(ASIO_HAS_MOVE) asio::io_context io_context1; asio::io_context io_context2; int count = 0; @@ -465,7 +448,6 @@ void system_timer_move_test() io_context1.run(); ASIO_CHECK(count == 4); -#endif // defined(ASIO_HAS_MOVE) } void system_timer_op_cancel_test() @@ -516,10 +498,3 @@ ASIO_TEST_SUITE ASIO_TEST_CASE(system_timer_move_test) ASIO_TEST_CASE(system_timer_op_cancel_test) ) -#else // defined(ASIO_HAS_STD_CHRONO) -ASIO_TEST_SUITE -( - "system_timer", - ASIO_TEST_CASE(null_test) -) -#endif // defined(ASIO_HAS_STD_CHRONO) diff --git a/3rdparty/asio/src/tests/unit/this_coro.cpp b/3rdparty/asio/src/tests/unit/this_coro.cpp index ef8f67b918f..d1e0fc677c5 100644 --- a/3rdparty/asio/src/tests/unit/this_coro.cpp +++ b/3rdparty/asio/src/tests/unit/this_coro.cpp @@ -2,7 +2,7 @@ // this_coro.cpp // ~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/thread.cpp b/3rdparty/asio/src/tests/unit/thread.cpp index a99ef219bb0..b84db72158e 100644 --- a/3rdparty/asio/src/tests/unit/thread.cpp +++ b/3rdparty/asio/src/tests/unit/thread.cpp @@ -2,7 +2,7 @@ // thread.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/thread_pool.cpp b/3rdparty/asio/src/tests/unit/thread_pool.cpp index aec68023367..f65d7963c26 100644 --- a/3rdparty/asio/src/tests/unit/thread_pool.cpp +++ b/3rdparty/asio/src/tests/unit/thread_pool.cpp @@ -2,7 +2,7 @@ // thread_pool.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,23 +16,13 @@ // Test that header file is self-contained. #include "asio/thread_pool.hpp" +#include <functional> #include "asio/dispatch.hpp" #include "asio/post.hpp" #include "unit_test.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - using namespace asio; - -#if defined(ASIO_HAS_BOOST_BIND) -namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif void increment(int* count) { @@ -207,11 +197,6 @@ void thread_pool_executor_query_test() ASIO_CHECK( asio::query(pool.executor(), - asio::execution::bulk_guarantee) - == asio::execution::bulk_guarantee.parallel); - - ASIO_CHECK( - asio::query(pool.executor(), asio::execution::mapping) == asio::execution::mapping.thread); @@ -231,287 +216,61 @@ void thread_pool_executor_execute_test() int count = 0; thread_pool pool(1); - asio::execution::execute(pool.executor(), - bindns::bind(increment, &count)); - - asio::execution::execute( - asio::require(pool.executor(), - asio::execution::blocking.possibly), - bindns::bind(increment, &count)); - - asio::execution::execute( - asio::require(pool.executor(), - asio::execution::blocking.always), - bindns::bind(increment, &count)); - - asio::execution::execute( - asio::require(pool.executor(), - asio::execution::blocking.never), - bindns::bind(increment, &count)); - - asio::execution::execute( - asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.tracked), - bindns::bind(increment, &count)); - - asio::execution::execute( - asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked), - bindns::bind(increment, &count)); - - asio::execution::execute( - asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.fork), - bindns::bind(increment, &count)); - - asio::execution::execute( - asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - bindns::bind(increment, &count)); - - asio::execution::execute( - asio::prefer( - asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - asio::execution::allocator(std::allocator<void>())), - bindns::bind(increment, &count)); - - asio::execution::execute( - asio::prefer( - asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - asio::execution::allocator), - bindns::bind(increment, &count)); - - pool.wait(); - - ASIO_CHECK(count == 10); -} - -struct receiver -{ - int* count_; - - receiver(int* count) - : count_(count) - { - } - - receiver(const receiver& other) ASIO_NOEXCEPT - : count_(other.count_) - { - } - -#if defined(ASIO_HAS_MOVE) - receiver(receiver&& other) ASIO_NOEXCEPT - : count_(other.count_) - { - other.count_ = 0; - } -#endif // defined(ASIO_HAS_MOVE) - - void set_value() ASIO_NOEXCEPT - { - ++(*count_); - } - - template <typename E> - void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT - { - (void)e; - } - - void set_done() ASIO_NOEXCEPT - { - } -}; - -namespace asio { -namespace traits { - -#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -template <> -struct set_value_member<receiver, void()> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -template <typename E> -struct set_error_member<receiver, E> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT) - -#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -template <> -struct set_done_member<receiver> -{ - ASIO_STATIC_CONSTEXPR(bool, is_valid = true); - ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); - typedef void result_type; -}; - -#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT) - -} // namespace traits -} // namespace asio - -void thread_pool_scheduler_test() -{ - int count = 0; - receiver r(&count); - thread_pool pool(1); - - asio::execution::submit( - asio::execution::schedule(pool.scheduler()), r); - - asio::execution::submit( - asio::require( - asio::execution::schedule(pool.executor()), - asio::execution::blocking.possibly), r); - - asio::execution::submit( - asio::require( - asio::execution::schedule(pool.executor()), - asio::execution::blocking.always), r); - - asio::execution::submit( - asio::require( - asio::execution::schedule(pool.executor()), - asio::execution::blocking.never), r); - - asio::execution::submit( - asio::require( - asio::execution::schedule(pool.executor()), - asio::execution::blocking.never, - asio::execution::outstanding_work.tracked), r); - - asio::execution::submit( - asio::require( - asio::execution::schedule(pool.executor()), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked), r); - - asio::execution::submit( - asio::require( - asio::execution::schedule(pool.executor()), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.fork), r); - - asio::execution::submit( - asio::require( - asio::execution::schedule(pool.executor()), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), r); - - asio::execution::submit( - asio::prefer( - asio::require( - asio::execution::schedule(pool.executor()), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - asio::execution::allocator(std::allocator<void>())), r); - - asio::execution::submit( - asio::prefer( - asio::require( - asio::execution::schedule(pool.executor()), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - asio::execution::allocator), r); - - pool.wait(); - - ASIO_CHECK(count == 10); -} - -void thread_pool_executor_bulk_execute_test() -{ - int count = 0; - thread_pool pool(1); - - pool.executor().bulk_execute( - bindns::bind(increment, &count), 2); + pool.executor().execute(bindns::bind(increment, &count)); asio::require(pool.executor(), - asio::execution::blocking.possibly).bulk_execute( - bindns::bind(increment, &count), 2); + asio::execution::blocking.possibly + ).execute(bindns::bind(increment, &count)); asio::require(pool.executor(), - asio::execution::blocking.always).bulk_execute( - bindns::bind(increment, &count), 2); + asio::execution::blocking.always + ).execute(bindns::bind(increment, &count)); asio::require(pool.executor(), - asio::execution::blocking.never).bulk_execute( - bindns::bind(increment, &count), 2); + asio::execution::blocking.never + ).execute(bindns::bind(increment, &count)); asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.tracked).bulk_execute( - bindns::bind(increment, &count), 2); + asio::execution::blocking.never, + asio::execution::outstanding_work.tracked + ).execute(bindns::bind(increment, &count)); asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked).bulk_execute( - bindns::bind(increment, &count), 2); + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked + ).execute(bindns::bind(increment, &count)); asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.fork).bulk_execute( - bindns::bind(increment, &count), 2); + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.fork + ).execute(bindns::bind(increment, &count)); asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation).bulk_execute( - bindns::bind(increment, &count), 2); - - asio::prefer( - asio::require(pool.executor(), asio::execution::blocking.never, asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - asio::execution::allocator(std::allocator<void>())).bulk_execute( - bindns::bind(increment, &count), 2); + asio::execution::relationship.continuation + ).execute(bindns::bind(increment, &count)); asio::prefer( - asio::require(pool.executor(), - asio::execution::blocking.never, - asio::execution::outstanding_work.untracked, - asio::execution::relationship.continuation), - asio::execution::allocator).bulk_execute( - bindns::bind(increment, &count), 2); + asio::require(pool.executor(), + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.continuation), + asio::execution::allocator(std::allocator<void>()) + ).execute(bindns::bind(increment, &count)); + + asio::prefer( + asio::require(pool.executor(), + asio::execution::blocking.never, + asio::execution::outstanding_work.untracked, + asio::execution::relationship.continuation), + asio::execution::allocator + ).execute(bindns::bind(increment, &count)); pool.wait(); - ASIO_CHECK(count == 20); + ASIO_CHECK(count == 10); } ASIO_TEST_SUITE @@ -521,6 +280,4 @@ ASIO_TEST_SUITE ASIO_TEST_CASE(thread_pool_service_test) ASIO_TEST_CASE(thread_pool_executor_query_test) ASIO_TEST_CASE(thread_pool_executor_execute_test) - ASIO_TEST_CASE(thread_pool_executor_bulk_execute_test) - ASIO_TEST_CASE(thread_pool_scheduler_test) ) diff --git a/3rdparty/asio/src/tests/unit/time_traits.cpp b/3rdparty/asio/src/tests/unit/time_traits.cpp index b64a75b0018..2763d9ecc30 100644 --- a/3rdparty/asio/src/tests/unit/time_traits.cpp +++ b/3rdparty/asio/src/tests/unit/time_traits.cpp @@ -2,7 +2,7 @@ // time_traits.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ts/buffer.cpp b/3rdparty/asio/src/tests/unit/ts/buffer.cpp index a2ad558945a..8f09c4fecc9 100644 --- a/3rdparty/asio/src/tests/unit/ts/buffer.cpp +++ b/3rdparty/asio/src/tests/unit/ts/buffer.cpp @@ -2,7 +2,7 @@ // buffer.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ts/executor.cpp b/3rdparty/asio/src/tests/unit/ts/executor.cpp index 840850370df..9e318d93dbd 100644 --- a/3rdparty/asio/src/tests/unit/ts/executor.cpp +++ b/3rdparty/asio/src/tests/unit/ts/executor.cpp @@ -2,7 +2,7 @@ // executor.cpp // ~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ts/internet.cpp b/3rdparty/asio/src/tests/unit/ts/internet.cpp index 8680be6a46f..1ee8320d9d7 100644 --- a/3rdparty/asio/src/tests/unit/ts/internet.cpp +++ b/3rdparty/asio/src/tests/unit/ts/internet.cpp @@ -2,7 +2,7 @@ // internet.cpp // ~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ts/io_context.cpp b/3rdparty/asio/src/tests/unit/ts/io_context.cpp index 616e911183f..365e2579e8c 100644 --- a/3rdparty/asio/src/tests/unit/ts/io_context.cpp +++ b/3rdparty/asio/src/tests/unit/ts/io_context.cpp @@ -2,7 +2,7 @@ // io_context.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ts/net.cpp b/3rdparty/asio/src/tests/unit/ts/net.cpp index c59d1586c6f..25f65030994 100644 --- a/3rdparty/asio/src/tests/unit/ts/net.cpp +++ b/3rdparty/asio/src/tests/unit/ts/net.cpp @@ -2,7 +2,7 @@ // net.cpp // ~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ts/netfwd.cpp b/3rdparty/asio/src/tests/unit/ts/netfwd.cpp index 67523c4ceb0..55af93c87c3 100644 --- a/3rdparty/asio/src/tests/unit/ts/netfwd.cpp +++ b/3rdparty/asio/src/tests/unit/ts/netfwd.cpp @@ -2,7 +2,7 @@ // netfwd.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ts/socket.cpp b/3rdparty/asio/src/tests/unit/ts/socket.cpp index d1e5df95c0d..4656fa2eb5a 100644 --- a/3rdparty/asio/src/tests/unit/ts/socket.cpp +++ b/3rdparty/asio/src/tests/unit/ts/socket.cpp @@ -2,7 +2,7 @@ // socket.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/ts/timer.cpp b/3rdparty/asio/src/tests/unit/ts/timer.cpp index 8a6e855b9e6..e956bd463d5 100644 --- a/3rdparty/asio/src/tests/unit/ts/timer.cpp +++ b/3rdparty/asio/src/tests/unit/ts/timer.cpp @@ -2,7 +2,7 @@ // timer.cpp // ~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/unit_test.hpp b/3rdparty/asio/src/tests/unit/unit_test.hpp index 5b2123e2030..8efae9987e6 100644 --- a/3rdparty/asio/src/tests/unit/unit_test.hpp +++ b/3rdparty/asio/src/tests/unit/unit_test.hpp @@ -2,7 +2,7 @@ // unit_test.hpp // ~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/use_awaitable.cpp b/3rdparty/asio/src/tests/unit/use_awaitable.cpp index 84702c25e5b..815f57ebb1c 100644 --- a/3rdparty/asio/src/tests/unit/use_awaitable.cpp +++ b/3rdparty/asio/src/tests/unit/use_awaitable.cpp @@ -2,7 +2,7 @@ // use_awaitable.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/use_future.cpp b/3rdparty/asio/src/tests/unit/use_future.cpp index 5c2bda5b577..ac12f7caa23 100644 --- a/3rdparty/asio/src/tests/unit/use_future.cpp +++ b/3rdparty/asio/src/tests/unit/use_future.cpp @@ -2,7 +2,7 @@ // use_future.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -19,7 +19,7 @@ #include <string> #include "unit_test.hpp" -#if defined(ASIO_HAS_STD_FUTURE) +#if defined(ASIO_HAS_STD_FUTURE_CLASS) #include "archetypes/async_ops.hpp" @@ -659,7 +659,7 @@ ASIO_TEST_SUITE ASIO_TEST_CASE(use_future_package_3_test) ) -#else // defined(ASIO_HAS_STD_FUTURE) +#else // defined(ASIO_HAS_STD_FUTURE_CLASS) ASIO_TEST_SUITE ( @@ -667,4 +667,4 @@ ASIO_TEST_SUITE ASIO_TEST_CASE(null_test) ) -#endif // defined(ASIO_HAS_STD_FUTURE) +#endif // defined(ASIO_HAS_STD_FUTURE_CLASS) diff --git a/3rdparty/asio/src/tests/unit/uses_executor.cpp b/3rdparty/asio/src/tests/unit/uses_executor.cpp index 76d2fdbf0d9..f3d52c1d8fc 100644 --- a/3rdparty/asio/src/tests/unit/uses_executor.cpp +++ b/3rdparty/asio/src/tests/unit/uses_executor.cpp @@ -2,7 +2,7 @@ // uses_executor.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/wait_traits.cpp b/3rdparty/asio/src/tests/unit/wait_traits.cpp index 2cea19a50ae..4bdb498d7bf 100644 --- a/3rdparty/asio/src/tests/unit/wait_traits.cpp +++ b/3rdparty/asio/src/tests/unit/wait_traits.cpp @@ -2,7 +2,7 @@ // wait_traits.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/windows/basic_object_handle.cpp b/3rdparty/asio/src/tests/unit/windows/basic_object_handle.cpp index 87cfb15b2c0..d4d6def159a 100644 --- a/3rdparty/asio/src/tests/unit/windows/basic_object_handle.cpp +++ b/3rdparty/asio/src/tests/unit/windows/basic_object_handle.cpp @@ -2,7 +2,7 @@ // basic_object_handle.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/windows/basic_overlapped_handle.cpp b/3rdparty/asio/src/tests/unit/windows/basic_overlapped_handle.cpp index 668742a5f50..62b5419c69f 100644 --- a/3rdparty/asio/src/tests/unit/windows/basic_overlapped_handle.cpp +++ b/3rdparty/asio/src/tests/unit/windows/basic_overlapped_handle.cpp @@ -2,7 +2,7 @@ // basic_overlapped_handle.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/windows/basic_random_access_handle.cpp b/3rdparty/asio/src/tests/unit/windows/basic_random_access_handle.cpp index 6fa7a02a00e..4a2605ea335 100644 --- a/3rdparty/asio/src/tests/unit/windows/basic_random_access_handle.cpp +++ b/3rdparty/asio/src/tests/unit/windows/basic_random_access_handle.cpp @@ -2,7 +2,7 @@ // basic_random_access_handle.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/windows/basic_stream_handle.cpp b/3rdparty/asio/src/tests/unit/windows/basic_stream_handle.cpp index fdde859da95..9cdf0bd5c20 100644 --- a/3rdparty/asio/src/tests/unit/windows/basic_stream_handle.cpp +++ b/3rdparty/asio/src/tests/unit/windows/basic_stream_handle.cpp @@ -2,7 +2,7 @@ // basic_stream_handle.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/windows/object_handle.cpp b/3rdparty/asio/src/tests/unit/windows/object_handle.cpp index 6fdde1d7940..0784ba9fdb7 100644 --- a/3rdparty/asio/src/tests/unit/windows/object_handle.cpp +++ b/3rdparty/asio/src/tests/unit/windows/object_handle.cpp @@ -2,7 +2,7 @@ // object_handle.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -61,16 +61,16 @@ void test() HANDLE native_handle2 = INVALID_HANDLE_VALUE; win::object_handle handle4(ioc_ex, native_handle2); -#if defined(ASIO_HAS_MOVE) win::object_handle handle5(std::move(handle4)); -#endif // defined(ASIO_HAS_MOVE) + + win::basic_object_handle<io_context::executor_type> handle6(ioc); + win::object_handle handle7(std::move(handle6)); // basic_object_handle operators. -#if defined(ASIO_HAS_MOVE) handle1 = win::object_handle(ioc); handle1 = std::move(handle3); -#endif // defined(ASIO_HAS_MOVE) + handle1 = std::move(handle6); // basic_io_object functions. @@ -83,9 +83,9 @@ void test() = handle1.lowest_layer(); (void)lowest_layer; - const win::object_handle& handle6 = handle1; + const win::object_handle& handle8 = handle1; const win::object_handle::lowest_layer_type& lowest_layer3 - = handle6.lowest_layer(); + = handle8.lowest_layer(); (void)lowest_layer3; HANDLE native_handle4 = INVALID_HANDLE_VALUE; @@ -126,5 +126,5 @@ void test() ASIO_TEST_SUITE ( "windows/object_handle", - ASIO_TEST_CASE(windows_object_handle_compile::test) + ASIO_COMPILE_TEST_CASE(windows_object_handle_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/windows/overlapped_handle.cpp b/3rdparty/asio/src/tests/unit/windows/overlapped_handle.cpp index 629299b7567..5cdd3da2db1 100644 --- a/3rdparty/asio/src/tests/unit/windows/overlapped_handle.cpp +++ b/3rdparty/asio/src/tests/unit/windows/overlapped_handle.cpp @@ -2,7 +2,7 @@ // overlapped_handle.cpp // ~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) diff --git a/3rdparty/asio/src/tests/unit/windows/overlapped_ptr.cpp b/3rdparty/asio/src/tests/unit/windows/overlapped_ptr.cpp index ff4173dcdf2..fda1b2cbd98 100644 --- a/3rdparty/asio/src/tests/unit/windows/overlapped_ptr.cpp +++ b/3rdparty/asio/src/tests/unit/windows/overlapped_ptr.cpp @@ -2,7 +2,7 @@ // overlapped_ptr.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -115,5 +115,5 @@ void test() ASIO_TEST_SUITE ( "windows/overlapped_ptr", - ASIO_TEST_CASE(windows_overlapped_ptr_compile::test) + ASIO_COMPILE_TEST_CASE(windows_overlapped_ptr_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/windows/random_access_handle.cpp b/3rdparty/asio/src/tests/unit/windows/random_access_handle.cpp index 94fa29f2d96..613732c5128 100644 --- a/3rdparty/asio/src/tests/unit/windows/random_access_handle.cpp +++ b/3rdparty/asio/src/tests/unit/windows/random_access_handle.cpp @@ -2,7 +2,7 @@ // random_access_handle.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -68,16 +68,16 @@ void test() HANDLE native_handle2 = INVALID_HANDLE_VALUE; win::random_access_handle handle4(ioc_ex, native_handle2); -#if defined(ASIO_HAS_MOVE) win::random_access_handle handle5(std::move(handle4)); -#endif // defined(ASIO_HAS_MOVE) + + win::basic_random_access_handle<io_context::executor_type> handle6(ioc); + win::random_access_handle handle7(std::move(handle6)); // basic_random_access_handle operators. -#if defined(ASIO_HAS_MOVE) handle1 = win::random_access_handle(ioc); handle1 = std::move(handle4); -#endif // defined(ASIO_HAS_MOVE) + handle1 = std::move(handle6); // basic_io_object functions. @@ -90,9 +90,9 @@ void test() = handle1.lowest_layer(); (void)lowest_layer; - const win::random_access_handle& handle6 = handle1; + const win::random_access_handle& handle8 = handle1; const win::random_access_handle::lowest_layer_type& lowest_layer2 - = handle6.lowest_layer(); + = handle8.lowest_layer(); (void)lowest_layer2; HANDLE native_handle3 = INVALID_HANDLE_VALUE; @@ -105,8 +105,15 @@ void test() handle1.close(ec); win::random_access_handle::native_handle_type native_handle4 - = handle1.native_handle(); + = handle1.release(); (void)native_handle4; + win::random_access_handle::native_handle_type native_handle5 + = handle1.release(ec); + (void)native_handle5; + + win::random_access_handle::native_handle_type native_handle6 + = handle1.native_handle(); + (void)native_handle6; handle1.cancel(); handle1.cancel(ec); @@ -151,5 +158,5 @@ void test() ASIO_TEST_SUITE ( "windows/random_access_handle", - ASIO_TEST_CASE(windows_random_access_handle_compile::test) + ASIO_COMPILE_TEST_CASE(windows_random_access_handle_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/windows/stream_handle.cpp b/3rdparty/asio/src/tests/unit/windows/stream_handle.cpp index 6bb2d668ad8..1668dcea69a 100644 --- a/3rdparty/asio/src/tests/unit/windows/stream_handle.cpp +++ b/3rdparty/asio/src/tests/unit/windows/stream_handle.cpp @@ -2,7 +2,7 @@ // stream_handle.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -67,16 +67,16 @@ void test() HANDLE native_handle2 = INVALID_HANDLE_VALUE; win::stream_handle handle4(ioc_ex, native_handle2); -#if defined(ASIO_HAS_MOVE) win::stream_handle handle5(std::move(handle4)); -#endif // defined(ASIO_HAS_MOVE) + + win::basic_stream_handle<io_context::executor_type> handle6(ioc); + win::stream_handle handle7(std::move(handle6)); // basic_stream_handle operators. -#if defined(ASIO_HAS_MOVE) handle1 = win::stream_handle(ioc); handle1 = std::move(handle4); -#endif // defined(ASIO_HAS_MOVE) + handle1 = std::move(handle6); // basic_io_object functions. @@ -89,9 +89,9 @@ void test() = handle1.lowest_layer(); (void)lowest_layer; - const win::stream_handle& handle6 = handle1; + const win::stream_handle& handle8 = handle1; const win::stream_handle::lowest_layer_type& lowest_layer2 - = handle6.lowest_layer(); + = handle8.lowest_layer(); (void)lowest_layer2; HANDLE native_handle3 = INVALID_HANDLE_VALUE; @@ -104,8 +104,15 @@ void test() handle1.close(ec); win::stream_handle::native_handle_type native_handle4 - = handle1.native_handle(); + = handle1.release(); (void)native_handle4; + win::stream_handle::native_handle_type native_handle5 + = handle1.release(ec); + (void)native_handle5; + + win::stream_handle::native_handle_type native_handle6 + = handle1.native_handle(); + (void)native_handle6; handle1.cancel(); handle1.cancel(ec); @@ -144,5 +151,5 @@ void test() ASIO_TEST_SUITE ( "windows/stream_handle", - ASIO_TEST_CASE(windows_stream_handle_compile::test) + ASIO_COMPILE_TEST_CASE(windows_stream_handle_compile::test) ) diff --git a/3rdparty/asio/src/tests/unit/writable_pipe.cpp b/3rdparty/asio/src/tests/unit/writable_pipe.cpp new file mode 100644 index 00000000000..0cea7547aa2 --- /dev/null +++ b/3rdparty/asio/src/tests/unit/writable_pipe.cpp @@ -0,0 +1,136 @@ +// +// writable_pipe.cpp +// ~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 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) +// + +// Disable autolinking for unit tests. +#if !defined(BOOST_ALL_NO_LIB) +#define BOOST_ALL_NO_LIB 1 +#endif // !defined(BOOST_ALL_NO_LIB) + +// Test that header pipe is self-contained. +#include "asio/writable_pipe.hpp" + +#include "archetypes/async_result.hpp" +#include "asio/io_context.hpp" +#include "unit_test.hpp" + +// writable_pipe_compile test +// ~~~~~~~~~~~~~~~~~~~~~~~~~~ +// The following test checks that all public member functions on the class +// writable_pipe compile and link correctly. Runtime failures are ignored. + +namespace writable_pipe_compile { + +struct write_some_handler +{ + write_some_handler() {} + void operator()(const asio::error_code&, std::size_t) {} + write_some_handler(write_some_handler&&) {} +private: + write_some_handler(const write_some_handler&); +}; + +struct read_some_handler +{ + read_some_handler() {} + void operator()(const asio::error_code&, std::size_t) {} + read_some_handler(read_some_handler&&) {} +private: + read_some_handler(const read_some_handler&); +}; + +void test() +{ +#if defined(ASIO_HAS_PIPE) + using namespace asio; + + try + { + io_context ioc; + const io_context::executor_type ioc_ex = ioc.get_executor(); + char mutable_char_buffer[128] = ""; + const char const_char_buffer[128] = ""; + archetypes::lazy_handler lazy; + asio::error_code ec; + + // basic_writable_pipe constructors. + + writable_pipe pipe1(ioc); + writable_pipe::native_handle_type native_pipe1 = pipe1.native_handle(); + writable_pipe pipe2(ioc, native_pipe1); + + writable_pipe pipe3(ioc_ex); + writable_pipe::native_handle_type native_pipe2 = pipe1.native_handle(); + writable_pipe pipe4(ioc_ex, native_pipe2); + + writable_pipe pipe5(std::move(pipe4)); + + basic_writable_pipe<io_context::executor_type> pipe6(ioc); + writable_pipe pipe7(std::move(pipe6)); + + // basic_writable_pipe operators. + + pipe1 = writable_pipe(ioc); + pipe1 = std::move(pipe2); + pipe1 = std::move(pipe6); + + // basic_io_object functions. + + writable_pipe::executor_type ex = pipe1.get_executor(); + (void)ex; + + // basic_writable_pipe functions. + + writable_pipe::native_handle_type native_pipe3 = pipe1.native_handle(); + pipe1.assign(native_pipe3); + writable_pipe::native_handle_type native_pipe4 = pipe1.native_handle(); + pipe1.assign(native_pipe4, ec); + + bool is_open = pipe1.is_open(); + (void)is_open; + + pipe1.close(); + pipe1.close(ec); + + writable_pipe::native_handle_type native_pipe5 = pipe1.release(); + (void)native_pipe5; + writable_pipe::native_handle_type native_pipe6 = pipe1.release(ec); + (void)native_pipe6; + + writable_pipe::native_handle_type native_pipe7 = pipe1.native_handle(); + (void)native_pipe7; + + pipe1.cancel(); + pipe1.cancel(ec); + + pipe1.write_some(buffer(mutable_char_buffer)); + pipe1.write_some(buffer(const_char_buffer)); + pipe1.write_some(buffer(mutable_char_buffer), ec); + pipe1.write_some(buffer(const_char_buffer), ec); + + pipe1.async_write_some(buffer(mutable_char_buffer), write_some_handler()); + pipe1.async_write_some(buffer(const_char_buffer), write_some_handler()); + int i1 = pipe1.async_write_some(buffer(mutable_char_buffer), lazy); + (void)i1; + int i2 = pipe1.async_write_some(buffer(const_char_buffer), lazy); + (void)i2; + } + catch (std::exception&) + { + } +#endif // defined(ASIO_HAS_PIPE) +} + +} // namespace writable_pipe_compile + +ASIO_TEST_SUITE +( + "writable_pipe", + ASIO_COMPILE_TEST_CASE(writable_pipe_compile::test) +) diff --git a/3rdparty/asio/src/tests/unit/write.cpp b/3rdparty/asio/src/tests/unit/write.cpp index 0343c02c71e..470972217c1 100644 --- a/3rdparty/asio/src/tests/unit/write.cpp +++ b/3rdparty/asio/src/tests/unit/write.cpp @@ -2,7 +2,7 @@ // write.cpp // ~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,7 +16,9 @@ // Test that header file is self-contained. #include "asio/write.hpp" +#include <array> #include <cstring> +#include <functional> #include <vector> #include "archetypes/async_result.hpp" #include "asio/io_context.hpp" @@ -24,20 +26,10 @@ #include "asio/streambuf.hpp" #include "unit_test.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - #if defined(ASIO_HAS_BOOST_ARRAY) #include <boost/array.hpp> #endif // defined(ASIO_HAS_BOOST_ARRAY) -#if defined(ASIO_HAS_STD_ARRAY) -# include <array> -#endif // defined(ASIO_HAS_STD_ARRAY) - using namespace std; // For memcmp, memcpy and memset. class test_stream @@ -54,7 +46,7 @@ public: memset(data_, 0, max_length); } - executor_type get_executor() ASIO_NOEXCEPT + executor_type get_executor() noexcept { return io_context_.get_executor(); } @@ -121,12 +113,12 @@ public: template <typename Const_Buffers, typename Handler> void async_write_some(const Const_Buffers& buffers, - ASIO_MOVE_ARG(Handler) handler) + Handler&& handler) { size_t bytes_transferred = write_some(buffers); asio::post(get_executor(), asio::detail::bind_handler( - ASIO_MOVE_CAST(Handler)(handler), + static_cast<Handler&&>(handler), asio::error_code(), bytes_transferred)); } @@ -409,11 +401,7 @@ bool old_style_transfer_all(const asio::error_code& ec, struct short_transfer { short_transfer() {} -#if defined(ASIO_HAS_MOVE) short_transfer(short_transfer&&) {} -#else // defined(ASIO_HAS_MOVE) - short_transfer(const short_transfer&) {} -#endif // defined(ASIO_HAS_MOVE) size_t operator()(const asio::error_code& ec, size_t /*bytes_transferred*/) { @@ -2173,11 +2161,7 @@ void async_write_handler(const asio::error_code& e, void test_3_arg_const_buffer_async_write() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -2228,11 +2212,7 @@ void test_3_arg_const_buffer_async_write() void test_3_arg_mutable_buffer_async_write() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -2283,11 +2263,7 @@ void test_3_arg_mutable_buffer_async_write() void test_3_arg_boost_array_buffers_async_write() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -2341,15 +2317,10 @@ void test_3_arg_boost_array_buffers_async_write() void test_3_arg_std_array_buffers_async_write() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; -#if defined(ASIO_HAS_STD_ARRAY) asio::io_context ioc; test_stream s(ioc); std::array<asio::const_buffer, 2> buffers = { { @@ -2394,16 +2365,11 @@ void test_3_arg_std_array_buffers_async_write() ioc.restart(); ioc.run(); ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data))); -#endif // defined(ASIO_HAS_STD_ARRAY) } void test_3_arg_vector_buffers_async_write() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -2456,11 +2422,7 @@ void test_3_arg_vector_buffers_async_write() void test_3_arg_dynamic_string_async_write() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -2520,11 +2482,7 @@ void test_3_arg_dynamic_string_async_write() void test_3_arg_streambuf_async_write() { #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1) -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -2585,11 +2543,7 @@ void test_3_arg_streambuf_async_write() void test_4_arg_const_buffer_async_write() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -2897,11 +2851,7 @@ void test_4_arg_const_buffer_async_write() void test_4_arg_mutable_buffer_async_write() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3209,11 +3159,7 @@ void test_4_arg_mutable_buffer_async_write() void test_4_arg_boost_array_buffers_async_write() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3524,15 +3470,10 @@ void test_4_arg_boost_array_buffers_async_write() void test_4_arg_std_array_buffers_async_write() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; -#if defined(ASIO_HAS_STD_ARRAY) asio::io_context ioc; test_stream s(ioc); std::array<asio::const_buffer, 2> buffers = { { @@ -3834,16 +3775,11 @@ void test_4_arg_std_array_buffers_async_write() ioc.restart(); ioc.run(); ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data))); -#endif // defined(ASIO_HAS_STD_ARRAY) } void test_4_arg_vector_buffers_async_write() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -4153,11 +4089,7 @@ void test_4_arg_vector_buffers_async_write() void test_4_arg_dynamic_string_async_write() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -4498,11 +4430,7 @@ void test_4_arg_dynamic_string_async_write() void test_4_arg_streambuf_async_write() { #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1) -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; diff --git a/3rdparty/asio/src/tests/unit/write_at.cpp b/3rdparty/asio/src/tests/unit/write_at.cpp index c3760b0bf46..adc684d0e4f 100644 --- a/3rdparty/asio/src/tests/unit/write_at.cpp +++ b/3rdparty/asio/src/tests/unit/write_at.cpp @@ -2,7 +2,7 @@ // write_at.cpp // ~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 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) @@ -16,27 +16,19 @@ // Test that header file is self-contained. #include "asio/write_at.hpp" +#include <array> #include <cstring> +#include <functional> #include "archetypes/async_result.hpp" #include "asio/io_context.hpp" #include "asio/post.hpp" #include "asio/streambuf.hpp" #include "unit_test.hpp" -#if defined(ASIO_HAS_BOOST_BIND) -# include <boost/bind/bind.hpp> -#else // defined(ASIO_HAS_BOOST_BIND) -# include <functional> -#endif // defined(ASIO_HAS_BOOST_BIND) - #if defined(ASIO_HAS_BOOST_ARRAY) #include <boost/array.hpp> #endif // defined(ASIO_HAS_BOOST_ARRAY) -#if defined(ASIO_HAS_STD_ARRAY) -# include <array> -#endif // defined(ASIO_HAS_STD_ARRAY) - using namespace std; // For memcmp, memcpy and memset. class test_random_access_device @@ -52,7 +44,7 @@ public: memset(data_, 0, max_length); } - executor_type get_executor() ASIO_NOEXCEPT + executor_type get_executor() noexcept { return io_context_.get_executor(); } @@ -118,12 +110,12 @@ public: template <typename Const_Buffers, typename Handler> void async_write_some_at(asio::uint64_t offset, - const Const_Buffers& buffers, ASIO_MOVE_ARG(Handler) handler) + const Const_Buffers& buffers, Handler&& handler) { size_t bytes_transferred = write_some_at(offset, buffers); asio::post(get_executor(), asio::detail::bind_handler( - ASIO_MOVE_CAST(Handler)(handler), + static_cast<Handler&&>(handler), asio::error_code(), bytes_transferred)); } @@ -424,11 +416,7 @@ bool old_style_transfer_all(const asio::error_code& ec, struct short_transfer { short_transfer() {} -#if defined(ASIO_HAS_MOVE) short_transfer(short_transfer&&) {} -#else // defined(ASIO_HAS_MOVE) - short_transfer(const short_transfer&) {} -#endif // defined(ASIO_HAS_MOVE) size_t operator()(const asio::error_code& ec, size_t /*bytes_transferred*/) { @@ -2947,11 +2935,7 @@ void async_write_handler(const asio::error_code& e, void test_4_arg_const_buffer_async_write_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3046,11 +3030,7 @@ void test_4_arg_const_buffer_async_write_at() void test_4_arg_mutable_buffer_async_write_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3145,11 +3125,7 @@ void test_4_arg_mutable_buffer_async_write_at() void test_4_arg_boost_array_buffers_async_write_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3247,15 +3223,10 @@ void test_4_arg_boost_array_buffers_async_write_at() void test_4_arg_std_array_buffers_async_write_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; -#if defined(ASIO_HAS_STD_ARRAY) asio::io_context ioc; test_random_access_device s(ioc); std::array<asio::const_buffer, 2> buffers = { { @@ -3344,16 +3315,11 @@ void test_4_arg_std_array_buffers_async_write_at() ioc.restart(); ioc.run(); ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data))); -#endif // defined(ASIO_HAS_STD_ARRAY) } void test_4_arg_vector_buffers_async_write_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3449,11 +3415,7 @@ void test_4_arg_vector_buffers_async_write_at() void test_4_arg_streambuf_async_write_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -3565,11 +3527,7 @@ void test_4_arg_streambuf_async_write_at() void test_5_arg_const_buffer_async_write_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -4207,11 +4165,7 @@ void test_5_arg_const_buffer_async_write_at() void test_5_arg_mutable_buffer_async_write_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -4849,11 +4803,7 @@ void test_5_arg_mutable_buffer_async_write_at() void test_5_arg_boost_array_buffers_async_write_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -5494,15 +5444,10 @@ void test_5_arg_boost_array_buffers_async_write_at() void test_5_arg_std_array_buffers_async_write_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; -#if defined(ASIO_HAS_STD_ARRAY) asio::io_context ioc; test_random_access_device s(ioc); std::array<asio::const_buffer, 2> buffers = { { @@ -6134,16 +6079,11 @@ void test_5_arg_std_array_buffers_async_write_at() ioc.restart(); ioc.run(); ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data))); -#endif // defined(ASIO_HAS_STD_ARRAY) } void test_5_arg_vector_buffers_async_write_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; @@ -6782,11 +6722,7 @@ void test_5_arg_vector_buffers_async_write_at() void test_5_arg_streambuf_async_write_at() { -#if defined(ASIO_HAS_BOOST_BIND) - namespace bindns = boost; -#else // defined(ASIO_HAS_BOOST_BIND) namespace bindns = std; -#endif // defined(ASIO_HAS_BOOST_BIND) using bindns::placeholders::_1; using bindns::placeholders::_2; |