From 7c862ee4412bc1db2e8bb5665725856942646f2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Fri, 1 Oct 2004 15:50:58 +0000 Subject: [PATCH] added comm tests git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9148 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tests/servers/input/Jamfile | 2 ++ src/tests/servers/input/comm/Jamfile | 5 ++++ src/tests/servers/input/comm/area.c | 25 ++++++++++++++++++++ src/tests/servers/input/comm/port.cpp | 33 +++++++++++++++++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 src/tests/servers/input/comm/Jamfile create mode 100644 src/tests/servers/input/comm/area.c create mode 100644 src/tests/servers/input/comm/port.cpp diff --git a/src/tests/servers/input/Jamfile b/src/tests/servers/input/Jamfile index 3d4d856f61..2c859573ff 100644 --- a/src/tests/servers/input/Jamfile +++ b/src/tests/servers/input/Jamfile @@ -1,5 +1,7 @@ SubDir OBOS_TOP src tests servers input ; +SubInclude OBOS_TOP src tests servers input comm ; SubInclude OBOS_TOP src tests servers input msgspy ; SubInclude OBOS_TOP src tests servers input portspy ; SubInclude OBOS_TOP src tests servers input prefs ; + diff --git a/src/tests/servers/input/comm/Jamfile b/src/tests/servers/input/comm/Jamfile new file mode 100644 index 0000000000..860b9ae8b3 --- /dev/null +++ b/src/tests/servers/input/comm/Jamfile @@ -0,0 +1,5 @@ +SubDir OBOS_TOP src tests servers input comm ; + +SimpleTest InputAreaTest : area.c ; +SimpleTest InputPortTest : port.cpp : be ; + diff --git a/src/tests/servers/input/comm/area.c b/src/tests/servers/input/comm/area.c new file mode 100644 index 0000000000..fdcc1f5f25 --- /dev/null +++ b/src/tests/servers/input/comm/area.c @@ -0,0 +1,25 @@ +#include +#include +#include + +int main(int count, char **args) { + + sem_id cursorSem = atoi(args[2]); + area_id appArea = atoi(args[1]); + void *appBuffer; + area_id newArea; + + acquire_sem(cursorSem); + + newArea = clone_area("isClone", &appBuffer, B_ANY_ADDRESS, B_READ_AREA|B_WRITE_AREA, appArea); + if (newArea > 0) { + int fd = open ("/tmp/input_area.bin", O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd >= 0) { + write (fd, appBuffer, 0x1000); + close (fd); + } + printf("success when writing area %ld\n", appArea); + + delete_area(newArea); + } +} diff --git a/src/tests/servers/input/comm/port.cpp b/src/tests/servers/input/comm/port.cpp new file mode 100644 index 0000000000..f93aae44f0 --- /dev/null +++ b/src/tests/servers/input/comm/port.cpp @@ -0,0 +1,33 @@ +#include +#include +#include +#include + +int main(int count, char **args) { + + sem_id portSem = atoi(args[2]); + port_id port = atoi(args[1]); + + for (int i=0; i<10; i++) { + + acquire_sem(portSem); + + ssize_t size = port_buffer_size(port); + printf("size : %ld\n", size); + + char buffer[size]; + int32 code; + ssize_t newsize; + if ((newsize = read_port(port, &code, buffer, size))==size) { + BMessage msg; + if (msg.Unflatten(buffer)!=B_OK) { + printf("error \n"); + } else { + msg.PrintToStream(); + } + } else { + printf("error %ld\n", newsize); + } + + } +}