svn commit: r251368 - in head: sys/dev/filemon sys/modules/filemon tools/regression/filemon

David E. O'Brien obrien at FreeBSD.org
Tue Jun 4 06:38:03 UTC 2013


Author: obrien
Date: Tue Jun  4 06:38:01 2013
New Revision: 251368
URL: http://svnweb.freebsd.org/changeset/base/251368

Log:
  Match the options of the kernel.

Modified:
  head/sys/dev/filemon/filemon.c
  head/sys/dev/filemon/filemon_wrapper.c
  head/sys/modules/filemon/Makefile
  head/tools/regression/filemon/Makefile
  head/tools/regression/filemon/filemontest.c
  head/tools/regression/filemon/test_script.sh

Modified: head/sys/dev/filemon/filemon.c
==============================================================================
--- head/sys/dev/filemon/filemon.c	Tue Jun  4 05:44:52 2013	(r251367)
+++ head/sys/dev/filemon/filemon.c	Tue Jun  4 06:38:01 2013	(r251368)
@@ -25,10 +25,11 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
+#include <sys/param.h>
 __FBSDID("$FreeBSD$");
 
-#include <sys/param.h>
+#include "opt_compat.h"
+
 #include <sys/file.h>
 #include <sys/systm.h>
 #include <sys/buf.h>

Modified: head/sys/dev/filemon/filemon_wrapper.c
==============================================================================
--- head/sys/dev/filemon/filemon_wrapper.c	Tue Jun  4 05:44:52 2013	(r251367)
+++ head/sys/dev/filemon/filemon_wrapper.c	Tue Jun  4 06:38:01 2013	(r251368)
@@ -28,6 +28,8 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#include "opt_compat.h"
+
 #if __FreeBSD_version > 800032
 #define FILEMON_HAS_LINKAT
 #endif

Modified: head/sys/modules/filemon/Makefile
==============================================================================
--- head/sys/modules/filemon/Makefile	Tue Jun  4 05:44:52 2013	(r251367)
+++ head/sys/modules/filemon/Makefile	Tue Jun  4 06:38:01 2013	(r251368)
@@ -4,6 +4,6 @@
 
 KMOD=	filemon
 SRCS=	${KMOD}.c
-SRCS+=	vnode_if.h opt_compat.h opt_capsicum.h
+SRCS+=	opt_compat.h
 
 .include <bsd.kmod.mk>

Modified: head/tools/regression/filemon/Makefile
==============================================================================
--- head/tools/regression/filemon/Makefile	Tue Jun  4 05:44:52 2013	(r251367)
+++ head/tools/regression/filemon/Makefile	Tue Jun  4 06:38:01 2013	(r251368)
@@ -1,10 +1,20 @@
 # $FreeBSD$
 
-BINS=	\
+.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "ia64"
+BI_BITS=
+.endif
+
+_BINS=	\
 	filemontest \
-	timed-forkb
+	timed-forkb \
+	sizeof_long
+
+BINS=	${_BINS}
+.if defined(BI_BITS)
+BINS+=	${_BINS:C/$/32/g}
+.endif
 
-bins: filemontest timed-forkb
+bins: ${BINS}
 all: bins
 
 NO_MAN=
@@ -18,20 +28,25 @@ WITHOUT_CDDL=
 
 CLEANFILES+=	${BINS}
 
-tests: bins
+
+.for f32 in ${BINS}
+${f32}32: ${f32}.c
+	${CC} -m32 -DBIT=\"32\" -o ${.TARGET} ${CFLAGS} ${.ALLSRC}
+.endfor
+
+tests:
 	kldstat | grep filemon
-	${MAKE} test
-	@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
+	@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 .
-#FILEMONTEST32=	filemontest32
-test: filemontest clean-test
-.for BIN in filemontest ${FILEMONTEST32}
+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 \
@@ -41,13 +56,30 @@ test: filemontest clean-test
 		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]$$' || echo "Time stamp format OK"
+	    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.*
+	cd ${.CURDIR} ; rm -f filemon_log*.*
 
 clean-tests: clean-test
 

Modified: head/tools/regression/filemon/filemontest.c
==============================================================================
--- head/tools/regression/filemon/filemontest.c	Tue Jun  4 05:44:52 2013	(r251367)
+++ head/tools/regression/filemon/filemontest.c	Tue Jun  4 06:38:01 2013	(r251368)
@@ -43,9 +43,13 @@ __FBSDID("$FreeBSD$");
  * "test_script.sh" in the cwd.
  */
 
+#ifndef BIT
+#define BIT ""
+#endif
+
 int
 main(void) {
-	char log_name[] = "filemon_log.XXXXXX";
+	char log_name[] = "filemon_log" BIT ".XXXXXX";
 	pid_t child;
 	int fm_fd, fm_log;
 
@@ -66,7 +70,7 @@ main(void) {
 		child = getpid();
 		if (ioctl(fm_fd, FILEMON_SET_PID, &child) == -1)
 			err(1, "Cannot set filemon PID to %d", child);
-		system("./test_script.sh");
+		system("env BIT=" BIT "	./test_script.sh");
 		break;
 	case -1:
 		err(1, "Cannot fork");

Modified: head/tools/regression/filemon/test_script.sh
==============================================================================
--- head/tools/regression/filemon/test_script.sh	Tue Jun  4 05:44:52 2013	(r251367)
+++ head/tools/regression/filemon/test_script.sh	Tue Jun  4 06:38:01 2013	(r251368)
@@ -41,3 +41,4 @@ ed -s $f1 < $f2
 #w" | ed -s $f1
 #rm $f1 $f2
 uptime > /dev/null
+sizeof_long${BIT} > /dev/null


More information about the svn-src-all mailing list