From 5ab476588de557c9aa6a95ffb847167869aefc1a Mon Sep 17 00:00:00 2001 From: Artur Grabowski Date: Fri, 8 Feb 2002 20:04:04 +0000 Subject: Guess what? Trivial test for preadv. --- regress/sys/kern/preadv/Makefile | 5 ++++ regress/sys/kern/preadv/preadv.c | 59 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 regress/sys/kern/preadv/Makefile create mode 100644 regress/sys/kern/preadv/preadv.c diff --git a/regress/sys/kern/preadv/Makefile b/regress/sys/kern/preadv/Makefile new file mode 100644 index 00000000000..ebfceff6ef8 --- /dev/null +++ b/regress/sys/kern/preadv/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/08 20:04:03 art Exp $ + +PROG= preadv + +.include diff --git a/regress/sys/kern/preadv/preadv.c b/regress/sys/kern/preadv/preadv.c new file mode 100644 index 00000000000..0bfeb0c8121 --- /dev/null +++ b/regress/sys/kern/preadv/preadv.c @@ -0,0 +1,59 @@ +/* $OpenBSD: preadv.c,v 1.1 2002/02/08 20:04:03 art Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ +#include +#include +#include +#include +#include +#include +#include + +int +main() +{ + char temp[] = "/tmp/dup2XXXXXXXXX"; + const char magic[10] = "0123456789"; + char c, c1, c2; + int fd; + struct iovec iv[2]; + + if ((fd = mkstemp(temp)) < 0) + err(1, "mkstemp"); + remove(temp); + + if (write(fd, magic, sizeof(magic)) != sizeof(magic)) + err(1, "write"); + + if (lseek(fd, 0, SEEK_SET) != 0) + err(1, "lseek"); + + if (read(fd, &c, 1) != 1) + err(1, "read1"); + + if (c != magic[0]) + errx(1, "read1 %c != %c", c, magic[0]); + + iv[0].iov_base = &c1; + iv[0].iov_len = 1; + iv[1].iov_base = &c2; + iv[1].iov_len = 1; + + if (preadv(fd, iv, 2, 7) != 2) + err(1, "pread"); + + if (c1 != magic[7]) + errx(1, "pread %c != %c", c1, magic[7]); + + if (c2 != magic[8]) + errx(1, "pread %c != %c", c2, magic[7]); + + if (read(fd, &c, 1) != 1) + err(1, "read2"); + + if (c != magic[1]) + errx(1, "read2 %c != %c", c, magic[1]); + + return 0; +} -- cgit v1.2.3