ifaddrs_test: improve getifaddrs_INET failure diagnostics.

Bug: http://b/439957546
Change-Id: I30f639f2cf14f0cef9c1d9031743cbeb30c8bee5
diff --git a/tests/ifaddrs_test.cpp b/tests/ifaddrs_test.cpp
index 01779f7..c22a6a5 100644
--- a/tests/ifaddrs_test.cpp
+++ b/tests/ifaddrs_test.cpp
@@ -18,6 +18,7 @@
 
 #include <ifaddrs.h>
 
+#include <arpa/inet.h>
 #include <dirent.h>
 #include <fcntl.h>
 #include <net/ethernet.h>
@@ -32,6 +33,7 @@
 
 #include <algorithm>
 #include <map>
+#include <sstream>
 #include <thread>
 #include <vector>
 
@@ -114,8 +116,19 @@
                                   sys_class_net.begin()));
 }
 
+static std::string ToString(const std::set<in_addr_t>& set) {
+  std::stringstream ss;
+  ss << "{";
+  for (auto it = set.begin(); it != set.end(); ++it) {
+    struct in_addr addr{*it};
+    ss << " " << inet_ntoa(addr);
+  }
+  ss << " }";
+  return ss.str();
+}
+
 static void CheckAddressIsInSet(const std::string& if_name, bool unicast,
-                                const std::set<in_addr_t>& addrs) {
+                                const std::set<in_addr_t>& getifaddrs_addrs) {
   ifreq ifr = {.ifr_addr.sa_family = AF_INET};
   if_name.copy(ifr.ifr_name, IFNAMSIZ - 1);
 
@@ -133,9 +146,13 @@
   close(fd);
 
   sockaddr_in* sock = reinterpret_cast<sockaddr_in*>(&ifr.ifr_addr);
-  in_addr_t addr = sock->sin_addr.s_addr;
+  in_addr_t ioctl_addr = sock->sin_addr.s_addr;
 
-  EXPECT_TRUE(addrs.contains(addr)) << if_name << ' ' << std::hex << ntohl(addr);
+  EXPECT_TRUE(getifaddrs_addrs.contains(ioctl_addr))
+      << if_name << ' ' << unicast << ' '
+      << std::hex << ntohl(ioctl_addr) << std::dec
+      << " not in "
+      << ToString(getifaddrs_addrs);
 }
 
 TEST(ifaddrs, getifaddrs_INET) {