TCP/TLS Socket tests will skip if TCP is not supported

pull/10037/head
Michal Paszta 2019-03-25 11:56:15 +02:00
parent b29b55ab5a
commit 09183c94b9
41 changed files with 76 additions and 0 deletions

View File

@ -114,6 +114,17 @@ nsapi_error_t tcpsocket_connect_to_discard_srv(TCPSocket &sock)
return tcpsocket_connect_to_srv(sock, MBED_CONF_APP_ECHO_SERVER_DISCARD_PORT);
}
bool is_tcp_supported()
{
static bool supported;
static bool tested = false;
if (!tested) {
TCPSocket socket;
supported = socket.open(NetworkInterface::get_default_instance()) == NSAPI_ERROR_OK;
}
return supported;
}
void fill_tx_buffer_ascii(char *buff, size_t len)
{
for (size_t i = 0; i < len; ++i) {

View File

@ -24,6 +24,12 @@ nsapi_version_t get_ip_version();
void fill_tx_buffer_ascii(char *buff, size_t len);
nsapi_error_t tcpsocket_connect_to_echo_srv(TCPSocket &sock);
nsapi_error_t tcpsocket_connect_to_discard_srv(TCPSocket &sock);
bool is_tcp_supported();
#define SKIP_IF_TCP_UNSUPPORTED() \
if (!is_tcp_supported()) { \
TEST_SKIP_MESSAGE("TCP not supported"); \
}
#if MBED_CONF_NSAPI_SOCKET_STATS_ENABLED
extern mbed_stats_socket_t tcp_stats[MBED_CONF_NSAPI_SOCKET_STATS_MAX_COUNT];

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_BIND_ADDRESS()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket *sock = new TCPSocket;
if (!sock) {
TEST_FAIL();

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_BIND_ADDRESS_INVALID()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket *sock = new TCPSocket;
if (!sock) {
TEST_FAIL();

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_BIND_ADDRESS_NULL()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket *sock = new TCPSocket;
if (!sock) {
TEST_FAIL();

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_BIND_ADDRESS_PORT()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket *sock = new TCPSocket;
if (!sock) {
TEST_FAIL();

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_BIND_PORT()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket *sock = new TCPSocket;
if (!sock) {
TEST_FAIL();

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_BIND_PORT_FAIL()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket *sock = new TCPSocket;
if (!sock) {
TEST_FAIL();

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_BIND_UNOPENED()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket *sock = new TCPSocket;
if (!sock) {
TEST_FAIL();

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_BIND_WRONG_TYPE()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket *sock = new TCPSocket;
if (!sock) {
TEST_FAIL();

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_CONNECT_INVALID()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket sock;
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.open(NetworkInterface::get_default_instance()));

View File

@ -59,6 +59,7 @@ static void _sigio_handler(osThreadId id)
void TCPSOCKET_ECHOTEST()
{
SKIP_IF_TCP_UNSUPPORTED();
if (tcpsocket_connect_to_echo_srv(sock) != NSAPI_ERROR_OK) {
TEST_FAIL();
return;
@ -127,6 +128,7 @@ void tcpsocket_echotest_nonblock_receive()
void TCPSOCKET_ECHOTEST_NONBLOCK()
{
SKIP_IF_TCP_UNSUPPORTED();
tc_exec_time.start();
time_allotted = split2half_rmng_tcp_test_time(); // [s]

View File

@ -39,6 +39,7 @@ static void _sigio_handler(osThreadId id)
void TCPSOCKET_ECHOTEST_BURST()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket sock;
tcpsocket_connect_to_echo_srv(sock);
sock.sigio(callback(_sigio_handler, ThisThread::get_id()));
@ -92,6 +93,7 @@ END:
void TCPSOCKET_ECHOTEST_BURST_NONBLOCK()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket sock;
tcpsocket_connect_to_echo_srv(sock);
sock.set_blocking(false);

View File

@ -51,6 +51,7 @@ static nsapi_error_t _tcpsocket_connect_to_daytime_srv(TCPSocket &sock)
void TCPSOCKET_ENDPOINT_CLOSE()
{
SKIP_IF_TCP_UNSUPPORTED();
static const int MORE_THAN_AVAILABLE = 30;
char buff[MORE_THAN_AVAILABLE];
int time_allotted = split2half_rmng_tcp_test_time(); // [s]

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_OPEN_CLOSE_REPEAT()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket *sock = new TCPSocket;
if (!sock) {
TEST_FAIL();

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_OPEN_DESTRUCT()
{
SKIP_IF_TCP_UNSUPPORTED();
for (int i = 0; i < 100; i++) {
TCPSocket *sock = new TCPSocket;
if (!sock) {

View File

@ -33,6 +33,7 @@ typedef struct TCPSocketItem {
void TCPSOCKET_OPEN_LIMIT()
{
SKIP_IF_TCP_UNSUPPORTED();
int open_sockets[2] = {0};
for (int i = 0; i < 2; i++) {

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_OPEN_TWICE()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket *sock = new TCPSocket;
if (!sock) {
TEST_FAIL();

View File

@ -118,6 +118,7 @@ void rcv_n_chk_against_rfc864_pattern(TCPSocket &sock)
void TCPSOCKET_RECV_100K()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket sock;
if (_tcpsocket_connect_to_chargen_srv(sock) != NSAPI_ERROR_OK) {
TEST_FAIL();
@ -172,6 +173,7 @@ static void _sigio_handler(osThreadId id)
void TCPSOCKET_RECV_100K_NONBLOCK()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket sock;
nsapi_error_t err = _tcpsocket_connect_to_chargen_srv(sock);

View File

@ -36,6 +36,7 @@ static void _sigio_handler(osThreadId id)
void TCPSOCKET_RECV_TIMEOUT()
{
SKIP_IF_TCP_UNSUPPORTED();
static const int DATA_LEN = 100;
char buff[DATA_LEN] = {0};
int time_allotted = split2half_rmng_tcp_test_time(); // [s]

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_SEND_REPEAT()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket sock;
tcpsocket_connect_to_discard_srv(sock);

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_SEND_TIMEOUT()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket sock;
if (tcpsocket_connect_to_discard_srv(sock) != NSAPI_ERROR_OK) {
TEST_FAIL();

View File

@ -26,6 +26,7 @@ using namespace utest::v1;
void TCPSOCKET_SETSOCKOPT_KEEPALIVE_VALID()
{
SKIP_IF_TCP_UNSUPPORTED();
TCPSocket sock;
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.open(NetworkInterface::get_default_instance()));
int32_t seconds = 7200;

View File

@ -159,6 +159,7 @@ END:
void TCPSOCKET_THREAD_PER_SOCKET_SAFETY()
{
SKIP_IF_TCP_UNSUPPORTED();
thread.start(callback(check_const_len_rand_sequence));
check_var_len_rand_sequence();

View File

@ -142,6 +142,17 @@ nsapi_error_t tlssocket_connect_to_discard_srv(TLSSocket &sock)
return tlssocket_connect_to_srv(sock, MBED_CONF_APP_ECHO_SERVER_DISCARD_PORT_TLS);
}
bool is_tcp_supported()
{
static bool supported;
static bool tested = false;
if (!tested) {
TCPSocket socket;
supported = socket.open(NetworkInterface::get_default_instance()) == NSAPI_ERROR_OK;
}
return supported;
}
void fill_tx_buffer_ascii(char *buff, size_t len)
{
for (size_t i = 0; i < len; ++i) {

View File

@ -27,6 +27,12 @@ void drop_bad_packets(TLSSocket &sock, int orig_timeout);
void fill_tx_buffer_ascii(char *buff, size_t len);
nsapi_error_t tlssocket_connect_to_echo_srv(TLSSocket &sock);
nsapi_error_t tlssocket_connect_to_discard_srv(TLSSocket &sock);
bool is_tcp_supported();
#define SKIP_IF_TCP_UNSUPPORTED() \
if (!is_tcp_supported()) { \
TEST_SKIP_MESSAGE("TCP not supported"); \
}
#if MBED_CONF_NSAPI_SOCKET_STATS_ENABLED
extern mbed_stats_socket_t tls_stats[MBED_CONF_NSAPI_SOCKET_STATS_MAX_COUNT];

View File

@ -28,6 +28,7 @@ using namespace utest::v1;
void TLSSOCKET_CONNECT_INVALID()
{
SKIP_IF_TCP_UNSUPPORTED();
TLSSocket sock;
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.open(NetworkInterface::get_default_instance()));
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.set_root_ca_cert(tls_global::cert));

View File

@ -59,6 +59,7 @@ static void _sigio_handler(osThreadId id)
void TLSSOCKET_ECHOTEST()
{
SKIP_IF_TCP_UNSUPPORTED();
sock = new TLSSocket;
if (tlssocket_connect_to_echo_srv(*sock) != NSAPI_ERROR_OK) {
printf("Error from tlssocket_connect_to_echo_srv\n");
@ -133,6 +134,7 @@ void tlssocket_echotest_nonblock_receive()
void TLSSOCKET_ECHOTEST_NONBLOCK()
{
SKIP_IF_TCP_UNSUPPORTED();
sock = new TLSSocket;
tc_exec_time.start();
time_allotted = split2half_rmng_tls_test_time(); // [s]

View File

@ -41,6 +41,7 @@ static void _sigio_handler(osThreadId id)
void TLSSOCKET_ECHOTEST_BURST()
{
SKIP_IF_TCP_UNSUPPORTED();
TLSSocket *sock = new TLSSocket;
tlssocket_connect_to_echo_srv(*sock);
sock->sigio(callback(_sigio_handler, ThisThread::get_id()));
@ -95,6 +96,7 @@ END:
void TLSSOCKET_ECHOTEST_BURST_NONBLOCK()
{
SKIP_IF_TCP_UNSUPPORTED();
TLSSocket *sock = new TLSSocket;
tlssocket_connect_to_echo_srv(*sock);
sock->set_blocking(false);

View File

@ -54,6 +54,7 @@ static nsapi_error_t _tlssocket_connect_to_daytime_srv(TLSSocket &sock)
void TLSSOCKET_ENDPOINT_CLOSE()
{
SKIP_IF_TCP_UNSUPPORTED();
static const int MORE_THAN_AVAILABLE = 30;
char buff[MORE_THAN_AVAILABLE];
int time_allotted = split2half_rmng_tls_test_time(); // [s]

View File

@ -28,6 +28,7 @@ using namespace utest::v1;
void TLSSOCKET_HANDSHAKE_INVALID()
{
SKIP_IF_TCP_UNSUPPORTED();
TLSSocket sock;
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.open(NetworkInterface::get_default_instance()));
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.set_root_ca_cert(tls_global::cert));

View File

@ -28,6 +28,7 @@ using namespace utest::v1;
void TLSSOCKET_NO_CERT()
{
SKIP_IF_TCP_UNSUPPORTED();
TLSSocket sock;
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.open(NetworkInterface::get_default_instance()));
TEST_ASSERT_EQUAL(NSAPI_ERROR_AUTH_FAILURE,

View File

@ -28,6 +28,7 @@ using namespace utest::v1;
void TLSSOCKET_OPEN_DESTRUCT()
{
SKIP_IF_TCP_UNSUPPORTED();
for (int i = 0; i < 100; i++) {
TLSSocket *sock = new TLSSocket;
if (!sock) {

View File

@ -35,6 +35,7 @@ typedef struct TLSSocketItem {
void TLSSOCKET_OPEN_LIMIT()
{
SKIP_IF_TCP_UNSUPPORTED();
int open_sockets[2] = {0};
for (int i = 0; i < 2; i++) {

View File

@ -28,6 +28,7 @@ using namespace utest::v1;
void TLSSOCKET_OPEN_TWICE()
{
SKIP_IF_TCP_UNSUPPORTED();
TLSSocket *sock = new TLSSocket;
if (!sock) {
TEST_FAIL();

View File

@ -38,6 +38,7 @@ static void _sigio_handler(osThreadId id)
void TLSSOCKET_RECV_TIMEOUT()
{
SKIP_IF_TCP_UNSUPPORTED();
static const int DATA_LEN = 100;
char buff[DATA_LEN] = {0};
int time_allotted = split2half_rmng_tls_test_time(); // [s]

View File

@ -28,6 +28,7 @@ using namespace utest::v1;
void TLSSOCKET_SEND_CLOSED()
{
SKIP_IF_TCP_UNSUPPORTED();
TLSSocket sock;
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.open(NetworkInterface::get_default_instance()));
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.set_root_ca_cert(tls_global::cert));

View File

@ -28,6 +28,7 @@ using namespace utest::v1;
void TLSSOCKET_SEND_REPEAT()
{
SKIP_IF_TCP_UNSUPPORTED();
TLSSocket sock;
tlssocket_connect_to_discard_srv(sock);

View File

@ -28,6 +28,7 @@ using namespace utest::v1;
void TLSSOCKET_SEND_TIMEOUT()
{
SKIP_IF_TCP_UNSUPPORTED();
TLSSocket sock;
if (tlssocket_connect_to_discard_srv(sock) != NSAPI_ERROR_OK) {
TEST_FAIL();

View File

@ -28,6 +28,7 @@ using namespace utest::v1;
void TLSSOCKET_SEND_UNCONNECTED()
{
SKIP_IF_TCP_UNSUPPORTED();
TLSSocket sock;
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.open(NetworkInterface::get_default_instance()));
TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, sock.set_root_ca_cert(tls_global::cert));

View File

@ -28,6 +28,7 @@ using namespace utest::v1;
void TLSSOCKET_SIMULTANEOUS()
{
SKIP_IF_TCP_UNSUPPORTED();
TLSSocket sock1;
TLSSocket sock2;
tlssocket_connect_to_echo_srv(sock1);