From 7d601e6cdf81fe3251d89d2f5146cb95be316fa1 Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Sat, 31 Oct 2009 20:33:09 +0000 Subject: [PATCH] Added a test for a weird messaging behaviour git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33854 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../messaging/HandlerLooperMessageTest.cpp | 79 +++++++++++++++++++ src/tests/kits/app/messaging/Jamfile | 5 ++ 2 files changed, 84 insertions(+) create mode 100644 src/tests/kits/app/messaging/HandlerLooperMessageTest.cpp diff --git a/src/tests/kits/app/messaging/HandlerLooperMessageTest.cpp b/src/tests/kits/app/messaging/HandlerLooperMessageTest.cpp new file mode 100644 index 0000000000..1a84b666c2 --- /dev/null +++ b/src/tests/kits/app/messaging/HandlerLooperMessageTest.cpp @@ -0,0 +1,79 @@ +#include +#include +#include + +#include + +const int32 kMessage = 'MeXX'; + +class Looper : public BLooper { +public: + Looper(); + virtual void MessageReceived(BMessage *message); +}; + + +class Handler : public BHandler { +public: + Handler(); + virtual void MessageReceived(BMessage *message); +}; + +int main() +{ + Looper *looper = new Looper(); + Handler *handler = new Handler(); + looper->AddHandler(new Handler()); + looper->AddHandler(new Handler()); + looper->AddHandler(handler); + looper->AddHandler(new Handler()); + looper->AddHandler(new Handler()); + + looper->Run(); + + looper->PostMessage(new BMessage(kMessage), handler); + + snooze(1000000); + + looper->Lock(); + looper->Quit(); +} + + +Looper::Looper() + : + BLooper("looper") +{ +} + + +void +Looper::MessageReceived(BMessage *message) +{ + switch (message->what) { + case kMessage: + printf("Message received by Looper\n"); + break; + default: + BLooper::MessageReceived(message); + break; + } +} + + +Handler::Handler() + : + BHandler("handler") +{ +} + + +void +Handler::MessageReceived(BMessage *message) +{ + switch (message->what) { + default: + BHandler::MessageReceived(message); + break; + } +} diff --git a/src/tests/kits/app/messaging/Jamfile b/src/tests/kits/app/messaging/Jamfile index 80c16ae306..3c2cc47280 100644 --- a/src/tests/kits/app/messaging/Jamfile +++ b/src/tests/kits/app/messaging/Jamfile @@ -23,3 +23,8 @@ SEARCH on [ FGristFiles PortLink.cpp LinkReceiver.cpp LinkSender.cpp ] SEARCH on [ FGristFiles Shape.cpp Region.cpp RegionSupport.cpp ] = [ FDirName $(HAIKU_TOP) src kits interface ] ; + +SimpleTest HandlerLooperMessageTest : + HandlerLooperMessageTest.cpp + : be $(TARGET_LIBSTDC++) + ;