diff options
author | Piotr Dziwinski <piotrdz@gmail.com> | 2013-03-24 00:03:37 +0100 |
---|---|---|
committer | Piotr Dziwinski <piotrdz@gmail.com> | 2013-03-24 12:00:12 +0100 |
commit | 195d6cded05f7ef5bde695ee047b341a0265eab3 (patch) | |
tree | af6ffa3622ae9bf7f2f5f065e269e86a019af854 /test/unit/app/system_windows_test.cpp | |
parent | c211b001d2a4c9b36034a812650f1a2ac693ee54 (diff) | |
download | colobot-195d6cded05f7ef5bde695ee047b341a0265eab3.tar.gz colobot-195d6cded05f7ef5bde695ee047b341a0265eab3.tar.bz2 colobot-195d6cded05f7ef5bde695ee047b341a0265eab3.zip |
Fixed timer functions on win32
* changed win32 implementation to QueryPerformaceTimer system function
* refactored system utils code
* proper tests for time utils and update event creation in application
* should fix issue #134
Diffstat (limited to 'test/unit/app/system_windows_test.cpp')
-rw-r--r-- | test/unit/app/system_windows_test.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/test/unit/app/system_windows_test.cpp b/test/unit/app/system_windows_test.cpp new file mode 100644 index 0000000..79f8c7f --- /dev/null +++ b/test/unit/app/system_windows_test.cpp @@ -0,0 +1,62 @@ +#include "app/system.h" +#include "app/system_windows.h" + +#include <gtest/gtest.h> + +class CSystemUtilsWindowsWrapper : public CSystemUtilsWindows +{ +public: + CSystemUtilsWindowsWrapper() {} + + void SetFrequency(long long counterFrequency) + { + m_counterFrequency = counterFrequency; + } +}; + +class SystemUtilsWindowsUT : public testing::Test +{ +protected: + static const long long SEC = 1000000000; + + CSystemUtilsWindowsWrapper systemUtils; +}; + + +TEST_F(SystemUtilsWindowsUT, TimerResolution) +{ + systemUtils.SetFrequency(SEC); + EXPECT_EQ(1u, systemUtils.GetTimeStampExactResolution()); + + systemUtils.SetFrequency(SEC/3); + EXPECT_EQ(3u, systemUtils.GetTimeStampExactResolution()); +} + +TEST_F(SystemUtilsWindowsUT, TimeStampDiff) +{ + systemUtils.SetFrequency(SEC); + + SystemTimeStamp before, after; + + before.counterValue = 100; + after.counterValue = 200; + + long long tDiff = systemUtils.TimeStampExactDiff(&before, &after); + EXPECT_EQ( 100, tDiff); + + tDiff = systemUtils.TimeStampExactDiff(&after, &before); + EXPECT_EQ(-100, tDiff); + + // ------- + + systemUtils.SetFrequency(SEC/3); + + before.counterValue = 200; + after.counterValue = 400; + + tDiff = systemUtils.TimeStampExactDiff(&before, &after); + EXPECT_EQ( 200*3, tDiff); + + tDiff = systemUtils.TimeStampExactDiff(&after, &before); + EXPECT_EQ(-200*3, tDiff); +} |