Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/regress/sys/kern The lockf/lockf2 tests are now converted to...
details: https://anonhg.NetBSD.org/src/rev/36a0a14c65c5
branches: trunk
changeset: 782578:36a0a14c65c5
user: pgoyette <pgoyette%NetBSD.org@localhost>
date: Wed Nov 07 14:04:28 2012 +0000
description:
The lockf/lockf2 tests are now converted to ATF
diffstat:
regress/sys/kern/Makefile | 4 +-
regress/sys/kern/lockf/Makefile | 15 ---
regress/sys/kern/lockf/lockf.c | 177 ---------------------------------------
regress/sys/kern/lockf2/Makefile | 20 ----
regress/sys/kern/lockf2/lockf2.c | 80 -----------------
5 files changed, 2 insertions(+), 294 deletions(-)
diffs (truncated from 320 to 300 lines):
diff -r 1581547f4c76 -r 36a0a14c65c5 regress/sys/kern/Makefile
--- a/regress/sys/kern/Makefile Wed Nov 07 14:01:34 2012 +0000
+++ b/regress/sys/kern/Makefile Wed Nov 07 14:04:28 2012 +0000
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.31 2012/11/05 04:11:44 pgoyette Exp $
+# $NetBSD: Makefile,v 1.32 2012/11/07 14:04:28 pgoyette Exp $
-SUBDIR+= execve getcwd lockf lockf2 ras \
+SUBDIR+= execve getcwd ras \
sigtramp sleeping unfdpass
.include <bsd.subdir.mk>
diff -r 1581547f4c76 -r 36a0a14c65c5 regress/sys/kern/lockf/Makefile
--- a/regress/sys/kern/lockf/Makefile Wed Nov 07 14:01:34 2012 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-# $NetBSD: Makefile,v 1.3 2002/09/18 05:41:54 lukem Exp $
-
-NOMAN= # defined
-
-PROG= lockf
-WARNS= 2
-
-regress:
- @if ./lockf ; then \
- echo "PASSED"; \
- else \
- echo "FAILED"; \
- fi
-
-.include <bsd.prog.mk>
diff -r 1581547f4c76 -r 36a0a14c65c5 regress/sys/kern/lockf/lockf.c
--- a/regress/sys/kern/lockf/lockf.c Wed Nov 07 14:01:34 2012 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/* $NetBSD: lockf.c,v 1.8 2011/05/24 16:04:14 joerg Exp $ */
-
-/*-
- * Copyright (c) 2000 The NetBSD Foundation, Inc.
- * 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
- */
-
-/*
- * lockf regression test:
- *
- * Tests:
- * 1) fork N child processes, do a bunch of random byte range lock/unlock.
- */
-
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <sys/ptrace.h>
-
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <err.h>
-#include <signal.h>
-#include <errno.h>
-
-int nlocks = 1000; /* number of locks per thread */
-int nprocs = 10; /* number of processes to spawn */
-int sleeptime = 500000; /* sleep time between locks, usec */
-off_t size = 8192; /* size of file to lock */
-const char *lockfile = "/tmp/lockf_test";
-
-static u_int32_t
-random_uint32(void)
-{
- return lrand48();
-}
-
-
-static void
-trylocks(int id)
-{
- int i, ret, fd;
- const char *which = NULL;
-
- srand48(getpid());
-
- fd = open (lockfile, O_RDWR, 0);
-
- if (fd < 0)
- err(1, "%s", lockfile);
-
- printf("%d: start\n", id);
-
- for (i=0; i<nlocks; i++) {
- struct flock fl;
-
- fl.l_start = random_uint32() % size;
- fl.l_len = random_uint32() % size;
- switch (random_uint32() % 3) {
- case 0:
- which = "read";
- fl.l_type = F_RDLCK;
- break;
- case 1:
- which = "write";
- fl.l_type = F_WRLCK;
- break;
- case 2:
- which = "un";
- fl.l_type = F_UNLCK;
- break;
- }
- fl.l_whence = SEEK_SET;
-
- printf("%d: try %slock %d to %d\n", id, which, (int)fl.l_start,
- (int)(fl.l_start + fl.l_len));
-
- ret = fcntl(fd, F_SETLKW, &fl);
-
- if (ret < 0)
- perror("fcntl");
- printf("%d: got %slock %d to %d\n", id, which, (int)fl.l_start,
- ((int)(fl.l_start + fl.l_len)));
-
- if (usleep(sleeptime) < 0)
- err(1, "usleep");
- }
- printf("%d: done\n", id);
- close (fd);
-}
-
-/* ARGSUSED */
-int
-main(int argc, char **argv)
-{
- int i, j;
- pid_t *pid;
- int status;
- int fd;
-
- (void)unlink(lockfile);
-
- fd = open (lockfile, O_RDWR|O_CREAT|O_EXCL|O_TRUNC, 0666);
- if (fd < 0)
- err(1, "%s", lockfile);
-
- if (ftruncate(fd, size) < 0)
- err(1, "ftruncate of %s failed", lockfile);
-
- fsync(fd);
- close(fd);
-
- pid = malloc(nprocs * sizeof(pid_t));
-
- for (i=0; i<nprocs; i++) {
- pid[i] = fork();
- switch (pid[i]) {
- case 0:
- trylocks(i);
- _exit(0);
- break;
- case -1:
- err(1, "fork failed");
- break;
- default:
- break;
- }
- }
- for (j=0; j<100; j++) {
- printf("parent: run %i\n", j+1);
- for (i=0; i<nprocs; i++) {
- printf("stop %d\n", i);
- if (ptrace(PT_ATTACH, pid[i], 0, 0) < 0)
- err(1, "ptrace attach %d", pid[i]);
- printf("wait %d\n", i);
- if (waitpid(pid[i], &status, WUNTRACED) < 0)
- err(1, "waitpid(ptrace)");
- printf("awake %d\n", i);
- usleep(sleeptime/3);
- if (ptrace(PT_DETACH, pid[i], (caddr_t)1, 0) < 0)
- err(1, "ptrace detach %d", pid[i]);
- printf("done %d\n", i);
- usleep(sleeptime/3);
- }
- }
- for (i=0; i<nprocs; i++) {
- printf("reap %d: ", i);
- fflush(stdout);
- kill(pid[i], SIGINT);
- waitpid(pid[i], &status, 0);
- printf(" status %d\n", status);
- }
- exit(0);
- /* NOTREACHED */
-}
diff -r 1581547f4c76 -r 36a0a14c65c5 regress/sys/kern/lockf2/Makefile
--- a/regress/sys/kern/lockf2/Makefile Wed Nov 07 14:01:34 2012 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-# $NetBSD: Makefile,v 1.1 2008/04/05 03:34:47 yamt Exp $
-
-NOMAN= # defined
-WARNS= 3
-
-PROG= lockf2
-
-DBG=-g
-TESTFILE= TESTFILE
-CLEANFILES= ${TESTFILE}
-
-regress: ${PROG}
- @set -e; \
- if ./${PROG} > ${TESTFILE}; then \
- echo PASSED; exit 0; \
- else \
- echo FAILED; exit 1; \
- fi
-
-.include <bsd.prog.mk>
diff -r 1581547f4c76 -r 36a0a14c65c5 regress/sys/kern/lockf2/lockf2.c
--- a/regress/sys/kern/lockf2/lockf2.c Wed Nov 07 14:01:34 2012 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/* $NetBSD: lockf2.c,v 1.1 2008/04/05 03:34:47 yamt Exp $ */
-
-/*-
- * Copyright (c)2008 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 <assert.h>
-#include <errno.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-static int
-dolock(int fd, int op, off_t off, off_t size)
-{
- off_t result;
- int ret;
-
- result = lseek(fd, off, SEEK_SET);
- if (result == -1) {
- return errno;
- }
- assert(result == off);
- ret = lockf(fd, op, size);
- if (ret == -1) {
- return errno;
- }
- return 0;
-}
-
-int
-main(int argc, char *argv[])
-{
- int fd = STDOUT_FILENO;
- int error;
- int ret;
- pid_t pid;
-
Home |
Main Index |
Thread Index |
Old Index