8 const int32 kBufferSize
= 2048;
12 get_next_message(BPrivate::PortLink
&link
, int32 expectedCode
)
15 if (link
.GetNextMessage(code
) != B_OK
) {
16 fprintf(stderr
, "get message failed!\n");
19 if (code
!= expectedCode
) {
20 fprintf(stderr
, "code is wrong (%ld)!\n", code
);
29 port_id port
= create_port(100, "portlink");
31 BPrivate::PortLink
sender(port
, -1);
32 BPrivate::PortLink
receiver(-1, port
);
34 sender
.StartMessage('tst1');
35 sender
.Attach
<int32
>(42);
37 sender
.StartMessage('tst2');
38 sender
.AttachString(NULL
);
39 sender
.AttachString("");
40 sender
.AttachString("Gurkensalat");
42 sender
.StartMessage('tst3', 100000);
43 sender
.Attach(&port
, 100000);
44 if (sender
.EndMessage() == B_OK
) {
45 fprintf(stderr
, "attaching huge message succeded (it shouldn't)!\n");
50 char test
[kBufferSize
+ 2048];
51 sender
.StartMessage('tst4');
52 sender
.Attach(test
, kBufferSize
- 40);
55 sender
.StartMessage('tst5');
56 sender
.Attach(test
, sizeof(test
));
58 status_t status
= sender
.Flush();
60 fprintf(stderr
, "flushing messages failed: %ld, %s!\n",
61 status
, strerror(status
));
65 get_next_message(receiver
, 'tst1');
68 if (receiver
.Read
<int32
>(&value
) != B_OK
) {
69 fprintf(stderr
, "reading message failed!\n");
74 fprintf(stderr
, "value is wrong: %ld!\n", value
);
78 get_next_message(receiver
, 'tst2');
80 for (int32 i
= 0; i
< 4; i
++) {
82 if (receiver
.ReadString(&string
) != B_OK
) {
86 fprintf(stderr
, "reading string failed!\n");
89 fprintf(stderr
, "reading string succeeded, but shouldn't!\n");
95 get_next_message(receiver
, 'tst4');
96 get_next_message(receiver
, 'tst5');
99 status
= receiver
.GetNextMessage(code
, 0);
100 if (status
!= B_WOULD_BLOCK
) {
101 fprintf(stderr
, "reading would not block!\n");