Skip to content

Commit 4d672e0

Browse files
bridadangeky
authored andcommitted
Arranging logic in test to prevent left-over behavior
1 parent 27a97f9 commit 4d672e0

File tree

1 file changed

+54
-46
lines changed
  • features/FEATURE_LWIP/TESTS/mbedmicro-net/udp_echo

1 file changed

+54
-46
lines changed

features/FEATURE_LWIP/TESTS/mbedmicro-net/udp_echo/main.cpp

Lines changed: 54 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -47,53 +47,61 @@ int main() {
4747
printf("Got a uuid of %s\r\n", uuid);
4848
size_t uuid_len = strlen(uuid);
4949
EthernetInterface eth;
50-
eth.connect();
51-
printf("UDP client IP Address is %s\n", eth.get_ip_address());
52-
53-
greentea_send_kv("target_ip", eth.get_ip_address());
54-
55-
char recv_key[] = "host_port";
56-
char ipbuf[60] = {0};
57-
char portbuf[16] = {0};
58-
unsigned int port = 0;
59-
60-
UDPSocket sock;
61-
sock.open(&eth);
62-
sock.set_timeout(MBED_CFG_UDP_CLIENT_ECHO_TIMEOUT);
63-
64-
greentea_send_kv("host_ip", " ");
65-
greentea_parse_kv(recv_key, ipbuf, sizeof(recv_key), sizeof(ipbuf));
66-
67-
greentea_send_kv("host_port", " ");
68-
greentea_parse_kv(recv_key, portbuf, sizeof(recv_key), sizeof(ipbuf));
69-
sscanf(portbuf, "%u", &port);
70-
71-
printf("MBED: UDP Server IP address received: %s:%d \n", ipbuf, port);
72-
SocketAddress udp_addr(ipbuf, port);
73-
74-
int success = 0;
75-
int i = 0;
76-
while (success < ECHO_LOOPS) {
77-
prep_buffer(uuid, uuid_len, tx_buffer, sizeof(tx_buffer));
78-
const int ret = sock.sendto(udp_addr, tx_buffer, sizeof(tx_buffer));
79-
printf("[%02d] sent %d Bytes - %.*s \n", i, ret, MBED_CFG_UDP_CLIENT_ECHO_BUFFER_SIZE, tx_buffer);
80-
SocketAddress temp_addr;
81-
const int n = sock.recvfrom(&temp_addr, rx_buffer, sizeof(rx_buffer));
82-
printf("[%02d] recv %d Bytes - %.*s \n", i, ret, MBED_CFG_UDP_CLIENT_ECHO_BUFFER_SIZE, rx_buffer);
83-
84-
if ((temp_addr == udp_addr &&
85-
n == sizeof(tx_buffer) &&
86-
memcmp(rx_buffer, tx_buffer, sizeof(rx_buffer)) == 0)) {
87-
success += 1;
88-
89-
printf("[%02d] success #%d\n", i, success);
50+
51+
int err = eth.connect();
52+
TEST_ASSERT_EQUAL(0, err);
53+
54+
if (err) {
55+
printf("MBED: failed to connect with an error of %d\r\n", err);
56+
GREENTEA_TESTSUITE_RESULT(false);
57+
} else {
58+
printf("UDP client IP Address is %s\n", eth.get_ip_address());
59+
60+
greentea_send_kv("target_ip", eth.get_ip_address());
61+
62+
char recv_key[] = "host_port";
63+
char ipbuf[60] = {0};
64+
char portbuf[16] = {0};
65+
unsigned int port = 0;
66+
67+
UDPSocket sock;
68+
sock.open(&eth);
69+
sock.set_timeout(MBED_CFG_UDP_CLIENT_ECHO_TIMEOUT);
70+
71+
greentea_send_kv("host_ip", " ");
72+
greentea_parse_kv(recv_key, ipbuf, sizeof(recv_key), sizeof(ipbuf));
73+
74+
greentea_send_kv("host_port", " ");
75+
greentea_parse_kv(recv_key, portbuf, sizeof(recv_key), sizeof(ipbuf));
76+
sscanf(portbuf, "%u", &port);
77+
78+
printf("MBED: UDP Server IP address received: %s:%d \n", ipbuf, port);
79+
SocketAddress udp_addr(ipbuf, port);
80+
81+
int success = 0;
82+
int i = 0;
83+
while (success < ECHO_LOOPS) {
84+
prep_buffer(uuid, uuid_len, tx_buffer, sizeof(tx_buffer));
85+
const int ret = sock.sendto(udp_addr, tx_buffer, sizeof(tx_buffer));
86+
printf("[%02d] sent %d Bytes - %.*s \n", i, ret, MBED_CFG_UDP_CLIENT_ECHO_BUFFER_SIZE, tx_buffer);
87+
SocketAddress temp_addr;
88+
const int n = sock.recvfrom(&temp_addr, rx_buffer, sizeof(rx_buffer));
89+
printf("[%02d] recv %d Bytes - %.*s \n", i, ret, MBED_CFG_UDP_CLIENT_ECHO_BUFFER_SIZE, rx_buffer);
90+
91+
if ((temp_addr == udp_addr &&
92+
n == sizeof(tx_buffer) &&
93+
memcmp(rx_buffer, tx_buffer, sizeof(rx_buffer)) == 0)) {
94+
success += 1;
95+
96+
printf("[%02d] success #%d\n", i, success);
97+
}
98+
i++;
9099
}
91-
i++;
92-
}
93100

94-
bool result = success == ECHO_LOOPS;
101+
bool result = success == ECHO_LOOPS;
95102

96-
sock.close();
97-
eth.disconnect();
98-
GREENTEA_TESTSUITE_RESULT(result);
103+
sock.close();
104+
eth.disconnect();
105+
GREENTEA_TESTSUITE_RESULT(result);
106+
}
99107
}

0 commit comments

Comments
 (0)