Update latency tests for Windows.
diff --git a/asio/src/Makefile.msc b/asio/src/Makefile.msc index 4852be2..6a6aed5 100644 --- a/asio/src/Makefile.msc +++ b/asio/src/Makefile.msc
@@ -66,6 +66,12 @@ $(SSLDIR)/out32/ssleay32.lib \ user32.lib advapi32.lib gdi32.lib +LATENCY_TEST_EXES = \ + tests\latency\tcp_client.exe \ + tests\latency\tcp_server.exe \ + tests\latency\udp_client.exe \ + tests\latency\udp_server.exe + PERFORMANCE_TEST_EXES = \ tests\performance\client.exe \ tests\performance\server.exe @@ -198,6 +204,7 @@ !endif all: \ + $(LATENCY_TEST_EXES) \ $(PERFORMANCE_TEST_EXES) \ $(UNIT_TEST_EXES) \ $(EXAMPLE_EXES) @@ -209,6 +216,9 @@ check: $(UNIT_TEST_EXES) !@echo === Running $** === && $** && echo. +{tests\latency}.cpp{tests\latency}.exe: + cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref + {tests\performance}.cpp{tests\performance}.exe: cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref
diff --git a/asio/src/tests/latency/high_res_clock.hpp b/asio/src/tests/latency/high_res_clock.hpp index 7cd209e..4bd7cc4 100644 --- a/asio/src/tests/latency/high_res_clock.hpp +++ b/asio/src/tests/latency/high_res_clock.hpp
@@ -11,9 +11,19 @@ #ifndef HIGH_RES_CLOCK_HPP #define HIGH_RES_CLOCK_HPP +#include <boost/config.hpp> #include <boost/cstdint.hpp> -#if defined(__GNUC__) && defined(__x86_64__) +#if defined(BOOST_WINDOWS) + +inline boost::uint64_t high_res_clock() +{ + LARGE_INTEGER i; + QueryPerformanceCounter(&i); + return i.QuadPart; +} + +#elif defined(__GNUC__) && defined(__x86_64__) inline boost::uint64_t high_res_clock() {
diff --git a/asio/src/tests/latency/tcp_client.cpp b/asio/src/tests/latency/tcp_client.cpp index 80ddad8..03fabac 100644 --- a/asio/src/tests/latency/tcp_client.cpp +++ b/asio/src/tests/latency/tcp_client.cpp
@@ -44,7 +44,7 @@ std::vector<boost::shared_ptr<tcp::socket> > sockets; const char* ip = argv[1]; - int port = std::atoi(argv[2]); + unsigned short port = static_cast<unsigned short>(std::atoi(argv[2])); tcp::endpoint target(asio::ip::address::from_string(ip), port); int num_connections = std::atoi(argv[3]); @@ -64,7 +64,7 @@ ptime start = microsec_clock::universal_time(); boost::uint64_t start_hr = high_res_clock(); - int samples[num_samples]; + boost::uint64_t samples[num_samples]; for (int i = 0; i < num_samples; ++i) { tcp::socket& socket = *sockets[i % num_connections];
diff --git a/asio/src/tests/latency/tcp_server.cpp b/asio/src/tests/latency/tcp_server.cpp index 2965354..c97a2f3 100644 --- a/asio/src/tests/latency/tcp_server.cpp +++ b/asio/src/tests/latency/tcp_server.cpp
@@ -80,7 +80,7 @@ } asio::io_service io_service; - int port = std::atoi(argv[1]); + unsigned short port = static_cast<unsigned short>(std::atoi(argv[1])); tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), port)); std::vector<boost::shared_ptr<tcp_server> > servers;
diff --git a/asio/src/tests/latency/udp_client.cpp b/asio/src/tests/latency/udp_client.cpp index 64e1713..6526b12 100644 --- a/asio/src/tests/latency/udp_client.cpp +++ b/asio/src/tests/latency/udp_client.cpp
@@ -35,8 +35,9 @@ udp::socket::non_blocking_io nbio(true); socket.io_control(nbio); - unsigned short first_port = std::atoi(argv[2]); - unsigned short last_port = first_port + std::atoi(argv[3]) - 1; + unsigned short first_port = static_cast<unsigned short>(std::atoi(argv[2])); + unsigned short num_ports = static_cast<unsigned short>(std::atoi(argv[3])); + unsigned short last_port = first_port + num_ports - 1; udp::endpoint target(asio::ip::address::from_string(argv[1]), first_port); std::vector<unsigned char> write_buf(std::atoi(argv[4])); @@ -45,7 +46,7 @@ ptime start = microsec_clock::universal_time(); boost::uint64_t start_hr = high_res_clock(); - int samples[num_samples]; + boost::uint64_t samples[num_samples]; for (int i = 0; i < num_samples; ++i) { boost::uint64_t t = high_res_clock();
diff --git a/asio/src/tests/latency/udp_server.cpp b/asio/src/tests/latency/udp_server.cpp index 6f1f779..8d234c0 100644 --- a/asio/src/tests/latency/udp_server.cpp +++ b/asio/src/tests/latency/udp_server.cpp
@@ -71,11 +71,12 @@ asio::io_service io_service; std::vector<boost::shared_ptr<udp_server> > servers; - int first_port = std::atoi(argv[1]); - int last_port = first_port + std::atoi(argv[2]) - 1; + unsigned short first_port = static_cast<unsigned short>(std::atoi(argv[1])); + unsigned short num_ports = static_cast<unsigned short>(std::atoi(argv[3])); std::size_t bufsize = std::atoi(argv[3]); - for (int port = first_port; port <= last_port; ++port) + for (unsigned short i = 0; i < num_ports; ++i) { + unsigned short port = first_port + i; boost::shared_ptr<udp_server> s(new udp_server(io_service, port, bufsize)); servers.push_back(s); (*s)(asio::error_code());