mirror of https://github.com/ARMmbed/mbed-os.git
Fix UDP socket test cases
Fix UDP socket test cases to check more strictly on failure, and lower trace levels to not print errors on successful cases.pull/12267/head
parent
b710066671
commit
031d90a3ce
|
@ -69,12 +69,12 @@ static void _ifup()
|
||||||
|
|
||||||
#define MESH 3
|
#define MESH 3
|
||||||
#if MBED_CONF_TARGET_NETWORK_DEFAULT_INTERFACE_TYPE == MESH
|
#if MBED_CONF_TARGET_NETWORK_DEFAULT_INTERFACE_TYPE == MESH
|
||||||
printf("Waiting for GLOBAL_UP\n");
|
tr_info("Waiting for GLOBAL_UP\n");
|
||||||
while (net->get_connection_status() != NSAPI_STATUS_GLOBAL_UP) {
|
while (net->get_connection_status() != NSAPI_STATUS_GLOBAL_UP) {
|
||||||
ThisThread::sleep_for(500);
|
ThisThread::sleep_for(500);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
printf("MBED: UDPClient IP address is '%s'\n", address ? address.get_ip_address() : "null");
|
tr_info("MBED: UDPClient IP address is '%s'\n", address ? address.get_ip_address() : "null");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _ifdown()
|
static void _ifdown()
|
||||||
|
|
|
@ -99,7 +99,7 @@ void UDPSOCKET_ECHOTEST_impl(bool use_sendto)
|
||||||
} else if (sent == pkt_s) {
|
} else if (sent == pkt_s) {
|
||||||
packets_sent++;
|
packets_sent++;
|
||||||
} else {
|
} else {
|
||||||
tr_error("[Round#%02d - Sender] error, returned %d", s_idx, sent);
|
tr_warn("[Round#%02d - Sender] error, returned %d", s_idx, sent);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@ void UDPSOCKET_ECHOTEST_impl(bool use_sendto)
|
||||||
//Check if received duplicated packet
|
//Check if received duplicated packet
|
||||||
for (unsigned int d_idx = 0; d_idx < PKTS; ++d_idx) {
|
for (unsigned int d_idx = 0; d_idx < PKTS; ++d_idx) {
|
||||||
if (pkt_received[d_idx] && d_idx != s_idx && recvd == pkt_sizes[d_idx]) {
|
if (pkt_received[d_idx] && d_idx != s_idx && recvd == pkt_sizes[d_idx]) {
|
||||||
printf("[Round#%02d - Receiver] info, received duplicate packet %d\n", s_idx, d_idx);
|
tr_warn("[Round#%02d - Receiver] info, received duplicate packet %d\n", s_idx, d_idx);
|
||||||
received_duplicate_packet = true;
|
received_duplicate_packet = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -123,7 +123,7 @@ void UDPSOCKET_ECHOTEST_impl(bool use_sendto)
|
||||||
if (recvd == pkt_s) {
|
if (recvd == pkt_s) {
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
tr_error("[Round#%02d - Receiver] error, returned %d", s_idx, recvd);
|
tr_warn("[Round#%02d - Receiver] error, returned %d", s_idx, recvd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,7 +206,7 @@ void UDPSOCKET_ECHOTEST_NONBLOCK_impl(bool use_sendto)
|
||||||
}
|
}
|
||||||
--retry_cnt;
|
--retry_cnt;
|
||||||
} else {
|
} else {
|
||||||
tr_error("[Round#%02d - Sender] error, returned %d", s_idx, sent);
|
tr_warn("[Round#%02d - Sender] error, returned %d", s_idx, sent);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,7 +227,7 @@ void UDPSOCKET_ECHOTEST_NONBLOCK_impl(bool use_sendto)
|
||||||
--retry_recv;
|
--retry_recv;
|
||||||
continue;
|
continue;
|
||||||
} else if (recvd < 0) {
|
} else if (recvd < 0) {
|
||||||
tr_error("sock.recvfrom returned %d", recvd);
|
tr_warn("sock.recvfrom returned %d", recvd);
|
||||||
TEST_FAIL();
|
TEST_FAIL();
|
||||||
break;
|
break;
|
||||||
} else if (recvd == pkt_s) {
|
} else if (recvd == pkt_s) {
|
||||||
|
|
|
@ -116,7 +116,7 @@ void UDPSOCKET_ECHOTEST_BURST()
|
||||||
}
|
}
|
||||||
} else if (recvd < 0) {
|
} else if (recvd < 0) {
|
||||||
pkg_fail += BURST_PKTS - j; // Assume all the following packets of the burst to be lost
|
pkg_fail += BURST_PKTS - j; // Assume all the following packets of the burst to be lost
|
||||||
tr_error("[%02d] network error %d", i, recvd);
|
tr_warn("[%02d] network error %d", i, recvd);
|
||||||
ThisThread::sleep_for(recv_timeout * 1000);
|
ThisThread::sleep_for(recv_timeout * 1000);
|
||||||
recv_timeout *= 2; // Back off,
|
recv_timeout *= 2; // Back off,
|
||||||
break;
|
break;
|
||||||
|
@ -141,7 +141,7 @@ void UDPSOCKET_ECHOTEST_BURST()
|
||||||
ok_bursts++;
|
ok_bursts++;
|
||||||
} else {
|
} else {
|
||||||
drop_bad_packets(sock, TIMEOUT);
|
drop_bad_packets(sock, TIMEOUT);
|
||||||
tr_error("[%02d] burst failure, rcv %d", i, bt_total);
|
tr_warn("[%02d] burst failure, rcv %d", i, bt_total);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,7 +217,7 @@ void UDPSOCKET_ECHOTEST_BURST_NONBLOCK()
|
||||||
goto PKT_OK;
|
goto PKT_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tr_error("[bt#%02d] corrupted packet...", i);
|
tr_warn("[bt#%02d] corrupted packet...", i);
|
||||||
pkg_fail++;
|
pkg_fail++;
|
||||||
break;
|
break;
|
||||||
PKT_OK:
|
PKT_OK:
|
||||||
|
|
|
@ -49,7 +49,7 @@ void UDPSOCKET_OPEN_LIMIT()
|
||||||
}
|
}
|
||||||
ret = sock->open(NetworkInterface::get_default_instance());
|
ret = sock->open(NetworkInterface::get_default_instance());
|
||||||
if (ret == NSAPI_ERROR_NO_MEMORY || ret == NSAPI_ERROR_NO_SOCKET) {
|
if (ret == NSAPI_ERROR_NO_MEMORY || ret == NSAPI_ERROR_NO_SOCKET) {
|
||||||
tr_error("[round#%02d] unable to open new socket, error: %d", i, ret);
|
tr_info("[round#%02d] unable to open new socket, error: %d", i, ret);
|
||||||
delete sock;
|
delete sock;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,10 +70,10 @@ void UDPSOCKET_RECV_TIMEOUT()
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
} else if (recvd < 0) {
|
} else if (recvd < 0) {
|
||||||
tr_error("[bt#%02d] network error %d", i, recvd);
|
tr_warn("[bt#%02d] network error %d", i, recvd);
|
||||||
continue;
|
continue;
|
||||||
} else if (temp_addr != udp_addr) {
|
} else if (temp_addr != udp_addr) {
|
||||||
tr_info("[bt#%02d] packet from wrong address", i);
|
tr_warn("[bt#%02d] packet from wrong address", i);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
TEST_ASSERT_EQUAL(DATA_LEN, recvd);
|
TEST_ASSERT_EQUAL(DATA_LEN, recvd);
|
||||||
|
|
|
@ -84,7 +84,7 @@ void MULTIHOMING_UDPSOCKET_ECHOTEST()
|
||||||
packets_sent++;
|
packets_sent++;
|
||||||
}
|
}
|
||||||
if (sent != pkt_s) {
|
if (sent != pkt_s) {
|
||||||
printf("[Round#%02d - Sender] error, returned %d\n", s_idx, sent);
|
tr_warn("[Round#%02d - Sender] error, returned %d\n", s_idx, sent);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
recvd = sock.recvfrom(NULL, rx_buffer, pkt_s);
|
recvd = sock.recvfrom(NULL, rx_buffer, pkt_s);
|
||||||
|
@ -99,8 +99,10 @@ void MULTIHOMING_UDPSOCKET_ECHOTEST()
|
||||||
// Packet loss up to 30% tolerated
|
// Packet loss up to 30% tolerated
|
||||||
if (packets_sent > 0) {
|
if (packets_sent > 0) {
|
||||||
double loss_ratio = 1 - ((double)packets_recv / (double)packets_sent);
|
double loss_ratio = 1 - ((double)packets_recv / (double)packets_sent);
|
||||||
printf("Interface %s, packets sent: %d, packets received %d, loss ratio %.2lf\r\n", interface_name[j], packets_sent, packets_recv, loss_ratio);
|
tr_warn("Interface %s, packets sent: %d, packets received %d, loss ratio %.2lf\r\n", interface_name[j], packets_sent, packets_recv, loss_ratio);
|
||||||
TEST_ASSERT_DOUBLE_WITHIN(TOLERATED_LOSS_RATIO, EXPECTED_LOSS_RATIO, loss_ratio);
|
TEST_ASSERT_DOUBLE_WITHIN(TOLERATED_LOSS_RATIO, EXPECTED_LOSS_RATIO, loss_ratio);
|
||||||
|
} else {
|
||||||
|
TEST_FAIL();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
||||||
|
@ -177,7 +179,7 @@ void MULTIHOMING_UDPSOCKET_ECHOTEST_NONBLOCK()
|
||||||
}
|
}
|
||||||
--retry_cnt;
|
--retry_cnt;
|
||||||
} else if (sent != pkt_s) {
|
} else if (sent != pkt_s) {
|
||||||
printf("[Round#%02d - Sender] error, returned %d\n", s_idx, sent);
|
tr_warn("[Round#%02d - Sender] error, returned %d\n", s_idx, sent);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!tx_sem.try_acquire_for(WAIT2RECV_TIMEOUT * 2)) { // RX might wait up to WAIT2RECV_TIMEOUT before recvfrom
|
if (!tx_sem.try_acquire_for(WAIT2RECV_TIMEOUT * 2)) { // RX might wait up to WAIT2RECV_TIMEOUT before recvfrom
|
||||||
|
@ -196,7 +198,7 @@ void MULTIHOMING_UDPSOCKET_ECHOTEST_NONBLOCK()
|
||||||
// Packet loss up to 30% tolerated
|
// Packet loss up to 30% tolerated
|
||||||
if (packets_sent > 0) {
|
if (packets_sent > 0) {
|
||||||
double loss_ratio = 1 - ((double)packets_recv / (double)packets_sent);
|
double loss_ratio = 1 - ((double)packets_recv / (double)packets_sent);
|
||||||
printf("Interface %s, Packets sent: %d, packets received %d, loss ratio %.2lf\r\n", interface_name[j], packets_sent, packets_recv, loss_ratio);
|
tr_info("Interface %s, Packets sent: %d, packets received %d, loss ratio %.2lf\r\n", interface_name[j], packets_sent, packets_recv, loss_ratio);
|
||||||
TEST_ASSERT_DOUBLE_WITHIN(TOLERATED_LOSS_RATIO, EXPECTED_LOSS_RATIO, loss_ratio);
|
TEST_ASSERT_DOUBLE_WITHIN(TOLERATED_LOSS_RATIO, EXPECTED_LOSS_RATIO, loss_ratio);
|
||||||
|
|
||||||
#if MBED_CONF_NSAPI_SOCKET_STATS_ENABLED
|
#if MBED_CONF_NSAPI_SOCKET_STATS_ENABLED
|
||||||
|
@ -209,10 +211,12 @@ void MULTIHOMING_UDPSOCKET_ECHOTEST_NONBLOCK()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
loss_ratio = 1 - ((double)udp_stats[j].recv_bytes / (double)udp_stats[j].sent_bytes);
|
loss_ratio = 1 - ((double)udp_stats[j].recv_bytes / (double)udp_stats[j].sent_bytes);
|
||||||
printf("Bytes sent: %d, bytes received %d, loss ratio %.2lf\r\n", udp_stats[j].sent_bytes, udp_stats[j].recv_bytes, loss_ratio);
|
tr_info("Bytes sent: %d, bytes received %d, loss ratio %.2lf\r\n", udp_stats[j].sent_bytes, udp_stats[j].recv_bytes, loss_ratio);
|
||||||
TEST_ASSERT_DOUBLE_WITHIN(TOLERATED_LOSS_RATIO, EXPECTED_LOSS_RATIO, loss_ratio);
|
TEST_ASSERT_DOUBLE_WITHIN(TOLERATED_LOSS_RATIO, EXPECTED_LOSS_RATIO, loss_ratio);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
} else {
|
||||||
|
TEST_FAIL();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
||||||
|
|
|
@ -181,7 +181,7 @@ nsapi_error_t AT_CellularStack::socket_open(nsapi_socket_t *handle, nsapi_protoc
|
||||||
|
|
||||||
int index = find_socket_index(0);
|
int index = find_socket_index(0);
|
||||||
if (index == -1) {
|
if (index == -1) {
|
||||||
tr_error("No free sockets!");
|
tr_warn("No free sockets!");
|
||||||
_socket_mutex.unlock();
|
_socket_mutex.unlock();
|
||||||
return NSAPI_ERROR_NO_SOCKET;
|
return NSAPI_ERROR_NO_SOCKET;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue