aboutsummaryrefslogtreecommitdiff
path: root/tests/libntp/refnumtoa.cpp
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2014-12-20 22:52:39 +0000
committerCy Schubert <cy@FreeBSD.org>2014-12-20 22:52:39 +0000
commitb5e14a1344528861a7016aa2c6b0f2e9630d1526 (patch)
treef04bed14f7e8aed5c0e9d2f7785175c7951036d3 /tests/libntp/refnumtoa.cpp
parent2b45e011ca352ce509bc83ae148230aeee0c7e0d (diff)
downloadsrc-vendor/ntp/4.2.8.tar.gz
src-vendor/ntp/4.2.8.zip
Vendor import ntp 4.2.8.vendor/ntp/4.2.8
Reviewed by: roberto Security: VUXML: 4033d826-87dd-11e4-9079-3c970e169bc2 Security: http://www.kb.cert.org/vuls/id/852879 Security: CVE-2014-9293 Security CVE-2014-9294 Security CVE-2014-9295 Security CVE-2014-9296
Diffstat (limited to 'tests/libntp/refnumtoa.cpp')
-rw-r--r--tests/libntp/refnumtoa.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/libntp/refnumtoa.cpp b/tests/libntp/refnumtoa.cpp
new file mode 100644
index 000000000000..75460c0b52ba
--- /dev/null
+++ b/tests/libntp/refnumtoa.cpp
@@ -0,0 +1,52 @@
+#include "libntptest.h"
+
+#include "ntp_net.h"
+#include "ntp_refclock.h"
+
+#include <sstream>
+
+class refnumtoaTest : public libntptest {
+protected:
+ /* Might need to be updated if a new refclock gets this id. */
+ static const int UNUSED_REFCLOCK_ID = 250;
+};
+
+#ifdef REFCLOCK /* clockname() is useless otherwise */
+TEST_F(refnumtoaTest, LocalClock) {
+ /* We test with a refclock address of type LOCALCLOCK.
+ * with id 8
+ */
+ u_int32 addr = REFCLOCK_ADDR;
+ addr |= REFCLK_LOCALCLOCK << 8;
+ addr |= 0x8;
+
+ sockaddr_u address;
+ address.sa4.sin_family = AF_INET;
+ address.sa4.sin_addr.s_addr = htonl(addr);
+
+ std::ostringstream expected;
+ expected << clockname(REFCLK_LOCALCLOCK)
+ << "(8)";
+
+ EXPECT_STREQ(expected.str().c_str(), refnumtoa(&address));
+}
+#endif /* REFCLOCK */
+
+#ifdef REFCLOCK /* refnumtoa() is useless otherwise */
+TEST_F(refnumtoaTest, UnknownId) {
+ /* We test with a currently unused refclock ID */
+ u_int32 addr = REFCLOCK_ADDR;
+ addr |= UNUSED_REFCLOCK_ID << 8;
+ addr |= 0x4;
+
+ sockaddr_u address;
+ address.sa4.sin_family = AF_INET;
+ address.sa4.sin_addr.s_addr = htonl(addr);
+
+ std::ostringstream expected;
+ expected << "REFCLK(" << UNUSED_REFCLOCK_ID
+ << ",4)";
+
+ EXPECT_STREQ(expected.str().c_str(), refnumtoa(&address));
+}
+#endif /* REFCLOCK */