summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/regression/filemon/Makefile85
-rw-r--r--tools/regression/filemon/filemontest.c84
-rwxr-xr-xtools/regression/filemon/test_script.sh44
-rw-r--r--tools/regression/filemon/timed-forkb.c177
4 files changed, 0 insertions, 390 deletions
diff --git a/tools/regression/filemon/Makefile b/tools/regression/filemon/Makefile
deleted file mode 100644
index 3911d33..0000000
--- a/tools/regression/filemon/Makefile
+++ /dev/null
@@ -1,85 +0,0 @@
-# $FreeBSD$
-
-.if ${MACHINE_ARCH} == "amd64"
-BI_BITS=
-.endif
-
-_BINS= \
- filemontest \
- timed-forkb \
- sizeof_long
-
-BINS= ${_BINS}
-.if defined(BI_BITS)
-BINS+= ${_BINS:C/$/32/g}
-.endif
-
-bins: ${BINS}
-all: bins
-
-MAN=
-
-WARNS?= 6
-CFLAGS+= -I${.CURDIR}/../../../sys
-
-# We don't want to genreate CTF files. Force that here.
-MK_CTF=no
-
-CLEANFILES+= ${BINS}
-
-
-.for f32 in ${BINS}
-${f32}32: ${f32}.c
- ${CC} -m32 -DBIT=\"32\" -o ${.TARGET} ${CFLAGS} ${.ALLSRC}
-.endfor
-
-tests:
- kldstat | grep filemon
- @echo ""
- ${MAKE} test01
- ${MAKE} test02
-.if defined(BI_BITS)
- ${MAKE} test32
-.endif
- @echo "filemon(4) tests passed."
-
-# Cannot use .OBJDIR -- 'filemontest' expects 'test_script.sh' in .
-test01: ${BINS:Mfilemontest*} ${BINS:Msizeof_long*} clean-test
-.for BIN in ${BINS:Mfilemontest}
- cd ${.CURDIR} ; \
- for A in 1 2 3 4 5 6 7 8 9 0; do \
- for B in 1 2 3 4 5 6 7 8 9 0; do \
- for C in 1 2 3 4 5 6 7 8 9 0; do \
- test -x ${BIN} && ${.OBJDIR}/${BIN} ;\
- done ;\
- done ;\
- done
- @cd ${.CURDIR} ; set +e ; egrep '(Start|Stop) .*\.' filemon_log.* | \
- grep -q -v '\.[0-9][0-9][0-9][0-9][0-9][0-9]$$' || printf "Time stamp format OK\n\n"
-.endfor
- @cd ${.CURDIR} ; set +e ; for F in filemon_log.* ; do \
- tail -1 $$F | grep -q '# Bye bye' || echo "$$F missing filemon bye-bye" ; \
- NL=`wc -l $$F | awk '{print $$1}'` ; \
- if [ "$${NL}" != 97 ]; then echo "$$F BAD, contains $${NL} lines" ; exit 1 ; fi ; done
-
-test02: ${BINS:Mtimed-forkb*}
- @echo "Without filemon(4) active:"
- ./timed-forkb
- @echo "With filemon(4) active:"
- script -f typescript-timed-forkb ./timed-forkb
- ls -l typescript-timed-forkb.filemon
-
-test32: ${BINS:M*32*}
- script -f typescript.${.TARGET} ./sizeof_long32 >/dev/null
- @tail -1 typescript.test32.filemon | grep -q '# Bye bye' || (echo '32-bit comapt filemon Missing "bye-bye"' ; exit 1)
- @egrep -q '^X [0-9]+ 0$$' typescript.test32.filemon || (echo "32-bit binary exit ERROR" ; exit 1)
- @printf "filemon(4) 32bit FreeBSD support passed.\n\n"
-
-CLEANFILES+= typescript-timed-forkb typescript-timed-forkb.filemon
-
-clean-test:
- cd ${.CURDIR} ; rm -f filemon_log*.*
-
-clean-tests: clean-test
-
-.include <bsd.prog.mk>
diff --git a/tools/regression/filemon/filemontest.c b/tools/regression/filemon/filemontest.c
deleted file mode 100644
index 03b53e2..0000000
--- a/tools/regression/filemon/filemontest.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*-
- * Copyright (c) 2009-2011, Juniper Networks, 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 JUNIPER NETWORKS 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 JUNIPER NETWORKS 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 <sys/types.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/wait.h>
-#include <sys/ioctl.h>
-
-#include <dev/filemon/filemon.h>
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <err.h>
-
-/*
- * This simple test of filemon expects a test script called
- * "test_script.sh" in the cwd.
- */
-
-#ifndef BIT
-#define BIT ""
-#endif
-
-int
-main(void) {
- char log_name[] = "filemon_log" BIT ".XXXXXX";
- pid_t child;
- int fm_fd, fm_log;
-
- if ((fm_fd = open("/dev/filemon", O_RDWR)) == -1)
- err(1, "open(\"/dev/filemon\", O_RDWR)");
- if ((fm_log = mkstemp(log_name)) == -1)
- err(1, "mkstemp(%s)", log_name);
-
- if (ioctl(fm_fd, FILEMON_SET_FD, &fm_log) == -1)
- err(1, "Cannot set filemon log file descriptor");
-
- /* Set up these two fd's to close on exec. */
- (void)fcntl(fm_fd, F_SETFD, FD_CLOEXEC);
- (void)fcntl(fm_log, F_SETFD, FD_CLOEXEC);
-
- switch (child = fork()) {
- case 0:
- child = getpid();
- if (ioctl(fm_fd, FILEMON_SET_PID, &child) == -1)
- err(1, "Cannot set filemon PID to %d", child);
- system("env BIT=" BIT " ./test_script.sh");
- break;
- case -1:
- err(1, "Cannot fork");
- default:
- wait(&child);
- close(fm_fd);
-// printf("Results in %s\n", log_name);
- break;
- }
- return 0;
-}
diff --git a/tools/regression/filemon/test_script.sh b/tools/regression/filemon/test_script.sh
deleted file mode 100755
index b69c238..0000000
--- a/tools/regression/filemon/test_script.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#! /bin/sh
-#
-# Copyright (c) 2011, Juniper Networks, 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 JUNIPER NETWORKS 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 JUNIPER NETWORKS 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.
-#
-# $FreeBSD$
-
-trap 'rm -f $f1 $f2; exit 1' 1 2 3 13 15
-echo shazbot > /dev/null
-f1=`mktemp /tmp/filemon_test.XXXXXX`
-f2=`mktemp /tmp/ed-script.XXXXXX`
-> $f1
-echo "One line to rule them all" >> $f1
-wc -l $f1 > /dev/null
-# ed(1)'s /tmp/ed.* buffer file will be opened RW
-echo ',s/$/./g' > $f2
-echo 'wq' >>$f2
-ed -s $f1 < $f2
-#echo ",s/$/./\
-#w" | ed -s $f1
-#rm $f1 $f2
-uptime > /dev/null
-sizeof_long${BIT} > /dev/null
diff --git a/tools/regression/filemon/timed-forkb.c b/tools/regression/filemon/timed-forkb.c
deleted file mode 100644
index b7a0221..0000000
--- a/tools/regression/filemon/timed-forkb.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/*-
- * Copyright (c) 2012 David O'Brien
- * 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.
- *
- * $FreeBSD$
- */
-
-#include <sys/types.h>
-#include <sys/resource.h>
-#include <sys/sysctl.h>
-#include <sys/wait.h>
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-#include <err.h>
-#include <assert.h>
-
-#ifndef SLEEP
-#define SLEEP 20 /* seconds */
-#endif
-
-static int verbose;
-
-static void
-usage(void)
-{
- fprintf(stderr, "usage: %s\n", getprogname());
- fprintf(stderr, "\t\t-n : length of fork(2) chain\n");
- fprintf(stderr, "\t\t-t : limit run-time seconds\n");
- exit(1);
- /* NOTREACHED */
-}
-
-void term(int);
-void
-term(int signum)
-{
-
- if (getpid() == getpgrp() || verbose) {
- fprintf(stderr,
- "pid %d pgroup %d (ppid %d): Received SIGTERM(%d), exiting...\n",
- getpid(), getpgrp(), getppid(), signum);
- }
- exit(1);
-}
-
-void angel_of_mercy(int);
-void
-angel_of_mercy(int sig __unused)
-{
-
- signal(SIGALRM, SIG_IGN); /* ignore this signal */
- printf("Master process: alarmed waking up\n");
- killpg(0, SIGTERM);
- return;
-}
-
-int bombing_run(unsigned, int);
-int
-bombing_run(unsigned chainlen, int stime)
-{
- struct rusage ru;
- pid_t pid, cpid;
- int status;
-
- if (chainlen) {
- switch (pid = fork()) {
- case -1:
- errx(1, "%s: can't fork", __func__);
-
- case 0:
- /* This is the code the child runs. */
- bombing_run(--chainlen, stime);
- break;
-
- default:
- /* This is the code the parent runs. */
- if (getpid() == getpgrp()) {
- signal(SIGALRM, angel_of_mercy);
- alarm(stime); // time for bombing run...
- cpid = wait4(pid, &status, 0, &ru);
- alarm(0);
- printf(
- "Cleanly shutting down - pid %d pgroup %d (ppid %d)\n",
- getpid(), getpgrp(), getppid());
- } else {
- cpid = wait4(pid, &status, 0, &ru);
- }
- }
- }
-
- return 0;
-}
-
-int
-main(int argc, char *argv[])
-{
- time_t start /*,tvec*/;
- char *endptr, *ctm;
- size_t len;
- int nflag, tflag;
- int ch, k, maxprocperuid;
-
- (void)signal(SIGTERM, term);
-
- nflag = 0;
- tflag = SLEEP;
-
- start = time(NULL);
- ctm = ctime(&start);
- ctm[24] = '\0'; // see: man 3 ctime
- fprintf(stderr, "*** fork() generation started on \"%s\" ***\n", ctm);
-
- while ((ch = getopt(argc, argv, "n:t:v")) != -1)
- switch (ch) {
- case 'n':
- nflag = strtol(optarg, &endptr, 10);
- if (nflag <= 0 || *endptr != '\0')
- errx(1, "illegal number, -n argument -- %s",
- optarg);
- break;
- case 't':
- tflag = strtol(optarg, &endptr, 10);
- if (tflag <= 0 || *endptr != '\0')
- errx(1, "illegal number, -t argument -- %s",
- optarg);
- break;
- case 'v':
- ++verbose;
- break;
- default:
- usage();
- }
- argv += optind;
-
- if (!nflag) {
- len = sizeof(maxprocperuid);
- k = sysctlbyname("kern.maxprocperuid", &maxprocperuid, &len,
- NULL, 0);
- assert(k != ENOMEM);
- /* Try to allow a shell to still be started. */
- nflag = maxprocperuid - 10;
- }
-
- // Ensure a unique process group to make killing all children easier.
- setpgrp(0,0);
- printf(" pid %d pgroup %d (ppid %d), %d fork chain over %d sec\n",
- getpid(), getpgrp(), getppid(), nflag - 1, tflag);
-
- return bombing_run(nflag, tflag);
-}
OpenPOWER on IntegriCloud