diff --git a/test/benchmark-list.h b/test/benchmark-list.h index 4e6dc33c..1ab8f258 100644 --- a/test/benchmark-list.h +++ b/test/benchmark-list.h @@ -23,7 +23,9 @@ BENCHMARK_DECLARE (sizes) BENCHMARK_DECLARE (loop_count) BENCHMARK_DECLARE (loop_count_timed) BENCHMARK_DECLARE (ping_pongs) -BENCHMARK_DECLARE (ping_udp) +BENCHMARK_DECLARE (ping_udp1) +BENCHMARK_DECLARE (ping_udp10) +BENCHMARK_DECLARE (ping_udp100) BENCHMARK_DECLARE (tcp_write_batch) BENCHMARK_DECLARE (tcp4_pound_100) BENCHMARK_DECLARE (tcp4_pound_1000) @@ -91,6 +93,10 @@ TASK_LIST_START BENCHMARK_ENTRY (ping_pongs) BENCHMARK_HELPER (ping_pongs, tcp4_echo_server) + BENCHMARK_ENTRY (ping_udp1) + BENCHMARK_ENTRY (ping_udp10) + BENCHMARK_ENTRY (ping_udp100) + BENCHMARK_ENTRY (tcp_write_batch) BENCHMARK_HELPER (tcp_write_batch, tcp4_blackhole_server) diff --git a/test/benchmark-ping-udp.c b/test/benchmark-ping-udp.c index a29502a7..cf9ca981 100644 --- a/test/benchmark-ping-udp.c +++ b/test/benchmark-ping-udp.c @@ -94,6 +94,9 @@ static void pinger_read_cb(uv_udp_t* udp, pinger_t* pinger; pinger = (pinger_t*)udp->data; + /* No data here means something went wrong */ + ASSERT(nread > 0); + /* Now we count the pings */ for (i = 0; i < nread; i++) { ASSERT(buf->base[i] == PING[pinger->state]); @@ -108,7 +111,8 @@ static void pinger_read_cb(uv_udp_t* udp, } } - buf_free(buf); + if (buf && !(flags & UV_UDP_MMSG_CHUNK)) + buf_free(buf); } static void udp_pinger_new(void) { @@ -122,6 +126,8 @@ static void udp_pinger_new(void) { /* Try to do NUM_PINGS ping-pongs (connection-less). */ r = uv_udp_init(loop, &pinger->udp); ASSERT(r == 0); + r = uv_udp_bind(&pinger->udp, (const struct sockaddr*) &pinger->server_addr, 0); + ASSERT(r == 0); pinger->udp.data = pinger;