mirror of https://github.com/ARMmbed/mbed-os.git
Fix UDPSOCKET_ECHOTEST to handle oversized packets
parent
1234b3fc28
commit
72281a57b3
|
@ -86,6 +86,7 @@ void UDPSOCKET_ECHOTEST_impl(bool use_sendto)
|
|||
|
||||
fill_tx_buffer_ascii(tx_buffer, BUFF_SIZE);
|
||||
int packets_sent_prev = packets_sent;
|
||||
bool is_oversized;
|
||||
|
||||
for (int retry_cnt = 0; retry_cnt <= 2; retry_cnt++) {
|
||||
memset(rx_buffer, 0, BUFF_SIZE);
|
||||
|
@ -94,8 +95,10 @@ void UDPSOCKET_ECHOTEST_impl(bool use_sendto)
|
|||
} else {
|
||||
sent = sock.send(tx_buffer, pkt_s);
|
||||
}
|
||||
if (check_oversized_packets(sent, pkt_s)) {
|
||||
is_oversized = check_oversized_packets(sent, pkt_s);
|
||||
if (is_oversized) {
|
||||
TEST_IGNORE_MESSAGE("This device does not handle oversized packets");
|
||||
break;
|
||||
} else if (sent == pkt_s) {
|
||||
packets_sent++;
|
||||
} else {
|
||||
|
@ -127,6 +130,9 @@ void UDPSOCKET_ECHOTEST_impl(bool use_sendto)
|
|||
}
|
||||
}
|
||||
|
||||
if (is_oversized) {
|
||||
continue;
|
||||
}
|
||||
if (use_sendto) {
|
||||
// Verify received address is correct
|
||||
TEST_ASSERT(udp_addr == recv_addr);
|
||||
|
@ -188,6 +194,8 @@ void UDPSOCKET_ECHOTEST_NONBLOCK_impl(bool use_sendto)
|
|||
for (unsigned int s_idx = 0; s_idx < sizeof(pkt_sizes) / sizeof(*pkt_sizes); ++s_idx) {
|
||||
int pkt_s = pkt_sizes[s_idx];
|
||||
int packets_sent_prev = packets_sent;
|
||||
bool is_oversized;
|
||||
|
||||
for (int retry_cnt = 0; retry_cnt <= RETRIES; retry_cnt++) {
|
||||
fill_tx_buffer_ascii(tx_buffer, pkt_s);
|
||||
|
||||
|
@ -197,7 +205,11 @@ void UDPSOCKET_ECHOTEST_NONBLOCK_impl(bool use_sendto)
|
|||
sent = sock->send(tx_buffer, pkt_s);
|
||||
}
|
||||
|
||||
if (sent == pkt_s) {
|
||||
is_oversized = check_oversized_packets(sent, pkt_s);
|
||||
if (is_oversized) {
|
||||
TEST_IGNORE_MESSAGE("This device does not handle oversized packets");
|
||||
break;
|
||||
} else if (sent == pkt_s) {
|
||||
packets_sent++;
|
||||
} else if (sent == NSAPI_ERROR_WOULD_BLOCK) {
|
||||
if (tc_exec_time.read() >= time_allotted ||
|
||||
|
@ -239,6 +251,10 @@ void UDPSOCKET_ECHOTEST_NONBLOCK_impl(bool use_sendto)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_oversized) {
|
||||
continue;
|
||||
}
|
||||
// Make sure that at least one packet of every size was sent.
|
||||
TEST_ASSERT_TRUE(packets_sent > packets_sent_prev);
|
||||
if (memcmp(tx_buffer, rx_buffer, pkt_s) == 0) {
|
||||
|
|
Loading…
Reference in New Issue