[interfacekit] Re: Broken BMessage

Following Ingo's very clear instructions, I was able to confirm that any BMessage-related issues with BAppFileInfo appear to be fixed. There are still unit test failures, but these have to do with MIME type installation failing. The problem appears to be in Database::Install() (in /src/kits/storage/mime/Database.cpp); if /boot/home/config/settings/obos_mime/application (I think that's what it's called) doesn't exist, the function simply errs out, rather than creating the directory, which seems to me the appropriate thing to do. Obviously, Storage Kit is not my baliwick, so I haven't attempted to make a fix/*really* messed things up. ;)

I'll be trying to find time to diagnose and fix the remaining issues next week.

Thanks,

e

Erik Jaesler wrote:

I finally found the time to do some work. Fixed the SendMessageTest1() issue (BMessage::fWasDelivered wasn't getting initialized when unflattening); that now passes. Unfortunately, the OBOS version of the unit tests for storage kit don't seem to get loaded, though everything looks correct: the lib is in the right place and is exporting the right entry point. If anybody has any idea why that might be, I'd love some suggestions; otherwise I'll have to do a debug build of the testing framework and step through. =P

Couldn't get anywhere with the BApplication tests, on account of app_server dying on a strcmp() in CursorManager::RemoveAppCursors() during QuitTest2(). Anyway, still pokin' away here when time presents itself. =)

e


The BNodeInfo test still crashes the registrar:

loading symbols
segment violation occurred
memcpy_pIII:
memcpy_pIII:
+0047 ec0912e7: * 068a movb (%esi), %al
main_mime:sc
frame retaddr
fd081fac ecfb43c4 BPrivate::BDataBuffer::BDataReference::Create(void

*,


unsigned long, BPrivate::BDataBuffer::BDataReference *&, bool) +

00000038

fd081fd8 ecfb42c6 BPrivate::BDataBuffer::BDataBuffer(void *,

unsigned


long, bool) + 0000002a
fd081ff8 ecfbe767 BMessage::AddData(char const *, unsigned long,

void


const *, long, bool, long) + 00000313
fd082034   ecfbcc16  BMessage::Unflatten(BDataIO *) + 0000060a
fd08219c   ecfbc5b4  BMessage::Unflatten(char const *) + 00000030
fd0821f0   ecfba1d6  BLooper::ConvertToMessage(void *, long) + 00000066
fd082214   ecfba152  BLooper::ReadMessageFromPort(long long) + 00000046
fd082248   ecfb99f9  BLooper::MessageFromPort(long long) + 00000021
fd082260   ecfba284  BLooper::task_looper(void) + 00000048
fd08228c   ecfba05a  BLooper::_task0_(void *) + 00000036
fd0822a0   ec0851ed  thread_start + 00000039
main_mime:

The BAppFileInfo unit test doesn't crash anymore in the "Supported

Types


Test", but the test case fails and the following test case ("Icon

Test")


hangs. It seems like the "main_mime" thread (a BLooper thread) gets terminated somehow and the test app is waiting for a reply on a

temporary


message port for good. The same holds for the BMimeType unit test.

The BApplication unit test (the remote application, to be precise)

crashs:

loading symbols
segment violation occurred
BMessage::Unflatten(BDataIO *):
Unflatten__8BMessageP7BDataIO:
+05d3  ecfbcbdf:   *          068b    movl    (%esi), %eax
AppRunTestApp1:sc
 frame         retaddr
fd0015d8   ecfbc5b4  BMessage::Unflatten(char const *) + 00000030
fd00162c   ecfba1d6  BLooper::ConvertToMessage(void *, long) + 00000066
fd001650   ecfba152  BLooper::ReadMessageFromPort(long long) + 00000046
fd001684   ecfb99f9  BLooper::MessageFromPort(long long) + 00000021
fd00169c   ecfba284  BLooper::task_looper(void) + 00000048
fd0016c8   ecfb2780  BApplication::run_task(void) + 00000028
fd0016d8   ecfb188e  BApplication::Run(void) + 00000056
fd0016f0   80002809  CommonTestApp::Run(void) + 0000001d
fd001708   800023ae  main + 0000008e
fd001844   80002205  _start + 00000061
AppRunTestApp1:

Furthermore the BMessenger::SendMessageTest1 test case fails.

CU, Ingo




Necessity is the plea for every infringement of human freedom. It is the argument of tyrants; it is the creed of slaves.
-William Pitt, British prime-minister (1759-1806)





Other related posts: