Commit 6fd04a33 authored by Marcin Siodelski's avatar Marcin Siodelski
Browse files

[3539] A few additions and fixes in unit tests for CfgIface class.

parent 46471f4d
......@@ -135,6 +135,7 @@ void
CfgIface::reset() {
wildcard_used_ = false;
......@@ -140,16 +140,38 @@ TEST_F(CfgIfaceTest, explicitNamesAndAddressesV4) {
ASSERT_FALSE(socketOpen("eth1", ""));
ASSERT_FALSE(socketOpen("eth1", ""));
// Reset configuration.
// Now check that the socket can be bound to a different address on
// eth1.
ASSERT_NO_THROW(cfg.use(AF_INET, "eth1/"));
ASSERT_THROW(cfg.use(AF_INET, "eth1/"), DuplicateIfaceName);
// Open sockets according to the new configuration.
cfg.openSockets(AF_INET, DHCP4_SERVER_PORT);
EXPECT_FALSE(socketOpen("eth0", ""));
EXPECT_FALSE(socketOpen("eth1", ""));
EXPECT_TRUE(socketOpen("eth1", ""));
// This test checks that the invalid interface name and/or IPv4 address
// results in error.
TEST_F(CfgIfaceTest, explicitNamesAndAddressesInvalidV4) {
CfgIface cfg;
// An address not assigned to the interface.
EXPECT_THROW(cfg.use(AF_INET, "eth0/"), NoSuchAddress);
// IPv6 address.
EXPECT_THROW(cfg.use(AF_INET, "eth0/2001:db8:1::1"), InvalidIfaceName);
// Wildcard interface name with an address.
EXPECT_THROW(cfg.use(AF_INET, "*/"), InvalidIfaceName);
// Duplicated interface.
ASSERT_NO_THROW(cfg.use(AF_INET, "eth1"));
EXPECT_THROW(cfg.use(AF_INET, "eth1/"), DuplicateIfaceName);
// This test checks that the interface names can be explicitly selected
// by their names and IPv6 sockets are opened on these interfaces.
TEST_F(CfgIfaceTest, explicitNamesV6) {
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment