[libcamera-devel] [PATCH v2 3/3] test: thread: Test waiting on a thread that is not running

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Feb 13 13:45:38 CET 2020


Test that Thread::wait() on a thread that hasn't been started, or on a
thread that is known to have completed, returns without a timeout.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 test/threads.cpp | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/test/threads.cpp b/test/threads.cpp
index 1fa26020ce5c..0454761de12c 100644
--- a/test/threads.cpp
+++ b/test/threads.cpp
@@ -101,6 +101,25 @@ protected:
 
 		delete thread;
 
+		/* Test waiting on a thread that isn't running. */
+		thread = new Thread();
+
+		timeout = !thread->wait();
+		if (timeout) {
+			cout << "Waiting for non-started thread timed out" << endl;
+			return TestFail;
+		}
+
+		thread->start();
+		thread->exit(0);
+		thread->wait();
+
+		timeout = !thread->wait();
+		if (timeout) {
+			cout << "Waiting for already stopped thread timed out" << endl;
+			return TestFail;
+		}
+
 		return TestPass;
 	}
 
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list