[libcamera-devel] [PATCH 06/12] test: message: Remove incorrect slow receiver test

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sun Jan 21 04:59:42 CET 2024


The slow receiver test verifies there's no race condition between
concurrent message delivery and object deletion. This is no a valid use
case in the first place, as objects are not allowed to be deleted from a
different thread than the one they are bound to. Remove the incorrect
test.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 test/message.cpp | 34 ----------------------------------
 1 file changed, 34 deletions(-)

diff --git a/test/message.cpp b/test/message.cpp
index 0e76f323e3b9..a34e0f0b5e10 100644
--- a/test/message.cpp
+++ b/test/message.cpp
@@ -93,25 +93,6 @@ private:
 	bool success_;
 };
 
-class SlowMessageReceiver : public Object
-{
-protected:
-	void message(Message *msg)
-	{
-		if (msg->type() != Message::None) {
-			Object::message(msg);
-			return;
-		}
-
-		/*
-		 * Don't access any member of the object here (including the
-		 * vtable) as the object will be deleted by the main thread
-		 * while we're sleeping.
-		 */
-		this_thread::sleep_for(chrono::milliseconds(100));
-	}
-};
-
 class MessageTest : public Test
 {
 protected:
@@ -148,21 +129,6 @@ protected:
 			break;
 		}
 
-		/*
-		 * Test for races between message delivery and object deletion.
-		 * Failures result in assertion errors, there is no need for
-		 * explicit checks.
-		 */
-		SlowMessageReceiver *slowReceiver = new SlowMessageReceiver();
-		slowReceiver->moveToThread(&thread_);
-		slowReceiver->postMessage(std::make_unique<Message>(Message::None));
-
-		this_thread::sleep_for(chrono::milliseconds(10));
-
-		delete slowReceiver;
-
-		this_thread::sleep_for(chrono::milliseconds(100));
-
 		/*
 		 * Test recursive calls to Thread::dispatchMessages(). Messages
 		 * should be delivered correctly, without crashes or memory
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list