summaryrefslogtreecommitdiffstats
path: root/contrib/ntp/tests/libntp/g_timestructs.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ntp/tests/libntp/g_timestructs.h')
-rw-r--r--contrib/ntp/tests/libntp/g_timestructs.h185
1 files changed, 0 insertions, 185 deletions
diff --git a/contrib/ntp/tests/libntp/g_timestructs.h b/contrib/ntp/tests/libntp/g_timestructs.h
deleted file mode 100644
index 7bc4ffd..0000000
--- a/contrib/ntp/tests/libntp/g_timestructs.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * timestructs.h -- test bed adaptors for time structs.
- *
- * Written by Juergen Perlinger (perlinger@ntp.org) for the NTP project.
- * The contents of 'html/copyright.html' apply.
- *
- * Some wrapper classes and a closeness predicate that are used to
- * bridge the gap between the goggletest framework and the structs used
- * for representing time stamps (l_fp, struct timeval, struct timespec).
- *
- * Some ostream conversion operators are provided to give diagnostic
- * output on errors. The normal string conversion functions will give
- * HRVs (human readable values) but we might also be interested in the
- * machine representation for diagnostic purposes.
- */
-#ifndef TIMESTRUCTS_H
-#define TIMESTRUCTS_H
-
-extern "C" {
-#include "ntp_fp.h"
-}
-
-namespace timeStruct {
-
-// wrap a l_fp struct with common operations
-class l_fp_wrap {
- public:
- l_fp V;
-
- l_fp_wrap()
- { ZERO(V); }
- l_fp_wrap(u_int32 hi, u_int32 lo)
- { V.l_ui = hi; V.l_uf = lo; }
- l_fp_wrap(const l_fp &rhs)
- { V = rhs; }
- bool operator == (const l_fp_wrap& rhs) const
- { return L_ISEQU(&V, &rhs.V); }
- operator l_fp* ()
- { return &V; }
- operator l_fp& ()
- { return V; }
- l_fp_wrap & operator = (const l_fp_wrap& rhs)
- { V = rhs.V; return *this; }
- l_fp_wrap& operator = (const l_fp& rhs)
- { V = rhs; return *this; }
- };
-
-// wrap a 'struct timeval' with common operations
-class timeval_wrap {
-public:
- struct timeval V;
-
- timeval_wrap()
- { ZERO(V); }
- timeval_wrap(time_t hi, long lo)
- { V.tv_sec = hi; V.tv_usec = lo; }
- timeval_wrap(const struct timeval & rhs)
- { V = rhs; }
- timeval_wrap(const timeval_wrap & rhs)
- { V = rhs.V; }
- bool operator == (const timeval_wrap& rhs) const
- { return V.tv_sec == rhs.V.tv_sec &&
- V.tv_usec == rhs.V.tv_usec ; }
- bool valid() const
- { return V.tv_usec >= 0 && V.tv_usec < 1000000; }
- operator struct timeval* ()
- { return &V; }
- operator struct timeval& ()
- { return V; }
- timeval_wrap& operator = (const timeval_wrap& rhs)
- { V = rhs.V; return *this; }
- timeval_wrap& operator = (const struct timeval& rhs)
- { V = rhs; return *this; }
-};
-
-// wrap a 'struct timespec' with common operations
-class timespec_wrap {
-public:
- struct timespec V;
-
- timespec_wrap()
- { ZERO(V); }
- timespec_wrap(time_t hi, long lo)
- { V.tv_sec = hi; V.tv_nsec = lo; }
- timespec_wrap(const struct timespec & rhs)
- { V = rhs; }
- timespec_wrap(const timespec_wrap & rhs)
- { V = rhs.V; }
- bool operator == (const timespec_wrap& rhs) const
- { return V.tv_sec == rhs.V.tv_sec &&
- V.tv_nsec == rhs.V.tv_nsec ; }
- bool valid() const
- { return V.tv_nsec >= 0 && V.tv_nsec < 1000000000; }
- operator struct timespec* ()
- { return &V; }
- operator struct timespec& ()
- { return V; }
- timespec_wrap& operator = (const timespec_wrap& rhs)
- { V = rhs.V; return *this; }
- timespec_wrap& operator = (const struct timespec& rhs)
- { V = rhs; return *this; }
-};
-
-// l_fp closeness testing predicate
-//
-// This predicate is used for the closeness ('near') testing of l_fp
-// values. Once constructed with a limit, it can be used to check the
-// absolute difference of two l_fp structs against that limit; if the
-// difference is less or equal to this limit, the test passes.
-class AssertFpClose {
-private:
- l_fp limit;
-
-public:
- AssertFpClose(u_int32 hi, u_int32 lo);
-
- ::testing::AssertionResult
- operator()(const char* m_expr, const char* n_expr,
- const l_fp & m, const l_fp & n);
-};
-
-
-// timeval closeness testing predicate
-//
-// CAVEAT: This class uses the timevalops functions
-// - sub_tval
-// - abs_tval
-// - cmp_tval
-//
-// This creates a dependency loop of sorts. The loop is defused by the
-// fact that these basic operations can be tested by exact value tests,
-// so once the basic timeval operations passed it's safe to use this
-// predicate.
-class AssertTimevalClose {
-private:
- struct timeval limit;
-
-public:
- // note: (hi,lo) should be a positive normalised timeval;
- // the constructor does not normalise the values!
- AssertTimevalClose(time_t hi, int32 lo);
-
- ::testing::AssertionResult
- operator()(const char* m_expr, const char* n_expr,
- const struct timeval & m, const struct timeval & n);
-};
-
-
-// timespec closeness testing predicate
-//
-// CAVEAT: This class uses the timespecops functions
-// - sub_tspec
-// - abs_tspec
-// - cmp_tspec
-//
-// See the equivalent timeval helper.
-class AssertTimespecClose {
-private:
- struct timespec limit;
-
-public:
- // note: (hi,lo) should be a positive normalised timespec;
- // the constructor does not normalise the values!
- AssertTimespecClose(time_t hi, int32 lo);
-
- ::testing::AssertionResult
- operator()(const char* m_expr, const char* n_expr,
- const struct timespec & m, const struct timespec & n);
-};
-
-
-// since googletest wants to string format items, we declare the
-// necessary operators. Since all adaptors have only public members
-// there is need for friend declarations anywhere.
-
-extern std::ostream& operator << (std::ostream& os,
- const timeStruct::l_fp_wrap& val);
-extern std::ostream& operator << (std::ostream& os,
- const timeStruct::timeval_wrap& val);
-extern std::ostream& operator << (std::ostream& os,
- const timeStruct::timespec_wrap& val);
-
-} // namespace timeStruct
-
-#endif // TIMESTRUCTS_H
OpenPOWER on IntegriCloud