btrfs: Attempt to fix GCC2 build.
[haiku.git] / src / tests / system / kernel / port_close_test_2.cpp
blobd917ec6061b2d8afade4f434d41e0478f54d96dd
1 /*
2 * Copyright 2006, Marcus Overhagen, <marcus@overhagen.de>
3 * Distributed under the terms of the MIT License.
4 */
7 #include <OS.h>
8 #include <stdio.h>
9 #include <string.h>
11 int
12 main()
14 port_id id;
15 status_t s;
16 ssize_t size;
17 int32 code;
19 char data[100];
22 id = create_port(10, "test port");
23 printf("created port %ld\n", id);
25 s = write_port(id, 0x1234, data, 10);
26 printf("write port result 0x%08lx (%s)\n", s, strerror(s));
28 s = write_port(id, 0x5678, data, 20);
29 printf("write port result 0x%08lx (%s)\n", s, strerror(s));
31 s = close_port(id);
32 printf("close port result 0x%08lx (%s)\n", s, strerror(s));
34 // BeBook: does return B_BAD_PORT_ID if port was closed
35 s = write_port(id, 0x5678, data, 20);
36 printf("write port result 0x%08lx (%s)\n", s, strerror(s));
38 // BeBook: does block when port is empty, and unblocks when port is written to or deleted
39 size = port_buffer_size(id);
40 printf("port_buffer_size %ld (0x%08lx) (%s)\n", size, size, strerror(size));
42 // BeBook: does block when port is empty, and unblocks when port is written to or deleted
43 size = read_port(id, &code, data, sizeof(data));
44 printf("read port code %lx, size %ld (0x%08lx) (%s)\n", code, size, size, strerror(size));
46 // BeBook: does block when port is empty, and unblocks when port is written to or deleted
47 size = port_buffer_size(id);
48 printf("port_buffer_size %ld (0x%08lx) (%s)\n", size, size, strerror(size));
50 // BeBook: does block when port is empty, and unblocks when port is written to or deleted
51 size = read_port(id, &code, data, sizeof(data));
52 printf("read port code %lx, size %ld (0x%08lx) (%s)\n", code, size, size, strerror(size));
54 printf("read_port should fail now:\n");
56 // BeBook: does block when port is empty, and unblocks when port is written to or deleted
57 size = read_port(id, &code, data, sizeof(data));
58 printf("read port code %lx, size %ld (0x%08lx) (%s)\n", code, size, size, strerror(size));
60 return 0;