[libcamera-devel,v1.1,9/9] test: timer: Test start() with absolute deadline

Message ID 20191006054255.15655-1-laurent.pinchart@ideasonboard.com
State Accepted
Headers show
Series
  • Untitled series #523
Related show

Commit Message

Laurent Pinchart Oct. 6, 2019, 5:42 a.m. UTC
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 test/timer.cpp | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

Patch

diff --git a/test/timer.cpp b/test/timer.cpp
index 5ff94dbbdeb0..63e5a1d24041 100644
--- a/test/timer.cpp
+++ b/test/timer.cpp
@@ -35,6 +35,15 @@  public:
 		Timer::start(msec);
 	}
 
+	void start(std::chrono::steady_clock::time_point deadline)
+	{
+		count_ = 0;
+		start_ = std::chrono::steady_clock::now();
+		expiration_ = std::chrono::steady_clock::time_point();
+
+		Timer::start(deadline);
+	}
+
 	int jitter()
 	{
 		std::chrono::steady_clock::duration duration = expiration_ - deadline();
@@ -127,6 +136,16 @@  protected:
 			return TestFail;
 		}
 
+		/* Timer with absolute deadline. */
+		timer.start(std::chrono::steady_clock::now() + std::chrono::milliseconds(200));
+
+		dispatcher->processEvents();
+
+		if (timer.hasFailed()) {
+			cout << "Absolute timer test failed" << endl;
+			return TestFail;
+		}
+
 		/* Two timers. */
 		timer.start(1000);
 		timer2.start(300);