mirror of https://github.com/ARMmbed/mbed-os.git
Greentea TCP test cases - check all socket calls
parent
1fef1602a2
commit
4fa57e36fe
|
|
@ -68,6 +68,26 @@ static void _ifdown() {
|
||||||
printf("MBED: ifdown\n");
|
printf("MBED: ifdown\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tcpsocket_connect_to_echo_srv(TCPSocket& sock) {
|
||||||
|
SocketAddress tcp_addr;
|
||||||
|
|
||||||
|
get_interface()->gethostbyname(MBED_CONF_APP_ECHO_SERVER_ADDR, &tcp_addr);
|
||||||
|
tcp_addr.set_port(MBED_CONF_APP_ECHO_SERVER_PORT);
|
||||||
|
|
||||||
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.open(get_interface()));
|
||||||
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.connect(tcp_addr));
|
||||||
|
}
|
||||||
|
|
||||||
|
void tcpsocket_connect_to_discard_srv(TCPSocket& sock) {
|
||||||
|
SocketAddress tcp_addr;
|
||||||
|
|
||||||
|
get_interface()->gethostbyname(MBED_CONF_APP_ECHO_SERVER_ADDR, &tcp_addr);
|
||||||
|
tcp_addr.set_port(9);
|
||||||
|
|
||||||
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.open(get_interface()));
|
||||||
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.connect(tcp_addr));
|
||||||
|
}
|
||||||
|
|
||||||
void fill_tx_buffer_ascii(char *buff, size_t len)
|
void fill_tx_buffer_ascii(char *buff, size_t len)
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i<len; ++i) {
|
for (size_t i = 0; i<len; ++i) {
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,8 @@
|
||||||
NetworkInterface* get_interface();
|
NetworkInterface* get_interface();
|
||||||
void drop_bad_packets(TCPSocket& sock);
|
void drop_bad_packets(TCPSocket& sock);
|
||||||
void fill_tx_buffer_ascii(char *buff, size_t len);
|
void fill_tx_buffer_ascii(char *buff, size_t len);
|
||||||
|
void tcpsocket_connect_to_echo_srv(TCPSocket& sock);
|
||||||
|
void tcpsocket_connect_to_discard_srv(TCPSocket& sock);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Test cases
|
* Test cases
|
||||||
|
|
|
||||||
|
|
@ -48,13 +48,7 @@ static void _sigio_handler(osThreadId id) {
|
||||||
|
|
||||||
void test_tcpsocket_echotest()
|
void test_tcpsocket_echotest()
|
||||||
{
|
{
|
||||||
SocketAddress tcp_addr;
|
tcpsocket_connect_to_echo_srv(sock);
|
||||||
get_interface()->gethostbyname(MBED_CONF_APP_ECHO_SERVER_ADDR, &tcp_addr);
|
|
||||||
tcp_addr.set_port(MBED_CONF_APP_ECHO_SERVER_PORT);
|
|
||||||
|
|
||||||
TCPSocket sock;
|
|
||||||
sock.open(get_interface());
|
|
||||||
sock.connect(tcp_addr);
|
|
||||||
|
|
||||||
int recvd;
|
int recvd;
|
||||||
int sent;
|
int sent;
|
||||||
|
|
@ -82,7 +76,7 @@ void test_tcpsocket_echotest()
|
||||||
}
|
}
|
||||||
TEST_ASSERT_EQUAL(0, memcmp(tx_buffer, rx_buffer, sent));
|
TEST_ASSERT_EQUAL(0, memcmp(tx_buffer, rx_buffer, sent));
|
||||||
}
|
}
|
||||||
sock.close();
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
||||||
}
|
}
|
||||||
|
|
||||||
void tcpsocket_echotest_nonblock_receiver(void *receive_bytes)
|
void tcpsocket_echotest_nonblock_receiver(void *receive_bytes)
|
||||||
|
|
@ -111,12 +105,7 @@ void tcpsocket_echotest_nonblock_receiver(void *receive_bytes)
|
||||||
|
|
||||||
void test_tcpsocket_echotest_nonblock()
|
void test_tcpsocket_echotest_nonblock()
|
||||||
{
|
{
|
||||||
SocketAddress tcp_addr;
|
tcpsocket_connect_to_echo_srv(sock);
|
||||||
get_interface()->gethostbyname(MBED_CONF_APP_ECHO_SERVER_ADDR, &tcp_addr);
|
|
||||||
tcp_addr.set_port(MBED_CONF_APP_ECHO_SERVER_PORT);
|
|
||||||
|
|
||||||
sock.open(get_interface());
|
|
||||||
sock.connect(tcp_addr);
|
|
||||||
sock.set_blocking(false);
|
sock.set_blocking(false);
|
||||||
sock.sigio(callback(_sigio_handler, Thread::gettid()));
|
sock.sigio(callback(_sigio_handler, Thread::gettid()));
|
||||||
|
|
||||||
|
|
@ -155,5 +144,5 @@ void test_tcpsocket_echotest_nonblock()
|
||||||
delete thread;
|
delete thread;
|
||||||
}
|
}
|
||||||
free(stack_mem);
|
free(stack_mem);
|
||||||
sock.close();
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,13 +40,8 @@ static void _sigio_handler(osThreadId id) {
|
||||||
|
|
||||||
void test_tcpsocket_echotest_burst()
|
void test_tcpsocket_echotest_burst()
|
||||||
{
|
{
|
||||||
SocketAddress tcp_addr;
|
|
||||||
get_interface()->gethostbyname(MBED_CONF_APP_ECHO_SERVER_ADDR, &tcp_addr);
|
|
||||||
tcp_addr.set_port(MBED_CONF_APP_ECHO_SERVER_PORT);
|
|
||||||
|
|
||||||
TCPSocket sock;
|
TCPSocket sock;
|
||||||
sock.open(get_interface());
|
tcpsocket_connect_to_echo_srv(sock);
|
||||||
sock.connect(tcp_addr);
|
|
||||||
sock.sigio(callback(_sigio_handler, Thread::gettid()));
|
sock.sigio(callback(_sigio_handler, Thread::gettid()));
|
||||||
|
|
||||||
// TX buffer to be preserved for comparison
|
// TX buffer to be preserved for comparison
|
||||||
|
|
@ -88,18 +83,13 @@ void test_tcpsocket_echotest_burst()
|
||||||
|
|
||||||
TEST_ASSERT_EQUAL(0, memcmp(tx_buffer, rx_buffer, BURST_SIZE));
|
TEST_ASSERT_EQUAL(0, memcmp(tx_buffer, rx_buffer, BURST_SIZE));
|
||||||
}
|
}
|
||||||
sock.close();
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_tcpsocket_echotest_burst_nonblock()
|
void test_tcpsocket_echotest_burst_nonblock()
|
||||||
{
|
{
|
||||||
SocketAddress tcp_addr;
|
|
||||||
get_interface()->gethostbyname(MBED_CONF_APP_ECHO_SERVER_ADDR, &tcp_addr);
|
|
||||||
tcp_addr.set_port(MBED_CONF_APP_ECHO_SERVER_PORT);
|
|
||||||
|
|
||||||
TCPSocket sock;
|
TCPSocket sock;
|
||||||
sock.open(get_interface());
|
tcpsocket_connect_to_echo_srv(sock);
|
||||||
sock.connect(tcp_addr);
|
|
||||||
sock.set_blocking(false);
|
sock.set_blocking(false);
|
||||||
sock.sigio(callback(_sigio_handler, Thread::gettid()));
|
sock.sigio(callback(_sigio_handler, Thread::gettid()));
|
||||||
|
|
||||||
|
|
@ -150,5 +140,5 @@ void test_tcpsocket_echotest_burst_nonblock()
|
||||||
|
|
||||||
TEST_ASSERT_EQUAL(0, memcmp(tx_buffer, rx_buffer, BURST_SIZE));
|
TEST_ASSERT_EQUAL(0, memcmp(tx_buffer, rx_buffer, BURST_SIZE));
|
||||||
}
|
}
|
||||||
sock.close();
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,16 +32,11 @@ static void _sigio_handler(osThreadId id) {
|
||||||
|
|
||||||
void test_tcpsocket_recv_timeout()
|
void test_tcpsocket_recv_timeout()
|
||||||
{
|
{
|
||||||
SocketAddress tcp_addr;
|
|
||||||
get_interface()->gethostbyname(MBED_CONF_APP_ECHO_SERVER_ADDR, &tcp_addr);
|
|
||||||
tcp_addr.set_port(MBED_CONF_APP_ECHO_SERVER_PORT);
|
|
||||||
|
|
||||||
static const int DATA_LEN = 100;
|
static const int DATA_LEN = 100;
|
||||||
char buff[DATA_LEN] = {0};
|
char buff[DATA_LEN] = {0};
|
||||||
|
|
||||||
TCPSocket sock;
|
TCPSocket sock;
|
||||||
sock.open(get_interface());
|
tcpsocket_connect_to_echo_srv(sock);
|
||||||
sock.connect(tcp_addr);
|
|
||||||
sock.set_timeout(100);
|
sock.set_timeout(100);
|
||||||
sock.sigio(callback(_sigio_handler, Thread::gettid()));
|
sock.sigio(callback(_sigio_handler, Thread::gettid()));
|
||||||
|
|
||||||
|
|
@ -72,5 +67,5 @@ void test_tcpsocket_recv_timeout()
|
||||||
pkt_unrecvd -= recvd;
|
pkt_unrecvd -= recvd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sock.close();
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,7 @@ using namespace utest::v1;
|
||||||
void test_tcpsocket_send_repeat()
|
void test_tcpsocket_send_repeat()
|
||||||
{
|
{
|
||||||
TCPSocket sock;
|
TCPSocket sock;
|
||||||
sock.open(get_interface());
|
tcpsocket_connect_to_discard_srv(sock);
|
||||||
sock.connect(MBED_CONF_APP_ECHO_SERVER_ADDR, 9);
|
|
||||||
|
|
||||||
int err;
|
int err;
|
||||||
Timer timer;
|
Timer timer;
|
||||||
|
|
@ -38,5 +37,6 @@ void test_tcpsocket_send_repeat()
|
||||||
err = sock.send(tx_buffer, sizeof(tx_buffer));
|
err = sock.send(tx_buffer, sizeof(tx_buffer));
|
||||||
TEST_ASSERT_EQUAL(sizeof(tx_buffer), err);
|
TEST_ASSERT_EQUAL(sizeof(tx_buffer), err);
|
||||||
}
|
}
|
||||||
sock.close();
|
|
||||||
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,7 @@ using namespace utest::v1;
|
||||||
void test_tcpsocket_send_timeout()
|
void test_tcpsocket_send_timeout()
|
||||||
{
|
{
|
||||||
TCPSocket sock;
|
TCPSocket sock;
|
||||||
sock.open(get_interface());
|
tcpsocket_connect_to_discard_srv(sock);
|
||||||
sock.connect(MBED_CONF_APP_ECHO_SERVER_ADDR, 9);
|
|
||||||
|
|
||||||
int err;
|
int err;
|
||||||
Timer timer;
|
Timer timer;
|
||||||
|
|
@ -42,5 +41,6 @@ void test_tcpsocket_send_timeout()
|
||||||
TEST_ASSERT_EQUAL(sizeof(tx_buffer), err);
|
TEST_ASSERT_EQUAL(sizeof(tx_buffer), err);
|
||||||
TEST_ASSERT(timer.read_ms() <= 800);
|
TEST_ASSERT(timer.read_ms() <= 800);
|
||||||
}
|
}
|
||||||
sock.close();
|
|
||||||
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,7 @@ static void _sigio_handler2(osThreadId id) {
|
||||||
static void check_const_len_rand_sequence()
|
static void check_const_len_rand_sequence()
|
||||||
{
|
{
|
||||||
TCPSocket sock;
|
TCPSocket sock;
|
||||||
sock.open(get_interface());
|
tcpsocket_connect_to_echo_srv(sock);
|
||||||
sock.connect(MBED_CONF_APP_ECHO_SERVER_ADDR, MBED_CONF_APP_ECHO_SERVER_PORT);
|
|
||||||
sock.sigio(callback(_sigio_handler1, Thread::gettid()));
|
sock.sigio(callback(_sigio_handler1, Thread::gettid()));
|
||||||
|
|
||||||
static const int BUFF_SIZE = 10;
|
static const int BUFF_SIZE = 10;
|
||||||
|
|
@ -90,15 +89,13 @@ static void check_const_len_rand_sequence()
|
||||||
}
|
}
|
||||||
TEST_ASSERT_EQUAL(0, memcmp(tx_buff, rx_buff, BUFF_SIZE));
|
TEST_ASSERT_EQUAL(0, memcmp(tx_buff, rx_buff, BUFF_SIZE));
|
||||||
}
|
}
|
||||||
sock.close();
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
||||||
}
|
}
|
||||||
|
|
||||||
static void check_var_len_rand_sequence()
|
static void check_var_len_rand_sequence()
|
||||||
{
|
{
|
||||||
TCPSocket sock;
|
TCPSocket sock;
|
||||||
|
tcpsocket_connect_to_echo_srv(sock);
|
||||||
sock.open(get_interface());
|
|
||||||
sock.connect(MBED_CONF_APP_ECHO_SERVER_ADDR, MBED_CONF_APP_ECHO_SERVER_PORT);
|
|
||||||
sock.sigio(callback(_sigio_handler2, Thread::gettid()));
|
sock.sigio(callback(_sigio_handler2, Thread::gettid()));
|
||||||
|
|
||||||
static const int BUFF_SIZE = 1001;
|
static const int BUFF_SIZE = 1001;
|
||||||
|
|
@ -145,7 +142,7 @@ static void check_var_len_rand_sequence()
|
||||||
TEST_ASSERT_EQUAL(0, memcmp(tx_buff, rx_buff, i));
|
TEST_ASSERT_EQUAL(0, memcmp(tx_buff, rx_buff, i));
|
||||||
}
|
}
|
||||||
|
|
||||||
sock.close();
|
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.close());
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_tcpsocket_thread_per_socket_safety()
|
void test_tcpsocket_thread_per_socket_safety()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue