diff --git a/include/internal/catch_timer.cpp b/include/internal/catch_timer.cpp index 3253f1f4..fad86f85 100644 --- a/include/internal/catch_timer.cpp +++ b/include/internal/catch_timer.cpp @@ -12,8 +12,8 @@ namespace Catch { - auto getCurrentMicrosecondsSinceEpoch() -> uint64_t { - return std::chrono::duration_cast( std::chrono::high_resolution_clock::now().time_since_epoch() ).count(); + auto getCurrentNanosecondsSinceEpoch() -> uint64_t { + return std::chrono::duration_cast( std::chrono::high_resolution_clock::now().time_since_epoch() ).count(); } } // namespace Catch diff --git a/include/internal/catch_timer.h b/include/internal/catch_timer.h index 2533b02f..d9c381c1 100644 --- a/include/internal/catch_timer.h +++ b/include/internal/catch_timer.h @@ -12,16 +12,19 @@ namespace Catch { - auto getCurrentMicrosecondsSinceEpoch() -> uint64_t; + auto getCurrentNanosecondsSinceEpoch() -> uint64_t; class Timer { - uint64_t m_microSeconds = 0; + uint64_t m_nanoseconds = 0; public: void start() { - m_microSeconds = getCurrentMicrosecondsSinceEpoch(); + m_nanoseconds = getCurrentNanosecondsSinceEpoch(); + } + auto getElapsedNanoseconds() const -> unsigned int { + return static_cast(getCurrentNanosecondsSinceEpoch() - m_nanoseconds); } auto getElapsedMicroseconds() const -> unsigned int { - return static_cast(getCurrentMicrosecondsSinceEpoch() - m_microSeconds); + return static_cast(getElapsedNanoseconds()/1000); } auto getElapsedMilliseconds() const -> unsigned int { return static_cast(getElapsedMicroseconds()/1000);