From: Linux Karlsson Date: Wed, 28 Jul 2010 20:59:08 +0000 (+0200) Subject: Added tests for some utilities functions. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=17a7cc0496d63004a4cbbd8be328756a441013db;p=thirdparty%2Fntp.git Added tests for some utilities functions. bk: 4c509a1cT7OM4aHvlRwrW9iITlDRWw --- diff --git a/tests/sntp/Makefile.am b/tests/sntp/Makefile.am index 7e1c1a38d3..a390bc82ac 100644 --- a/tests/sntp/Makefile.am +++ b/tests/sntp/Makefile.am @@ -5,7 +5,8 @@ sntp_src = $(top_builddir)/sntp sntp_SOURCES_USED = $(sntp_src)/crypto.o \ $(sntp_src)/kod_management.o \ $(sntp_src)/log.o \ - $(sntp_src)/sntp-opts.o + $(sntp_src)/sntp-opts.o \ + $(sntp_src)/utilities.o base_SOURCES = ../main.cpp \ sntptest.cpp @@ -13,7 +14,8 @@ base_SOURCES = ../main.cpp \ tests_SOURCES = $(base_SOURCES) \ keyFile.cpp \ kodDatabase.cpp \ - kodFile.cpp + kodFile.cpp \ + utilities.cpp LDADD = @GTEST_LDFLAGS@ \ @GTEST_LIBS@ \ diff --git a/tests/sntp/utilities.cpp b/tests/sntp/utilities.cpp new file mode 100644 index 0000000000..857fb4bf3a --- /dev/null +++ b/tests/sntp/utilities.cpp @@ -0,0 +1,66 @@ +#include "sntptest.h" + +extern "C" { +#include "utilities.h" +}; + +class utilitiesTest : public sntptest { +protected: + sockaddr_u CreateSockaddr4(const char* address) { + sockaddr_u s; + s.sa4.sin_family = AF_INET; + s.sa4.sin_addr.s_addr = inet_addr(address); + SET_PORT(&s, 123); + + return s; + } + + addrinfo CreateAddrinfo(sockaddr_u* sock) { + addrinfo a; + a.ai_family = sock->sa.sa_family; + if (a.ai_family == AF_INET) { + a.ai_addrlen = sizeof(sockaddr_in); + } else { + a.ai_addrlen = sizeof(sockaddr_in6); + } + a.ai_addr = &sock->sa; + return a; + } +}; + +/* + * These tests are essentially a copy of the tests for socktoa() + * in libntp. If sntp switches to using that functions, these + * tests can be removed. + */ + +TEST_F(utilitiesTest, IPv4Address) { + const char* ADDR = "192.0.2.10"; + + sockaddr_u input = CreateSockaddr4(ADDR); + addrinfo inputA = CreateAddrinfo(&input); + + EXPECT_STREQ(ADDR, ss_to_str(&input)); + EXPECT_STREQ(ADDR, addrinfo_to_str(&inputA)); +} + +TEST_F(utilitiesTest, IPv6Address) { + const struct in6_addr address = { + 0x20, 0x01, 0x0d, 0xb8, + 0x85, 0xa3, 0x08, 0xd3, + 0x13, 0x19, 0x8a, 0x2e, + 0x03, 0x70, 0x73, 0x34 + }; + + const char* expected = + "2001:db8:85a3:8d3:1319:8a2e:370:7334"; + + sockaddr_u input; + input.sa6.sin6_family = AF_INET6; + input.sa6.sin6_addr = address; + + addrinfo inputA = CreateAddrinfo(&input); + + EXPECT_STREQ(expected, ss_to_str(&input)); + EXPECT_STREQ(expected, addrinfo_to_str(&inputA)); +}