diff options
Diffstat (limited to 'test/util_test.cpp')
-rw-r--r-- | test/util_test.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/util_test.cpp b/test/util_test.cpp new file mode 100644 index 0000000..9c1e30d --- /dev/null +++ b/test/util_test.cpp @@ -0,0 +1,26 @@ +#include <opentracing/util.h> +#include <cmath> +#include <cstdlib> // Work around to https://stackoverflow.com/a/30084734. +using namespace opentracing; + +#define CATCH_CONFIG_MAIN +#include <opentracing/catch2/catch.hpp> + +TEST_CASE("convert_time_point") { + SECTION("We can convert between time points of different clocks") { + // Check that converting from a system_clock time_point to a steady_clock + // time point and then back again produces approximately the same + // system_clock time_point. + auto t1 = SystemClock::now(); + auto t2 = convert_time_point<SteadyClock>(t1); + auto t3 = convert_time_point<SystemClock>(t2); + auto difference = std::abs( + std::chrono::duration_cast<std::chrono::microseconds>(t3 - t1).count()); + CHECK(difference < 100); + } + + SECTION("Converting times from the same clock gives the identity") { + auto t = SystemClock::now(); + CHECK(t == convert_time_point<SystemClock>(t)); + } +} |