diff options
Diffstat (limited to 'tests/libntp/sockaddrtest.h')
-rw-r--r-- | tests/libntp/sockaddrtest.h | 95 |
1 files changed, 47 insertions, 48 deletions
diff --git a/tests/libntp/sockaddrtest.h b/tests/libntp/sockaddrtest.h index 4baac4dd73ee5..f9a9fde41ee8f 100644 --- a/tests/libntp/sockaddrtest.h +++ b/tests/libntp/sockaddrtest.h @@ -1,58 +1,57 @@ #ifndef TESTS_SOCKADDRTEST_H #define TESTS_SOCKADDRTEST_H -#include "libntptest.h" - -extern "C" { #include "ntp.h" -}; - -class sockaddrtest : public libntptest { -protected: - ::testing::AssertionResult IsEqual(const sockaddr_u &expected, const sockaddr_u &actual) { - if (expected.sa.sa_family != actual.sa.sa_family) { - return ::testing::AssertionFailure() - << "Expected sa_family: " << expected.sa.sa_family - << " but got: " << actual.sa.sa_family; - } +#include "ntp_stdlib.h" - if (actual.sa.sa_family == AF_INET) { // IPv4 - if (expected.sa4.sin_port == actual.sa4.sin_port && - memcmp(&expected.sa4.sin_addr, &actual.sa4.sin_addr, - sizeof(in_addr)) == 0) { - return ::testing::AssertionSuccess(); - } else { - return ::testing::AssertionFailure() - << "IPv4 comparision failed, expected: " - << expected.sa4.sin_addr.s_addr - << "(" << socktoa(&expected) << ")" - << " but was: " - << actual.sa4.sin_addr.s_addr - << "(" << socktoa(&actual) << ")"; - } - } else if (actual.sa.sa_family == AF_INET6) { //IPv6 - if (expected.sa6.sin6_port == actual.sa6.sin6_port && - memcmp(&expected.sa6.sin6_addr, &actual.sa6.sin6_addr, - sizeof(in6_addr)) == 0) { - return ::testing::AssertionSuccess(); - } else { - return ::testing::AssertionFailure() - << "IPv6 comparision failed"; - } - } else { // Unknown family - return ::testing::AssertionFailure() - << "Unknown sa_family: " << actual.sa.sa_family; - } - } +sockaddr_u CreateSockaddr4(const char* address, unsigned int port) { + sockaddr_u s; + s.sa4.sin_family = AF_INET; + s.sa4.sin_addr.s_addr = inet_addr(address); + SET_PORT(&s, port); - sockaddr_u CreateSockaddr4(const char* address, unsigned int port) { - sockaddr_u s; - s.sa4.sin_family = AF_INET; - s.sa4.sin_addr.s_addr = inet_addr(address); - SET_PORT(&s, port); + return s; +} - return s; +int IsEqual(const sockaddr_u expected, const sockaddr_u actual) { + struct in_addr in; + struct in6_addr in6; + + if (expected.sa.sa_family != actual.sa.sa_family) { + //<< "Expected sa_family: " << expected.sa.sa_family + //<< " but got: " << actual.sa.sa_family; + return FALSE; } -}; + + if (actual.sa.sa_family == AF_INET) { // IPv4 + if (expected.sa4.sin_port == actual.sa4.sin_port && + memcmp(&expected.sa4.sin_addr, &actual.sa4.sin_addr, + sizeof( in )) == 0) { + return TRUE; + } else { + //<< "IPv4 comparision failed, expected: " + //<< expected.sa4.sin_addr.s_addr + //<< "(" << socktoa(&expected) << ") but was: " + //<< actual.sa4.sin_addr.s_addr "(" << socktoa(&actual) << ")"; + return FALSE; + } + } else if (actual.sa.sa_family == AF_INET6) { //IPv6 + if (expected.sa6.sin6_port == actual.sa6.sin6_port && + memcmp(&expected.sa6.sin6_addr, &actual.sa6.sin6_addr, + sizeof(in6)) == 0) { + return TRUE; + } else { + printf("IPv6 comparision failed"); + return FALSE; + } + } else { // Unknown family + printf("Unknown sa_family: ");// << actual.sa.sa_family; + return FALSE; + } +} + #endif // TESTS_SOCKADDRTEST_H + + + |