test: message: Remove incorrect slow receiver test

The slow receiver test verifies there's no race condition between
concurrent message delivery and object deletion. This is not 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@ideasonboard.com>
Reviewed-by: Milan Zamazal <mzamazal@redhat.com>
This commit is contained in:
Laurent Pinchart 2024-01-21 04:40:59 +02:00
parent 1f5d485bfb
commit 652b47249a

View file

@ -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