From: fsgqa Date: Wed, 4 Sep 2002 07:00:33 +0000 (+0000) Subject: add in some contributed O_APPEND test helper programs. X-Git-Tag: v1.1.0~1052 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=893982b851ee9d58f2f02d412425a06464d82b2b;p=users%2Fhch%2Fxfstests-dev.git add in some contributed O_APPEND test helper programs. --- diff --git a/src/Makefile b/src/Makefile index e3c31baaa..23fcf10d2 100644 --- a/src/Makefile +++ b/src/Makefile @@ -36,7 +36,7 @@ include $(TOPDIR)/include/builddefs TARGETS = alloc acl_get bstat devzero dirstress fault feature \ fsstress fill fill2 getpagesize holes ioctl loggen lstat64 \ nametest permname randholes runas truncfile usemem \ - fstest mmapcat + fstest mmapcat append_reader append_writer ifeq ($(HAVE_DB), true) TARGETS += dbtest endif diff --git a/src/append_reader.c b/src/append_reader.c new file mode 100644 index 000000000..6b9e4f68e --- /dev/null +++ b/src/append_reader.c @@ -0,0 +1,44 @@ +/* Simple test program for checking O_APPEND writes (see append_writer.c) + * + * Contributed by hatakeyama@bsd.tnes.nec.co.jp + */ +#include +#include +#include +#include +#include +#include +#include + +int main(int argc, char **argv) +{ + char *file; + int fd, i, rc, d; + + if (argc < 2) + exit(1); + + file = argv[1]; + + if ((fd = open(file, O_RDONLY, 0600)) == -1) { + perror("couldn't open"); + exit(1); + } + + for (i = 0; ;i ++) { + if ((rc = read(fd, &d, sizeof(d))) != sizeof(i)) { + if (rc == 0) + exit(0); + perror("couldn't read"); + exit(1); + } + + if (d != i) { + fprintf(stderr, "bad data, offset = %u", i * 4); + exit(1); + } + } + + exit(0); +} + diff --git a/src/append_writer.c b/src/append_writer.c new file mode 100644 index 000000000..acf093cbf --- /dev/null +++ b/src/append_writer.c @@ -0,0 +1,34 @@ +/* Simple test program for O_APPEND writes (checked by append_reader.c) + * + * Contributed by hatakeyama@bsd.tnes.nec.co.jp + */ +#include +#include +#include +#include +#include +#include +#include + +int main(int argc, char **argv) +{ + char file[MAXPATHLEN]; + int fd, i; + + sprintf(file, "testfile.%d", getpid()); + + if ((fd = open(file, O_CREAT | O_RDWR | O_APPEND, 0600)) == -1) { + perror("couldn't open"); + exit(1); + } + + for (i = 0; ;i ++) { + if (write(fd, &i, sizeof(i)) != sizeof(i)) { + perror("couldn't write"); + exit(1); + } + } + + exit(0); +} +