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