From 43fdea7d5254ec48fc3dc31dae33d042ece7f7e7 Mon Sep 17 00:00:00 2001 From: Marcus Overhagen Date: Sun, 5 Aug 2007 13:24:52 +0000 Subject: [PATCH] writev test application. I expected this to crash haiku, but it hasn't so far. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21828 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tests/misc/Jamfile | 1 + src/tests/misc/writev-test.cpp | 44 ++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 src/tests/misc/writev-test.cpp diff --git a/src/tests/misc/Jamfile b/src/tests/misc/Jamfile index d18e2ecb25..8f9c1960ae 100644 --- a/src/tests/misc/Jamfile +++ b/src/tests/misc/Jamfile @@ -3,5 +3,6 @@ SubDir HAIKU_TOP src tests misc ; SetSubDirSupportedPlatformsBeOSCompatible ; SimpleTest rtti-test : rtti-test.cpp : be ; +SimpleTest writev-test : writev-test.cpp : be ; SubInclude HAIKU_TOP src tests misc exception-test ; diff --git a/src/tests/misc/writev-test.cpp b/src/tests/misc/writev-test.cpp new file mode 100644 index 0000000000..91dcb5111e --- /dev/null +++ b/src/tests/misc/writev-test.cpp @@ -0,0 +1,44 @@ +#include +#include +#include +#include +#include +#include + +int +main() +{ + int fd = open("testfile", O_CREAT | O_RDWR, 0666); + + if (fd < 0) { + printf("file open error %s\n", strerror(errno)); + return 1; + } + + int dummy; + int ret; + iovec vec1 = { &dummy, sizeof(dummy) }; + ret = writev(fd, &vec1, 0x80000001); + + if (ret < 0) { + printf("vec 1 write error %s\n", strerror(errno)); + } + + iovec vec2 = { (void *)0x80100000, 0x1000 }; + ret = writev(fd, &vec2, 1); + + if (ret < 0) { + printf("vec 2 write error %s\n", strerror(errno)); + } + + iovec vec3 = { 0, 1 }; + ret = writev(fd, &vec3, 0xfff); + + if (ret < 0) { + printf("vec 3 write error %s\n", strerror(errno)); + } + + close(fd); + + return 0; +}