From 550a21e40e8b92d7972ebdd80681fbb1b5e0b89e Mon Sep 17 00:00:00 2001 From: Andy Schwartzmeyer Date: Thu, 18 Aug 2016 15:25:47 -0700 Subject: [PATCH] Fix GetFullyQualifiedName() (#1915) Don't expect GetComputerName() (hostname) and FQDN to be the same. They may not be! --- .../test/test-getfullyqualifiedname.cpp | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/libpsl-native/test/test-getfullyqualifiedname.cpp b/src/libpsl-native/test/test-getfullyqualifiedname.cpp index 94c2947d6..7e11d740f 100644 --- a/src/libpsl-native/test/test-getfullyqualifiedname.cpp +++ b/src/libpsl-native/test/test-getfullyqualifiedname.cpp @@ -13,25 +13,18 @@ TEST(GetFullyQualifiedNameTest, ValidateLinuxGetFullyQualifiedDomainName) { std::string actual(GetFullyQualifiedName()); - std::string hostname(GetComputerName()); - // FQDN starts with hostname (which may be fully qualified) - EXPECT_LE(hostname, actual); + struct addrinfo hints, *info; + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + hints.ai_flags = AI_CANONNAME; + EXPECT_FALSE(getaddrinfo(hostname.c_str(), "http", &hints, &info)); - // hostname did not include domain name, so test it separately - if (hostname < actual) - { - struct addrinfo hints, *info; - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = SOCK_STREAM; - hints.ai_flags = AI_CANONNAME; - EXPECT_FALSE(getaddrinfo(hostname.c_str(), "http", &hints, &info)); + // Compare canonical name to FQDN + EXPECT_STREQ(info->ai_canonname, actual.c_str()); - // Compare canonical name to FQDN - EXPECT_STREQ(info->ai_canonname, actual.c_str()); + freeaddrinfo(info); - freeaddrinfo(info); - } }