Remove dependency on Boost.Test.
diff --git a/asio/src/Makefile.mgw b/asio/src/Makefile.mgw index 015da58..2d5a5e4 100644 --- a/asio/src/Makefile.mgw +++ b/asio/src/Makefile.mgw
@@ -11,8 +11,6 @@ tests/performance/client.exe \ tests/performance/server.exe -UNIT_TEST_OBJ = tests/unit/unit_test.o - UNIT_TEST_EXES = \ tests/unit/basic_datagram_socket.exe \ tests/unit/basic_deadline_timer.exe \ @@ -146,12 +144,11 @@ all: \ $(PERFORMANCE_TEST_EXES) \ - $(UNIT_TEST_OBJ) \ $(UNIT_TEST_EXES) \ $(EXAMPLE_EXES) \ $(OTHER_EXAMPLE_EXES) -check: $(UNIT_TEST_OBJ) $(UNIT_TEST_EXES) $(addprefix run.,$(UNIT_TEST_EXES)) +check: $(UNIT_TEST_EXES) $(addprefix run.,$(UNIT_TEST_EXES)) $(addprefix run.,$(UNIT_TEST_EXES)):: @echo === Running $(@:run.%=%) === @@ -170,7 +167,7 @@ -rm -f $(OTHER_EXAMPLE_EXES:.exe=.o) $(UNIT_TEST_EXES): %.exe: %.o - g++ -o$@ $(LDFLAGS) $< $(UNIT_TEST_OBJ) $(LIBS) + g++ -o$@ $(LDFLAGS) $< $(LIBS) $(PERFORMANCE_TEST_EXES) $(EXAMPLE_EXES): %.exe: %.o g++ -o$@ $(LDFLAGS) $< $(LIBS)
diff --git a/asio/src/Makefile.msc b/asio/src/Makefile.msc index 8f66356..061f711 100644 --- a/asio/src/Makefile.msc +++ b/asio/src/Makefile.msc
@@ -94,8 +94,6 @@ tests\performance\client.exe \ tests\performance\server.exe -UNIT_TEST_OBJ = tests\unit\unit_test.obj - UNIT_TEST_EXES = \ tests\unit\basic_datagram_socket.exe \ tests\unit\basic_deadline_timer.exe \ @@ -265,10 +263,6 @@ $(SSL_UNIT_TEST_EXES) \ $(SSL_EXAMPLE_EXES) -$(UNIT_TEST_EXES): $(UNIT_TEST_OBJ) - -$(SSL_UNIT_TEST_EXES): $(UNIT_TEST_OBJ) - check: $(UNIT_TEST_EXES) !@echo === Running $** === && $** && echo. @@ -282,19 +276,19 @@ cl -Fe$@ -Fotests\unit\unit_test.obj $(CXXFLAGS) $(DEFINES) -c tests\unit\unit_test.cpp {tests\unit}.cpp{tests\unit}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(UNIT_TEST_OBJ) $(LIBS) -link -opt:ref + cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref {tests\unit\generic}.cpp{tests\unit\generic}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(UNIT_TEST_OBJ) $(LIBS) -link -opt:ref + cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref {tests\unit\ip}.cpp{tests\unit\ip}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(UNIT_TEST_OBJ) $(LIBS) -link -opt:ref + cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref {tests\unit\ssl}.cpp{tests\unit\ssl}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(SSL_CXXFLAGS) $(DEFINES) $< $(UNIT_TEST_OBJ) $(SSL_LIBS) $(LIBS) -link -opt:ref + cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(SSL_CXXFLAGS) $(DEFINES) $< $(SSL_LIBS) $(LIBS) -link -opt:ref {tests\unit\windows}.cpp{tests\unit\windows}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(UNIT_TEST_OBJ) $(LIBS) -link -opt:ref + cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref {examples\cpp03\allocation}.cpp{examples\cpp03\allocation}.exe: cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref
diff --git a/asio/src/tests/Makefile.am b/asio/src/tests/Makefile.am index 083bc2c..1c3a7f5 100644 --- a/asio/src/tests/Makefile.am +++ b/asio/src/tests/Makefile.am
@@ -249,111 +249,111 @@ performance_server_SOURCES = performance/server.cpp endif -unit_basic_datagram_socket_SOURCES = unit/basic_datagram_socket.cpp unit/unit_test.cpp -unit_basic_deadline_timer_SOURCES = unit/basic_deadline_timer.cpp unit/unit_test.cpp -unit_basic_raw_socket_SOURCES = unit/basic_raw_socket.cpp unit/unit_test.cpp -unit_basic_seq_packet_socket_SOURCES = unit/basic_seq_packet_socket.cpp unit/unit_test.cpp -unit_basic_serial_port_SOURCES = unit/basic_serial_port.cpp unit/unit_test.cpp -unit_basic_signal_set_SOURCES = unit/basic_signal_set.cpp unit/unit_test.cpp -unit_basic_socket_acceptor_SOURCES = unit/basic_socket_acceptor.cpp unit/unit_test.cpp -unit_basic_stream_socket_SOURCES = unit/basic_stream_socket.cpp unit/unit_test.cpp -unit_basic_streambuf_SOURCES = unit/basic_streambuf.cpp unit/unit_test.cpp -unit_basic_waitable_timer_SOURCES = unit/basic_waitable_timer.cpp unit/unit_test.cpp -unit_buffer_SOURCES = unit/buffer.cpp unit/unit_test.cpp -unit_buffers_iterator_SOURCES = unit/buffers_iterator.cpp unit/unit_test.cpp -unit_buffered_read_stream_SOURCES = unit/buffered_read_stream.cpp unit/unit_test.cpp -unit_buffered_stream_SOURCES = unit/buffered_stream.cpp unit/unit_test.cpp -unit_buffered_write_stream_SOURCES = unit/buffered_write_stream.cpp unit/unit_test.cpp -unit_completion_condition_SOURCES = unit/completion_condition.cpp unit/unit_test.cpp -unit_connect_SOURCES = unit/connect.cpp unit/unit_test.cpp -unit_coroutine_SOURCES = unit/coroutine.cpp unit/unit_test.cpp -unit_datagram_socket_service_SOURCES = unit/datagram_socket_service.cpp unit/unit_test.cpp -unit_deadline_timer_service_SOURCES = unit/deadline_timer_service.cpp unit/unit_test.cpp -unit_deadline_timer_SOURCES = unit/deadline_timer.cpp unit/unit_test.cpp -unit_error_SOURCES = unit/error.cpp unit/unit_test.cpp -unit_generic_basic_endpoint_SOURCES = unit/generic/basic_endpoint.cpp unit/unit_test.cpp -unit_generic_datagram_protocol_SOURCES = unit/generic/datagram_protocol.cpp unit/unit_test.cpp -unit_generic_raw_protocol_SOURCES = unit/generic/raw_protocol.cpp unit/unit_test.cpp -unit_generic_seq_packet_protocol_SOURCES = unit/generic/seq_packet_protocol.cpp unit/unit_test.cpp -unit_generic_stream_protocol_SOURCES = unit/generic/stream_protocol.cpp unit/unit_test.cpp -unit_high_resolution_timer_SOURCES = unit/high_resolution_timer.cpp unit/unit_test.cpp -unit_io_service_SOURCES = unit/io_service.cpp unit/unit_test.cpp -unit_ip_address_SOURCES = unit/ip/address.cpp unit/unit_test.cpp -unit_ip_address_v4_SOURCES = unit/ip/address_v4.cpp unit/unit_test.cpp -unit_ip_address_v4_iterator_SOURCES = unit/ip/address_v4_iterator.cpp unit/unit_test.cpp -unit_ip_address_v4_range_SOURCES = unit/ip/address_v4_range.cpp unit/unit_test.cpp -unit_ip_address_v6_SOURCES = unit/ip/address_v6.cpp unit/unit_test.cpp -unit_ip_address_v6_iterator_SOURCES = unit/ip/address_v6_iterator.cpp unit/unit_test.cpp -unit_ip_address_v6_range_SOURCES = unit/ip/address_v6_range.cpp unit/unit_test.cpp -unit_ip_basic_endpoint_SOURCES = unit/ip/basic_endpoint.cpp unit/unit_test.cpp -unit_ip_basic_resolver_SOURCES = unit/ip/basic_resolver.cpp unit/unit_test.cpp -unit_ip_basic_resolver_entry_SOURCES = unit/ip/basic_resolver_entry.cpp unit/unit_test.cpp -unit_ip_basic_resolver_iterator_SOURCES = unit/ip/basic_resolver_iterator.cpp unit/unit_test.cpp -unit_ip_basic_resolver_query_SOURCES = unit/ip/basic_resolver_query.cpp unit/unit_test.cpp -unit_ip_host_name_SOURCES = unit/ip/host_name.cpp unit/unit_test.cpp -unit_ip_icmp_SOURCES = unit/ip/icmp.cpp unit/unit_test.cpp -unit_ip_multicast_SOURCES = unit/ip/multicast.cpp unit/unit_test.cpp -unit_ip_network_v4_SOURCES = unit/ip/network_v4.cpp unit/unit_test.cpp -unit_ip_network_v6_SOURCES = unit/ip/network_v6.cpp unit/unit_test.cpp -unit_ip_resolver_query_base_SOURCES = unit/ip/resolver_query_base.cpp unit/unit_test.cpp -unit_ip_resolver_service_SOURCES = unit/ip/resolver_service.cpp unit/unit_test.cpp -unit_ip_tcp_SOURCES = unit/ip/tcp.cpp unit/unit_test.cpp -unit_ip_udp_SOURCES = unit/ip/udp.cpp unit/unit_test.cpp -unit_ip_unicast_SOURCES = unit/ip/unicast.cpp unit/unit_test.cpp -unit_ip_v6_only_SOURCES = unit/ip/v6_only.cpp unit/unit_test.cpp -unit_is_read_buffered_SOURCES = unit/is_read_buffered.cpp unit/unit_test.cpp -unit_is_write_buffered_SOURCES = unit/is_write_buffered.cpp unit/unit_test.cpp -unit_local_basic_endpoint_SOURCES = unit/local/basic_endpoint.cpp unit/unit_test.cpp -unit_local_connect_pair_SOURCES = unit/local/connect_pair.cpp unit/unit_test.cpp -unit_local_datagram_protocol_SOURCES = unit/local/datagram_protocol.cpp unit/unit_test.cpp -unit_local_stream_protocol_SOURCES = unit/local/stream_protocol.cpp unit/unit_test.cpp -unit_placeholders_SOURCES = unit/placeholders.cpp unit/unit_test.cpp -unit_posix_basic_descriptor_SOURCES = unit/posix/basic_descriptor.cpp unit/unit_test.cpp -unit_posix_basic_stream_descriptor_SOURCES = unit/posix/basic_stream_descriptor.cpp unit/unit_test.cpp -unit_posix_descriptor_base_SOURCES = unit/posix/descriptor_base.cpp unit/unit_test.cpp -unit_posix_stream_descriptor_SOURCES = unit/posix/stream_descriptor.cpp unit/unit_test.cpp -unit_posix_stream_descriptor_service_SOURCES = unit/posix/stream_descriptor_service.cpp unit/unit_test.cpp -unit_raw_socket_service_SOURCES = unit/raw_socket_service.cpp unit/unit_test.cpp -unit_read_SOURCES = unit/read.cpp unit/unit_test.cpp -unit_read_at_SOURCES = unit/read_at.cpp unit/unit_test.cpp -unit_read_until_SOURCES = unit/read_until.cpp unit/unit_test.cpp -unit_seq_packet_socket_service_SOURCES = unit/seq_packet_socket_service.cpp unit/unit_test.cpp -unit_serial_port_SOURCES = unit/serial_port.cpp unit/unit_test.cpp -unit_serial_port_base_SOURCES = unit/serial_port_base.cpp unit/unit_test.cpp -unit_serial_port_service_SOURCES = unit/serial_port_service.cpp unit/unit_test.cpp -unit_signal_set_SOURCES = unit/signal_set.cpp unit/unit_test.cpp -unit_signal_set_service_SOURCES = unit/signal_set_service.cpp unit/unit_test.cpp -unit_socket_acceptor_service_SOURCES = unit/socket_acceptor_service.cpp unit/unit_test.cpp -unit_socket_base_SOURCES = unit/socket_base.cpp unit/unit_test.cpp -unit_steady_timer_SOURCES = unit/steady_timer.cpp unit/unit_test.cpp -unit_strand_SOURCES = unit/strand.cpp unit/unit_test.cpp -unit_stream_socket_service_SOURCES = unit/stream_socket_service.cpp unit/unit_test.cpp -unit_streambuf_SOURCES = unit/streambuf.cpp unit/unit_test.cpp -unit_system_timer_SOURCES = unit/system_timer.cpp unit/unit_test.cpp -unit_thread_SOURCES = unit/thread.cpp unit/unit_test.cpp -unit_time_traits_SOURCES = unit/time_traits.cpp unit/unit_test.cpp -unit_wait_traits_SOURCES = unit/wait_traits.cpp unit/unit_test.cpp -unit_waitable_timer_service_SOURCES = unit/waitable_timer_service.cpp unit/unit_test.cpp -unit_windows_basic_handle_SOURCES = unit/windows/basic_handle.cpp unit/unit_test.cpp -unit_windows_basic_object_handle_SOURCES = unit/windows/basic_object_handle.cpp unit/unit_test.cpp -unit_windows_basic_random_access_handle_SOURCES = unit/windows/basic_random_access_handle.cpp unit/unit_test.cpp -unit_windows_basic_stream_handle_SOURCES = unit/windows/basic_stream_handle.cpp unit/unit_test.cpp -unit_windows_object_handle_SOURCES = unit/windows/object_handle.cpp unit/unit_test.cpp -unit_windows_object_handle_service_SOURCES = unit/windows/object_handle_service.cpp unit/unit_test.cpp -unit_windows_overlapped_ptr_SOURCES = unit/windows/overlapped_ptr.cpp unit/unit_test.cpp -unit_windows_random_access_handle_SOURCES = unit/windows/random_access_handle.cpp unit/unit_test.cpp -unit_windows_random_access_handle_service_SOURCES = unit/windows/random_access_handle_service.cpp unit/unit_test.cpp -unit_windows_stream_handle_SOURCES = unit/windows/stream_handle.cpp unit/unit_test.cpp -unit_windows_stream_handle_service_SOURCES = unit/windows/stream_handle_service.cpp unit/unit_test.cpp -unit_write_SOURCES = unit/write.cpp unit/unit_test.cpp -unit_write_at_SOURCES = unit/write_at.cpp unit/unit_test.cpp +unit_basic_datagram_socket_SOURCES = unit/basic_datagram_socket.cpp +unit_basic_deadline_timer_SOURCES = unit/basic_deadline_timer.cpp +unit_basic_raw_socket_SOURCES = unit/basic_raw_socket.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_acceptor_SOURCES = unit/basic_socket_acceptor.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_buffer_SOURCES = unit/buffer.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 +unit_buffered_write_stream_SOURCES = unit/buffered_write_stream.cpp +unit_completion_condition_SOURCES = unit/completion_condition.cpp +unit_connect_SOURCES = unit/connect.cpp +unit_coroutine_SOURCES = unit/coroutine.cpp +unit_datagram_socket_service_SOURCES = unit/datagram_socket_service.cpp +unit_deadline_timer_service_SOURCES = unit/deadline_timer_service.cpp +unit_deadline_timer_SOURCES = unit/deadline_timer.cpp +unit_error_SOURCES = unit/error.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 +unit_generic_seq_packet_protocol_SOURCES = unit/generic/seq_packet_protocol.cpp +unit_generic_stream_protocol_SOURCES = unit/generic/stream_protocol.cpp +unit_high_resolution_timer_SOURCES = unit/high_resolution_timer.cpp +unit_io_service_SOURCES = unit/io_service.cpp +unit_ip_address_SOURCES = unit/ip/address.cpp +unit_ip_address_v4_SOURCES = unit/ip/address_v4.cpp +unit_ip_address_v4_iterator_SOURCES = unit/ip/address_v4_iterator.cpp +unit_ip_address_v4_range_SOURCES = unit/ip/address_v4_range.cpp +unit_ip_address_v6_SOURCES = unit/ip/address_v6.cpp +unit_ip_address_v6_iterator_SOURCES = unit/ip/address_v6_iterator.cpp +unit_ip_address_v6_range_SOURCES = unit/ip/address_v6_range.cpp +unit_ip_basic_endpoint_SOURCES = unit/ip/basic_endpoint.cpp +unit_ip_basic_resolver_SOURCES = unit/ip/basic_resolver.cpp +unit_ip_basic_resolver_entry_SOURCES = unit/ip/basic_resolver_entry.cpp +unit_ip_basic_resolver_iterator_SOURCES = unit/ip/basic_resolver_iterator.cpp +unit_ip_basic_resolver_query_SOURCES = unit/ip/basic_resolver_query.cpp +unit_ip_host_name_SOURCES = unit/ip/host_name.cpp +unit_ip_icmp_SOURCES = unit/ip/icmp.cpp +unit_ip_multicast_SOURCES = unit/ip/multicast.cpp +unit_ip_network_v4_SOURCES = unit/ip/network_v4.cpp +unit_ip_network_v6_SOURCES = unit/ip/network_v6.cpp +unit_ip_resolver_query_base_SOURCES = unit/ip/resolver_query_base.cpp +unit_ip_resolver_service_SOURCES = unit/ip/resolver_service.cpp +unit_ip_tcp_SOURCES = unit/ip/tcp.cpp +unit_ip_udp_SOURCES = unit/ip/udp.cpp +unit_ip_unicast_SOURCES = unit/ip/unicast.cpp +unit_ip_v6_only_SOURCES = unit/ip/v6_only.cpp +unit_is_read_buffered_SOURCES = unit/is_read_buffered.cpp +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_stream_protocol_SOURCES = unit/local/stream_protocol.cpp +unit_placeholders_SOURCES = unit/placeholders.cpp +unit_posix_basic_descriptor_SOURCES = unit/posix/basic_descriptor.cpp +unit_posix_basic_stream_descriptor_SOURCES = unit/posix/basic_stream_descriptor.cpp +unit_posix_descriptor_base_SOURCES = unit/posix/descriptor_base.cpp +unit_posix_stream_descriptor_SOURCES = unit/posix/stream_descriptor.cpp +unit_posix_stream_descriptor_service_SOURCES = unit/posix/stream_descriptor_service.cpp +unit_raw_socket_service_SOURCES = unit/raw_socket_service.cpp +unit_read_SOURCES = unit/read.cpp +unit_read_at_SOURCES = unit/read_at.cpp +unit_read_until_SOURCES = unit/read_until.cpp +unit_seq_packet_socket_service_SOURCES = unit/seq_packet_socket_service.cpp +unit_serial_port_SOURCES = unit/serial_port.cpp +unit_serial_port_base_SOURCES = unit/serial_port_base.cpp +unit_serial_port_service_SOURCES = unit/serial_port_service.cpp +unit_signal_set_SOURCES = unit/signal_set.cpp +unit_signal_set_service_SOURCES = unit/signal_set_service.cpp +unit_socket_acceptor_service_SOURCES = unit/socket_acceptor_service.cpp +unit_socket_base_SOURCES = unit/socket_base.cpp +unit_steady_timer_SOURCES = unit/steady_timer.cpp +unit_strand_SOURCES = unit/strand.cpp +unit_stream_socket_service_SOURCES = unit/stream_socket_service.cpp +unit_streambuf_SOURCES = unit/streambuf.cpp +unit_system_timer_SOURCES = unit/system_timer.cpp +unit_thread_SOURCES = unit/thread.cpp +unit_time_traits_SOURCES = unit/time_traits.cpp +unit_wait_traits_SOURCES = unit/wait_traits.cpp +unit_waitable_timer_service_SOURCES = unit/waitable_timer_service.cpp +unit_windows_basic_handle_SOURCES = unit/windows/basic_handle.cpp +unit_windows_basic_object_handle_SOURCES = unit/windows/basic_object_handle.cpp +unit_windows_basic_random_access_handle_SOURCES = unit/windows/basic_random_access_handle.cpp +unit_windows_basic_stream_handle_SOURCES = unit/windows/basic_stream_handle.cpp +unit_windows_object_handle_SOURCES = unit/windows/object_handle.cpp +unit_windows_object_handle_service_SOURCES = unit/windows/object_handle_service.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_random_access_handle_service_SOURCES = unit/windows/random_access_handle_service.cpp +unit_windows_stream_handle_SOURCES = unit/windows/stream_handle.cpp +unit_windows_stream_handle_service_SOURCES = unit/windows/stream_handle_service.cpp +unit_write_SOURCES = unit/write.cpp +unit_write_at_SOURCES = unit/write_at.cpp if HAVE_OPENSSL -unit_ssl_context_base_SOURCES = unit/ssl/context_base.cpp unit/unit_test.cpp -unit_ssl_context_SOURCES = unit/ssl/context.cpp unit/unit_test.cpp -unit_ssl_stream_base_SOURCES = unit/ssl/stream_base.cpp unit/unit_test.cpp -unit_ssl_rfc2818_verification_SOURCES = unit/ssl/rfc2818_verification.cpp unit/unit_test.cpp -unit_ssl_stream_SOURCES = unit/ssl/stream.cpp unit/unit_test.cpp +unit_ssl_context_base_SOURCES = unit/ssl/context_base.cpp +unit_ssl_context_SOURCES = unit/ssl/context.cpp +unit_ssl_stream_base_SOURCES = unit/ssl/stream_base.cpp +unit_ssl_rfc2818_verification_SOURCES = unit/ssl/rfc2818_verification.cpp +unit_ssl_stream_SOURCES = unit/ssl/stream.cpp endif EXTRA_DIST = \
diff --git a/asio/src/tests/unit/unit_test.cpp b/asio/src/tests/unit/unit_test.cpp deleted file mode 100644 index c6dedf9..0000000 --- a/asio/src/tests/unit/unit_test.cpp +++ /dev/null
@@ -1,19 +0,0 @@ -// -// unit_test.cpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#include "unit_test.hpp" - -#if !defined(ASIO_STANDALONE) -# if (BOOST_VERSION < 104800) -# include <boost/test/included/unit_test_framework.hpp> -# else -# include <boost/test/included/unit_test.hpp> -# endif -#endif
diff --git a/asio/src/tests/unit/unit_test.hpp b/asio/src/tests/unit/unit_test.hpp index 9925bc0..fb4bd1c 100644 --- a/asio/src/tests/unit/unit_test.hpp +++ b/asio/src/tests/unit/unit_test.hpp
@@ -12,6 +12,8 @@ #define UNIT_TEST_HPP #include "asio/detail/config.hpp" +#include <iostream> +#include "asio/detail/atomic_count.hpp" #if defined(__sun) # include <stdlib.h> // Needed for lrand48. @@ -29,106 +31,134 @@ #endif // defined(__BORLANDC__) #if defined(ASIO_MSVC) +# pragma warning (disable:4127) # pragma warning (push) # pragma warning (disable:4244) # pragma warning (disable:4702) #endif // defined(ASIO_MSVC) -#if defined(ASIO_STANDALONE) - -#include <cassert> -#include <iostream> - -#if defined(NDEBUG) -# error NDEBUG must not be defined when building these unit tests -#endif // defined(NDEBUG) - -#define ASIO_CHECK(expr) assert(expr) - -#define ASIO_CHECK_MESSAGE(expr, msg) \ - do { if (!(expr)) { std::cout << msg << std::endl; assert(expr); } } while (0) - -#define ASIO_WARN_MESSAGE(expr, msg) \ - do { if (!(expr)) { std::cout << msg << std::endl; } } while (0) - -#define ASIO_ERROR(msg) assert(0 && msg) - -#define ASIO_TEST_SUITE(name, tests) \ - int main() \ - { \ - std::cout << name << " test suite begins" << std::endl; \ - tests \ - std::cout << name << " test suite ends" << std::endl; \ - return 0; \ - } - -#define ASIO_TEST_CASE(test) \ - test(); \ - std::cout << #test << " passed" << std::endl; - -#define ASIO_COMPILE_TEST_CASE(test) \ - compile_test<&test>(); \ - std::cout << #test << " passed" << std::endl; - -#if defined(ASIO_NO_EXCEPTIONS) +#if !defined(ASIO_TEST_IOSTREAM) +# define ASIO_TEST_IOSTREAM std::cerr +#endif // !defined(ASIO_TEST_IOSTREAM) namespace asio { namespace detail { +inline const char*& test_name() +{ + static const char* name = 0; + return name; +} + +inline atomic_count& test_errors() +{ + static atomic_count errors; + return errors; +} + +inline void begin_test_suite(const char* name) +{ + asio::detail::test_name(); + asio::detail::test_errors(); + ASIO_TEST_IOSTREAM << name << " test suite begins" << std::endl; +} + +inline int end_test_suite(const char* name) +{ + ASIO_TEST_IOSTREAM << name << " test suite ends" << std::endl; + ASIO_TEST_IOSTREAM << "\n*** "; + long errors = asio::detail::test_errors(); + if (errors == 0) + ASIO_TEST_IOSTREAM << "No errors detected."; + else if (errors == 1) + ASIO_TEST_IOSTREAM << "1 error detected."; + else + ASIO_TEST_IOSTREAM << errors << " errors detected." << std::endl; + ASIO_TEST_IOSTREAM << std::endl; + return errors == 0 ? 0 : 1; +} + +template <void (*Test)()> +inline void run_test(const char* name) +{ + test_name() = name; + long errors_before = asio::detail::test_errors(); + Test(); + if (test_errors() == errors_before) + ASIO_TEST_IOSTREAM << name << " passed" << std::endl; + else + ASIO_TEST_IOSTREAM << name << " failed" << std::endl; +} + +template <void (*)()> +inline void compile_test(const char* name) +{ + ASIO_TEST_IOSTREAM << name << " passed" << std::endl; +} + +#if defined(ASIO_NO_EXCEPTIONS) + template <typename T> void throw_exception(const T& t) { - std::cout << "Exception: " << t.what() << std::endl; + ASIO_TEST_IOSTREAM << "Exception: " << t.what() << std::endl; std::abort(); } +#endif // defined(ASIO_NO_EXCEPTIONS) + } // namespace detail } // namespace asio -#endif // defined(ASIO_NO_EXCEPTIONS) +#define ASIO_CHECK(expr) \ + do { if (!(expr)) { \ + ASIO_TEST_IOSTREAM << __FILE__ << "(" << __LINE__ << "): " \ + << asio::detail::test_name() << ": " \ + << "check '" << #expr << "' failed" << std::endl; \ + ++asio::detail::test_errors(); \ + } } while (0) -#else // defined(ASIO_STANDALONE) +#define ASIO_CHECK_MESSAGE(expr, msg) \ + do { if (!(expr)) { \ + ASIO_TEST_IOSTREAM << __FILE__ << "(" << __LINE__ << "): " \ + << asio::detail::test_name() << ": " \ + << msg << std::endl; \ + ++asio::detail::test_errors(); \ + } } while (0) -#include <boost/test/unit_test.hpp> -using boost::unit_test::test_suite; +#define ASIO_WARN_MESSAGE(expr, msg) \ + do { if (!(expr)) { \ + ASIO_TEST_IOSTREAM << __FILE__ << "(" << __LINE__ << "): " \ + << asio::detail::test_name() << ": " \ + << msg << std::endl; \ + } } while (0) -#define ASIO_CHECK(expr) BOOST_CHECK(expr) - -#define ASIO_CHECK_MESSAGE(expr, msg) BOOST_CHECK_MESSAGE(expr, msg) - -#define ASIO_WARN_MESSAGE(expr, msg) BOOST_WARN_MESSAGE(expr, msg) - -#define ASIO_ERROR(expr) BOOST_ERROR(expr) +#define ASIO_ERROR(msg) \ + do { \ + ASIO_TEST_IOSTREAM << __FILE__ << "(" << __LINE__ << "): " \ + << asio::detail::test_name() << ": " \ + << msg << std::endl; \ + ++asio::detail::test_errors(); \ + } while (0) #define ASIO_TEST_SUITE(name, tests) \ - test_suite* init_unit_test_suite(int, char*[]) \ + int main() \ { \ - test_suite* t = BOOST_TEST_SUITE(name); \ + asio::detail::begin_test_suite(name); \ tests \ - return t; \ + return asio::detail::end_test_suite(name); \ } #define ASIO_TEST_CASE(test) \ - t->add(BOOST_TEST_CASE(&test)); + asio::detail::run_test<&test>(#test); #define ASIO_COMPILE_TEST_CASE(test) \ - t->add(BOOST_TEST_CASE(&compile_test<&test>)); - -#endif // defined(ASIO_STANDALONE) - -#if defined(ASIO_MSVC) -# pragma warning (pop) -#endif // defined(ASIO_MSVC) + asio::detail::compile_test<&test>(#test); inline void null_test() { } -template <void (*)()> -inline void compile_test() -{ -} - #if defined(__GNUC__) && defined(_AIX) // AIX needs this symbol defined in asio, even if it doesn't do anything. @@ -138,4 +168,8 @@ #endif // defined(__GNUC__) && defined(_AIX) +#if defined(ASIO_MSVC) +# pragma warning (pop) +#endif // defined(ASIO_MSVC) + #endif // UNIT_TEST_HPP