added a test for message forward

on R5 it seems a reply to a asynchronously-forwarded synchronous BMessage is the same as when no forward happens
I didn't test on Haiku, but I suspect the behavior is different, especially a _previous_ is added as for asynchronous BMessages


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17814 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval 2006-06-13 11:28:36 +00:00
parent 32553c9788
commit bb2242b422
2 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,55 @@
#include <stdio.h>
#include <Application.h>
#include <Looper.h>
class MyLooper : public BLooper
{
public:
MyLooper(BLooper *looper) : BLooper("test") {
printf("Looper created\n");
fLooper = looper;
};
virtual void MessageReceived(BMessage *msg) {
printf("MessageReceived : %.4s\n", (char*)&msg->what);
switch (msg->what) {
case 'toto':
if (fLooper) {
BMessenger(fLooper).SendMessage(msg);
break;
}
msg->SendReply('couc');
break;
default:
BLooper::MessageReceived(msg);
}
};
BLooper *fLooper;
};
class App : public BApplication
{
public:
App() : BApplication("application/test") {
};
virtual void ReadyToRun() {
MyLooper looper2(NULL);
looper2.Run();
MyLooper looper1(&looper2);
looper1.Run();
printf("loopers run\n");
BMessage reply;
BMessenger(&looper1).SendMessage('toto', &reply);
printf("message sent and replied\ncheck there is only a 'couc' what in the reply\n");
reply.PrintToStream();
exit(0);
};
};
int main()
{
App().Run();
}

View File

@ -9,4 +9,9 @@ UnitTest SMRemoteTargetApp
: be $(TARGET_LIBSTDC++)
;
SimpleTest ForwardMessageTest :
ForwardMessageTest.cpp
: be
;
SubInclude HAIKU_TOP src tests kits app bmessenger testapps ;