mirror of
https://github.com/catchorg/Catch2.git
synced 2026-07-06 00:20:47 +02:00
0b2af56271
In case the warning -Werror=conversion is active with GCC, the warnings about "conversion from A to B may change value" lead to a compilation error. This explicitly convert the values to address these warnings.
38 lines
1.2 KiB
C++
38 lines
1.2 KiB
C++
|
|
// Copyright Catch2 Authors
|
|
// Distributed under the Boost Software License, Version 1.0.
|
|
// (See accompanying file LICENSE.txt or copy at
|
|
// https://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
#include <catch2/catch_timer.hpp>
|
|
|
|
#include <chrono>
|
|
|
|
namespace Catch {
|
|
|
|
namespace {
|
|
static auto getCurrentNanosecondsSinceEpoch() -> uint64_t {
|
|
return std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::steady_clock::now().time_since_epoch()).count();
|
|
}
|
|
} // end unnamed namespace
|
|
|
|
void Timer::start() {
|
|
m_nanoseconds = getCurrentNanosecondsSinceEpoch();
|
|
}
|
|
auto Timer::getElapsedNanoseconds() const -> uint64_t {
|
|
return getCurrentNanosecondsSinceEpoch() - m_nanoseconds;
|
|
}
|
|
auto Timer::getElapsedMicroseconds() const -> uint64_t {
|
|
return getElapsedNanoseconds()/1000;
|
|
}
|
|
auto Timer::getElapsedMilliseconds() const -> unsigned int {
|
|
return static_cast<unsigned int>(getElapsedMicroseconds()/1000);
|
|
}
|
|
auto Timer::getElapsedSeconds() const -> double {
|
|
return static_cast<double>(getElapsedMicroseconds())/1000000.0;
|
|
}
|
|
|
|
|
|
} // namespace Catch
|