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; +}