[netfilter-cvslog] r3345 - trunk/nfsim-testsuite

rusty at netfilter.org rusty at netfilter.org
Mon Dec 13 07:35:24 CET 2004


Author: rusty at netfilter.org
Date: 2004-12-13 07:35:15 +0100 (Mon, 13 Dec 2004)
New Revision: 3345

Added:
   trunk/nfsim-testsuite/test-kernel-source
Log:
New top-level script to test a given kernel directory.


Added: trunk/nfsim-testsuite/test-kernel-source
===================================================================
--- trunk/nfsim-testsuite/test-kernel-source	2004-12-13 06:34:20 UTC (rev 3344)
+++ trunk/nfsim-testsuite/test-kernel-source	2004-12-13 06:35:15 UTC (rev 3345)
@@ -0,0 +1,73 @@
+#! /bin/sh
+
+barf()
+{
+    echo "$@" >&2
+    exit 1
+}
+
+build_nfsim()
+{
+    cd ../nfsim || return 1
+    make distclean >/dev/null 2>&1
+    ./configure --gcov --kerneldir=$1 || return 1
+    make --quiet || return 1
+    cp simulator $2
+}
+
+usage()
+{
+    echo "Usage: $0 [-v|-vv] <kerneldir> [test]" >&2
+    echo "Compiles up nfsim for the kernel version give, and runs the tests across it"  >&2
+    exit 1
+}
+
+if [ x"$1" = x"-v" -o x"$1" = x"-vv" ]; then
+    EXTRA_ARGS=$1
+    shift
+fi
+
+if [ $# -gt 0 ] && [ -d "$1" ]; then
+    KERNELDIR=$1
+else
+    usage
+fi
+
+if [ $# -eq 2 ]; then
+    TEST=$2
+elif [ $# -ne 1 ]; then
+    usage
+fi
+
+# Canonicalize relative paths.
+case "$KERNELDIR" in
+    /*) : ;;
+    *) KERNELDIR=`pwd`/$KERNELDIR;;
+esac
+
+# Clean cached nfsims which are more than one month old.
+find . -name '.nfsim*' -mtime +30 -exec rm {} \;
+
+NFSIM=$(pwd)/.nfsim-$(find $KERNELDIR/include/linux/netfilter_ipv4 $KERNELDIR/net/ipv4/netfilter -name '*.[ch]' -exec cat {} \; | md5sum | cut -c1-32)
+if [ -f $NFSIM ]; then
+    echo Using cached nfsim...
+    (cd ../nfsim && make --quiet gcov-clean)
+else
+    echo Building nfsim for $1...
+    (build_nfsim $KERNELDIR $NFSIM) >/dev/null || barf Failed to build nfsim for $1
+fi
+
+echo Running tests...
+./test.sh $EXTRA_ARGS --nfsim=$NFSIM $TEST || barf Tests failed for $1
+
+echo "Generating gcov results (optional)..."
+(cd ../nfsim; make --quiet gcov > /dev/null) || barf Failed to run gcov for $1
+TESTED_LINES=`find ../nfsim -name '*.gcov' | xargs cat | grep -c '^[ 0-9]*:'`
+UNTESTED_LINES=`find ../nfsim -name '*.gcov' | xargs cat | grep -c '^ *#*#:'`
+COMMENT_LINES=`find ../nfsim -name '*.gcov' | xargs cat | grep -c '^ *-:'`
+TOTAL_LINES=`find ../nfsim -name '*.gcov' | xargs cat | wc -l`
+if [ $(($TESTED_LINES + $UNTESTED_LINES)) -ne $(($TOTAL_LINES - $COMMENT_LINES)) ]; then
+    echo Something wrong with GCOV analysis: T $TESTED_LINES  U $UNTESTED_LINES C $COMMENT_LINES TOTAL $TOTAL_LINES >&2
+    exit 1
+fi
+echo GCOV coverage is $(($TESTED_LINES * 100 / ($TESTED_LINES + $UNTESTED_LINES)))%


Property changes on: trunk/nfsim-testsuite/test-kernel-source
___________________________________________________________________
Name: svn:executable
   + *




More information about the netfilter-cvslog mailing list