diff options
author | Cy Schubert <cy@FreeBSD.org> | 2014-12-20 22:52:39 +0000 |
---|---|---|
committer | Cy Schubert <cy@FreeBSD.org> | 2014-12-20 22:52:39 +0000 |
commit | b5e14a1344528861a7016aa2c6b0f2e9630d1526 (patch) | |
tree | f04bed14f7e8aed5c0e9d2f7785175c7951036d3 /tests/libntp/refnumtoa.cpp | |
parent | 2b45e011ca352ce509bc83ae148230aeee0c7e0d (diff) | |
download | src-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.cpp | 52 |
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 */ |