Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/regress/sys/fs Remove regress getdents test, obsoleted by AT...
details: https://anonhg.NetBSD.org/src/rev/f56f288c225f
branches: trunk
changeset: 353604:f56f288c225f
user: kamil <kamil%NetBSD.org@localhost>
date: Sun May 14 04:21:52 2017 +0000
description:
Remove regress getdents test, obsoleted by ATF tests
There are ATF tests using rumpkernel to verify getdents:
- tests/fs/hfs/t_pathconvert
- tests/fs/kernfs/t_basic
- tests/fs/vfs/t_union
diffstat:
regress/sys/fs/Makefile | 4 +-
regress/sys/fs/getdents/Makefile | 25 ----
regress/sys/fs/getdents/getdents.c | 226 -------------------------------------
3 files changed, 2 insertions(+), 253 deletions(-)
diffs (270 lines):
diff -r 6bbc997cf27f -r f56f288c225f regress/sys/fs/Makefile
--- a/regress/sys/fs/Makefile Sun May 14 04:19:06 2017 +0000
+++ b/regress/sys/fs/Makefile Sun May 14 04:21:52 2017 +0000
@@ -1,5 +1,5 @@
-# $NetBSD: Makefile,v 1.8 2009/02/20 21:45:47 jmmv Exp $
+# $NetBSD: Makefile,v 1.9 2017/05/14 04:21:52 kamil Exp $
-SUBDIR= getdents lseek
+SUBDIR= lseek
.include <bsd.subdir.mk>
diff -r 6bbc997cf27f -r f56f288c225f regress/sys/fs/getdents/Makefile
--- a/regress/sys/fs/getdents/Makefile Sun May 14 04:19:06 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-# $NetBSD: Makefile,v 1.1 2004/10/03 12:35:15 yamt Exp $
-
-NOMAN= # defined
-WARNS= 3
-
-PROG= getdents
-
-TESTDIR= test
-
-clean:
- rm -rf ${TESTDIR}
-
-regress: ${PROG}
- @set -e; \
- test -d ${TESTDIR} || mkdir ${TESTDIR}; \
- for x in $$(jot 1000); do \
- touch ${TESTDIR}/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$x; \
- done; \
- if ./${PROG} ${TESTDIR} > /dev/null; then \
- echo PASSED; exit 0; \
- else \
- echo FAILED; exit 1; \
- fi
-
-.include <bsd.prog.mk>
diff -r 6bbc997cf27f -r f56f288c225f regress/sys/fs/getdents/getdents.c
--- a/regress/sys/fs/getdents/getdents.c Sun May 14 04:19:06 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,226 +0,0 @@
-/* $Id: getdents.c,v 1.9 2006/12/30 23:19:11 yamt Exp $ */
-
-/*-
- * Copyright (c)2004, 2006 YAMAMOTO Takashi,
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <err.h>
-#include <errno.h>
-#include <dirent.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-void print_dents(FILE *, const void *, int);
-int main(int, char *[]);
-
-void
-print_dents(FILE *fp, const void *vp, int sz)
-{
- const char *cp = vp;
- const char *ep = cp + sz;
- const struct dirent *d;
-
- while (cp < ep) {
- d = (const void *)cp;
- fprintf(fp, "fileno=%" PRIu64
- ", type=%d, reclen=%d, len=%d, %s\n",
- (uint64_t)d->d_fileno, (int)d->d_type, (int)d->d_reclen,
- (int)d->d_namlen, d->d_name);
- cp += d->d_reclen;
- }
-#if 1
- {
- int i;
-
- for (cp = vp, i = 0; cp < ep; cp++, i++) {
- if ((i % 16) == 0)
- fprintf(fp, "%08tx:", cp - (const char *)vp);
- fprintf(fp, "%02x ", (int)(unsigned char)*cp);
- if ((i % 16) == 15)
- fprintf(fp, "\n");
- }
- }
-#endif
-}
-
-struct ent {
- off_t off;
- int sz;
- union {
- struct dirent u_d;
- char u_buf[DIRBLKSIZ];
- } u;
-};
-
-int
-main(int argc, char *argv[])
-{
- int fd;
- off_t off;
- int ret;
- const char *path;
- int nblks = 0;
- struct ent *blks = NULL;
- int i;
- int count;
-
- if (argc < 2)
- errx(EXIT_FAILURE, "arg");
- path = argv[1];
- if (argc > 2)
- off = strtoull(argv[2], 0, 0);
- else
- off = 0;
-
- printf("dir=%s\n", path);
- fd = open(path, O_RDONLY);
- if (fd == -1)
- err(EXIT_FAILURE, "open");
- printf("seek: off=%" PRIx64 "(%" PRIu64 ")\n",
- (uint64_t)off, (uint64_t)off);
- if (off != lseek(fd, off, SEEK_SET))
- err(EXIT_FAILURE, "lseek");
-
-#if defined(DENSE_DIRECTORY)
- printf("searching valid offsets..\n");
- for (off = 0; ; off++) {
- struct ent *p;
- blks = realloc(blks, sizeof(*blks) * (nblks + 1));
- if (blks == NULL)
- err(EXIT_FAILURE, "realloc");
- p = &blks[nblks];
- memset(p, 0, sizeof(*p));
- p->off = off = lseek(fd, off, SEEK_SET);
- if (off == (off_t)-1)
- err(EXIT_FAILURE, "lseek");
- printf("off=%" PRIx64 "(%" PRIu64 ")\n",
- (uint64_t)off, (uint64_t)off);
- p->sz = ret = getdents(fd, p->u.u_buf, DIRBLKSIZ);
- printf("getdents: %d\n", ret);
- if (ret == -1) {
- if (errno == EINVAL) {
- continue;
- }
- errx(EXIT_FAILURE, "getdents");
- }
- if (ret == 0) {
- break;
- }
- nblks++;
- print_dents(stdout, p->u.u_buf, ret);
- }
- printf("%d valid offsets found\n", nblks);
-#else /* defined(DENSE_DIRECTORY) */
- printf("start reading..\n");
- do {
- struct ent *p;
- blks = realloc(blks, sizeof(*blks) * (nblks + 1));
- if (blks == NULL)
- err(EXIT_FAILURE, "realloc");
- p = &blks[nblks];
- memset(p, 0, sizeof(*p));
- p->off = off = lseek(fd, (off_t)0, SEEK_CUR);
- if (off == (off_t)-1)
- err(EXIT_FAILURE, "lseek");
- printf("off=%" PRIx64 "(%" PRIu64 ")\n",
- (uint64_t)off, (uint64_t)off);
- p->sz = ret = getdents(fd, p->u.u_buf, DIRBLKSIZ);
- printf("getdents: %d\n", ret);
- if (ret == -1)
- err(EXIT_FAILURE, "getdents");
- nblks++;
- print_dents(stdout, p->u.u_buf, ret);
- } while (ret > 0);
- printf("%d blks read\n", nblks);
-#endif /* defined(DENSE_DIRECTORY) */
-
-#if 1
- printf("re-open the file\n");
- if (close(fd))
- err(EXIT_FAILURE, "close");
- fd = open(path, O_RDONLY);
- if (fd == -1)
- err(EXIT_FAILURE, "open");
-#endif
-
- printf("starting random read...\n");
- for (count = nblks * 4 + 10; count; count--) {
- char buf[DIRBLKSIZ];
- struct ent *p;
- int differ = 0;
-
- i = rand() % nblks;
- p = &blks[i];
- off = lseek(fd, p->off, SEEK_SET);
- if (off == (off_t)-1)
- err(1, "seek");
- printf("off=%" PRIx64 "(%" PRIu64 ")\n",
- (uint64_t)off, (uint64_t)off);
- ret = getdents(fd, buf, DIRBLKSIZ);
- printf("getdents: %d\n", ret);
- if (ret == -1)
- err(EXIT_FAILURE, "getdents");
- if (p->sz != ret) {
- fflush(NULL);
- fprintf(stderr, "off=%" PRIx64
- ": different sz %d != %d\n",
- (uint64_t)off, p->sz, ret);
- differ = 1;
- } else if (memcmp(p->u.u_buf, buf, (size_t)ret)) {
- fflush(NULL);
- fprintf(stderr, "off=%" PRIx64 ": different data\n",
- (uint64_t)off);
- fprintf(stderr, "previous:\n");
- print_dents(stderr, p->u.u_buf, p->sz);
- fprintf(stderr, "now:\n");
- print_dents(stderr, buf, ret);
- differ = 1;
- }
- if (differ) {
- const struct dirent *d1 = (void *)p->u.u_buf;
- const struct dirent *d2 = (void *)buf;
-
- if (p->sz == 0 || ret == 0 ||
- d1->d_fileno != d2->d_fileno ||
-#if defined(DT_UNKNOWN)
- (d1->d_type != DT_UNKNOWN &&
- d2->d_type != DT_UNKNOWN &&
- d1->d_type != d2->d_type) ||
-#endif /* defined(DT_UNKNOWN) */
- d1->d_namlen != d2->d_namlen ||
- memcmp(d1->d_name, d2->d_name, d1->d_namlen)) {
- fprintf(stderr, "fatal difference\n");
- exit(EXIT_FAILURE);
- }
- }
- }
-
- exit(EXIT_SUCCESS);
- /* NOTREACHED */
-}
Home |
Main Index |
Thread Index |
Old Index