diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-09-14 03:40:47 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-09-14 15:05:45 +0300 |
commit | cecfeed61e8bcb4b53c2ed8e1b26d8c8af38b8e3 (patch) | |
tree | 783fca9b32651efdca054ad152528b40f2566a74 /test | |
parent | 98dff063f2f497434978a46f9a676307365fd878 (diff) |
libcamera: Switch to the std::chrono API
Replace the clock_gettime()-based API with durations expressed as
integers with the std::chrono API.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'test')
-rw-r--r-- | test/event-dispatcher.cpp | 13 | ||||
-rw-r--r-- | test/timer.cpp | 17 |
2 files changed, 15 insertions, 15 deletions
diff --git a/test/event-dispatcher.cpp b/test/event-dispatcher.cpp index f243ec39..9f9cf178 100644 --- a/test/event-dispatcher.cpp +++ b/test/event-dispatcher.cpp @@ -5,6 +5,7 @@ * event-dispatcher.cpp - Event dispatcher test */ +#include <chrono> #include <iostream> #include <signal.h> #include <sys/time.h> @@ -47,8 +48,7 @@ protected: Timer timer; /* Event processing interruption by signal. */ - struct timespec start; - clock_gettime(CLOCK_MONOTONIC, &start); + std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now(); timer.start(1000); @@ -59,12 +59,11 @@ protected: dispatcher->processEvents(); - struct timespec stop; - clock_gettime(CLOCK_MONOTONIC, &stop); - int duration = (stop.tv_sec - start.tv_sec) * 1000; - duration += (stop.tv_nsec - start.tv_nsec) / 1000000; + std::chrono::steady_clock::time_point stop = std::chrono::steady_clock::now(); + std::chrono::steady_clock::duration duration = stop - start; + int msecs = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count(); - if (abs(duration - 1000) > 50) { + if (abs(msecs - 1000) > 50) { cout << "Event processing restart test failed" << endl; return TestFail; } diff --git a/test/timer.cpp b/test/timer.cpp index c30709d4..af922cb3 100644 --- a/test/timer.cpp +++ b/test/timer.cpp @@ -5,6 +5,7 @@ * timer.cpp - Timer test */ +#include <chrono> #include <iostream> #include <libcamera/event_dispatcher.h> @@ -28,28 +29,28 @@ public: void start(int msec) { interval_ = msec; - clock_gettime(CLOCK_MONOTONIC, &start_); - expiration_ = { 0, 0 }; + start_ = std::chrono::steady_clock::now(); + expiration_ = std::chrono::steady_clock::time_point(); Timer::start(msec); } int jitter() { - int duration = (expiration_.tv_sec - start_.tv_sec) * 1000; - duration += (expiration_.tv_nsec - start_.tv_nsec) / 1000000; - return abs(duration - interval_); + std::chrono::steady_clock::duration duration = expiration_ - start_; + int msecs = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count(); + return abs(msecs - interval_); } private: void timeoutHandler(Timer *timer) { - clock_gettime(CLOCK_MONOTONIC, &expiration_); + expiration_ = std::chrono::steady_clock::now(); } int interval_; - struct timespec start_; - struct timespec expiration_; + std::chrono::steady_clock::time_point start_; + std::chrono::steady_clock::time_point expiration_; }; class TimerTest : public Test |