From 92656bcc82f6503d3290dfbdfeb7074f062ac309 Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Mon, 28 Dec 2015 11:10:20 +0000 Subject: [PATCH] test: Update test for set/get_servers variants Ports are significant in the _ports_ variant functions, so update test to cope. --- test/ares-test-misc.cc | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/test/ares-test-misc.cc b/test/ares-test-misc.cc index af9d5ae1..6998ef92 100644 --- a/test/ares-test-misc.cc +++ b/test/ares-test-misc.cc @@ -47,6 +47,30 @@ TEST_F(DefaultChannelTest, SetServers) { EXPECT_EQ(expected, GetNameServers(channel_)); } +TEST_F(DefaultChannelTest, SetServersPorts) { + EXPECT_EQ(ARES_SUCCESS, ares_set_servers_ports(channel_, nullptr)); + std::vector empty; + EXPECT_EQ(empty, GetNameServers(channel_)); + + struct ares_addr_port_node server1; + struct ares_addr_port_node server2; + server1.next = &server2; + server1.family = AF_INET; + server1.addr.addr4.s_addr = htonl(0x01020304); + server1.udp_port = 111; + server1.tcp_port = 111; + server2.next = nullptr; + server2.family = AF_INET; + server2.addr.addr4.s_addr = htonl(0x02030405); + server2.udp_port = 0; + server2.tcp_port = 0;; + EXPECT_EQ(ARES_ENODATA, ares_set_servers_ports(nullptr, &server1)); + + EXPECT_EQ(ARES_SUCCESS, ares_set_servers_ports(channel_, &server1)); + std::vector expected = {"1.2.3.4:111", "2.3.4.5"}; + EXPECT_EQ(expected, GetNameServers(channel_)); +} + TEST_F(DefaultChannelTest, SetServersCSV) { EXPECT_EQ(ARES_ENODATA, ares_set_servers_csv(nullptr, "1.2.3.4")); EXPECT_EQ(ARES_ENODATA, ares_set_servers_csv(nullptr, "xyzzy,plugh")); @@ -63,15 +87,19 @@ TEST_F(DefaultChannelTest, SetServersCSV) { EXPECT_EQ(ARES_EBADSTR, ares_set_servers_csv(channel_, "1.2.3.4 , 0102:0304:0506:0708:0910:1112:1314:1516, 2.3.4.5")); - // Same, with ports -- currently ignored + // Same, with ports EXPECT_EQ(ARES_SUCCESS, ares_set_servers_csv(channel_, "1.2.3.4:54,[0102:0304:0506:0708:0910:1112:1314:1516]:80,2.3.4.5:55")); EXPECT_EQ(expected, GetNameServers(channel_)); + EXPECT_EQ(ARES_SUCCESS, + ares_set_servers_ports_csv(channel_, "1.2.3.4:54,[0102:0304:0506:0708:0910:1112:1314:1516]:80,2.3.4.5:55")); + std::vector expected2 = {"1.2.3.4:54", "[0102:0304:0506:0708:0910:1112:1314:1516]:80", "2.3.4.5:55"}; + EXPECT_EQ(expected2, GetNameServers(channel_)); // Should survive duplication ares_channel channel2; EXPECT_EQ(ARES_SUCCESS, ares_dup(&channel2, channel_)); - EXPECT_EQ(expected, GetNameServers(channel2)); + EXPECT_EQ(expected2, GetNameServers(channel2)); ares_destroy(channel2); // Allocation failure cases