unittests: Added NetworkInterface unit tests

Most functions are empty or simply return "UNSUPPORTED", but it is still worth covering this functions with unit tests to have better control of unwanted changes.
pull/8138/head
Michal Paszta 2018-09-13 13:11:45 +02:00 committed by Seppo Takalo
parent d740d698ba
commit 51dedfd873
2 changed files with 86 additions and 1 deletions

View File

@ -17,6 +17,7 @@
#include "gtest/gtest.h"
#include "features/netsocket/NetworkInterface.h"
#include "NetworkStack_stub.h"
class stubNetworkInterface : public NetworkInterface {
virtual nsapi_error_t connect()
@ -29,8 +30,10 @@ class stubNetworkInterface : public NetworkInterface {
};
virtual NetworkStack *get_stack()
{
return NULL;
return &stack;
};
public:
NetworkStackstub stack;
};
class TestNetworkInterface : public testing::Test {
@ -53,8 +56,79 @@ TEST_F(TestNetworkInterface, constructor)
EXPECT_TRUE(iface);
}
// get_default_instance is tested along with the implementations of NetworkInterface.
TEST_F(TestNetworkInterface, get_mac_address)
{
char *n = 0;
EXPECT_EQ(iface->get_mac_address(), n);
}
TEST_F(TestNetworkInterface, get_ip_address)
{
char *n = 0;
EXPECT_EQ(iface->get_ip_address(), n);
}
TEST_F(TestNetworkInterface, get_netmask)
{
char *n = 0;
EXPECT_EQ(iface->get_netmask(), n);
}
TEST_F(TestNetworkInterface, get_gateway)
{
char *n = 0;
EXPECT_EQ(iface->get_gateway(), n);
}
TEST_F(TestNetworkInterface, set_network)
{
EXPECT_EQ(iface->set_network("127.0.0.1", "255.255.0.0", "127.0.0.1"), NSAPI_ERROR_UNSUPPORTED);
}
TEST_F(TestNetworkInterface, set_dhcp)
{
EXPECT_EQ(iface->set_dhcp(true), NSAPI_ERROR_OK);
EXPECT_EQ(iface->set_dhcp(false), NSAPI_ERROR_UNSUPPORTED);
}
TEST_F(TestNetworkInterface, gethostbyname)
{
SocketAddress a;
EXPECT_EQ(iface->gethostbyname("host", &a, NSAPI_UNSPEC), NSAPI_ERROR_OK);
}
static bool callback_is_called;
static void my_callback(nsapi_error_t result, SocketAddress *address)
{
(void)result;
(void)address;
callback_is_called = true;
}
TEST_F(TestNetworkInterface, gethostbyname_async)
{
SocketAddress a;
EXPECT_EQ(iface->gethostbyname_async("host", mbed::callback(my_callback), NSAPI_UNSPEC), NSAPI_ERROR_OK);
EXPECT_EQ(iface->gethostbyname_async_cancel(1), NSAPI_ERROR_OK);
}
TEST_F(TestNetworkInterface, add_dns_server)
{
SocketAddress a("127.0.0.1", 1024);
EXPECT_EQ(iface->add_dns_server(a), NSAPI_ERROR_OK);
}
TEST_F(TestNetworkInterface, get_connection_status)
{
EXPECT_EQ(iface->get_connection_status(), NSAPI_ERROR_UNSUPPORTED);
}
TEST_F(TestNetworkInterface, set_blocking)
{
EXPECT_EQ(iface->set_blocking(true), NSAPI_ERROR_UNSUPPORTED);
}
// No way to test attach as it doesn't do or return anything.

View File

@ -5,10 +5,21 @@
# Source files
set(unittest-sources
../features/netsocket/SocketAddress.cpp
../features/netsocket/NetworkStack.cpp
../features/netsocket/NetworkInterface.cpp
../features/frameworks/nanostack-libservice/source/libip4string/ip4tos.c
../features/frameworks/nanostack-libservice/source/libip4string/stoip4.c
)
# Test files
set(unittest-test-sources
stubs/Mutex_stub.cpp
stubs/mbed_assert_stub.c
stubs/equeue_stub.c
stubs/EventQueue_stub.cpp
stubs/mbed_shared_queues_stub.cpp
stubs/nsapi_dns_stub.cpp
stubs/EventFlags_stub.cpp
features/netsocket/NetworkInterface/test_NetworkInterface.cpp
)