diff options
author | 2016-11-12 10:20:42 +0100 | |
---|---|---|
committer | 2016-11-12 10:20:42 +0100 | |
commit | be98f6b83acf489daefe604e238e4657940b1e64 (patch) | |
tree | 07b91557b9f437db49683bb467841879b904540b /3rdparty/catch/include/internal/catch_timer.hpp | |
parent | 29212523d201c4ac7a64a5f8e967d725be6d3b6d (diff) |
Added Catch testing library (nw)
Diffstat (limited to '3rdparty/catch/include/internal/catch_timer.hpp')
-rw-r--r-- | 3rdparty/catch/include/internal/catch_timer.hpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/3rdparty/catch/include/internal/catch_timer.hpp b/3rdparty/catch/include/internal/catch_timer.hpp new file mode 100644 index 00000000000..2ba709e36dd --- /dev/null +++ b/3rdparty/catch/include/internal/catch_timer.hpp @@ -0,0 +1,63 @@ +/* + * Created by Phil on 05/08/2013. + * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. + * + * Distributed under the Boost Software License, Version 1.0. (See accompanying + * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + */ + +#include "catch_timer.h" +#include "catch_platform.h" + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#endif + +#ifdef CATCH_PLATFORM_WINDOWS +#include <windows.h> +#else +#include <sys/time.h> +#endif + +namespace Catch { + + namespace { +#ifdef CATCH_PLATFORM_WINDOWS + uint64_t getCurrentTicks() { + static uint64_t hz=0, hzo=0; + if (!hz) { + QueryPerformanceFrequency( reinterpret_cast<LARGE_INTEGER*>( &hz ) ); + QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &hzo ) ); + } + uint64_t t; + QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &t ) ); + return ((t-hzo)*1000000)/hz; + } +#else + uint64_t getCurrentTicks() { + timeval t; + gettimeofday(&t,CATCH_NULL); + return static_cast<uint64_t>( t.tv_sec ) * 1000000ull + static_cast<uint64_t>( t.tv_usec ); + } +#endif + } + + void Timer::start() { + m_ticks = getCurrentTicks(); + } + unsigned int Timer::getElapsedMicroseconds() const { + return static_cast<unsigned int>(getCurrentTicks() - m_ticks); + } + unsigned int Timer::getElapsedMilliseconds() const { + return static_cast<unsigned int>(getElapsedMicroseconds()/1000); + } + double Timer::getElapsedSeconds() const { + return getElapsedMicroseconds()/1000000.0; + } + +} // namespace Catch + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif |