]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Cleanup of the test-build scripts a bit.
authorHenrik Nordstrom <henrik@henriknordstrom.net>
Wed, 11 Feb 2009 12:23:03 +0000 (13:23 +0100)
committerHenrik Nordstrom <henrik@henriknordstrom.net>
Wed, 11 Feb 2009 12:23:03 +0000 (13:23 +0100)
allow out-of-tree builds and separate .opts files.

logfile creation moved to test-builds.sh, where it's used.

--verbose mode for showing the actual output while tests is running

test-build.sh generally cleaned up a bit with less duplicated code

test-builds.sh
test-suite/buildtest.sh

index a8a9d2f4ed054b213e1523cd3e9c5d4cbb731564..d72dd94f38be4269d7d774bdc1412a2b10def7e0 100755 (executable)
@@ -2,24 +2,66 @@
 #
 #  Run specific build tests for a given OS environment.
 #
+top=`dirname $0`
 
 cleanup="no"
-if test "${1}" = "--cleanup" ; then
+verbose="no"
+while [ $# -ge 1 ]; do
+    case "$1" in
+    --cleanup)
        cleanup="yes"
        shift
-fi
+       ;;
+    --verbose)
+       verbose="yes"
+       shift
+       ;;
+    *)
+       break
+       ;;
+    esac
+done
 
 # Things to catch
 errors="^ERROR|\ error:|\ Error\ |No\ such|assertion\ failed|FAIL:"
 
-# Run a single test build by name
-tmp="${1}"
-if test -e ./test-suite/buildtests/${tmp}.opts ; then
-       echo "TESTING: ${tmp}"
-       rm -f -r bt${tmp} && mkdir bt${tmp} && cd bt${tmp}
-       ../test-suite/buildtest.sh ../test-suite/buildtests/${tmp}
-       grep -E "${errors}" buildtest_*.log && exit 1
-       cd ..
+logtee() {
+    if [ $verbose = yes ]; then
+       tee $1
+    else
+       cat >$1
+    fi
+}
+
+buildtest() {
+    opts=$1
+    layer=`basename $opts .opts`
+    btlayer="bt$layer"
+    log=${btlayer}.log
+    echo "TESTING: ${layer}"
+    rm -f -r ${btlayer} && mkdir ${btlayer}
+    {
+       cd ${btlayer}
+       $top/test-suite/buildtest.sh $opts
+    } 2>&1 | logtee $log
+    grep -E "${errors}" $log && exit 1
+    if test "${cleanup}" = "yes" ; then
+       echo "REMOVE: ${btlayer}"
+       rm -f -r ${btlayer} $log
+    fi
+    result=`tail -2 $log | head -1`
+    test "${result}" = "Build Successful." || ( tail -5 $log ; exit 1 )
+}
+
+# Run a single test build by name or opts file
+if [ -e "$1" ]; then 
+
+       buildtest $1
+       exit 0
+fi
+tmp=`basename "${1}" .opts`
+if test -e $top/test-suite/buildtests/${tmp}.opts ; then
+       buildtest $top/test-suite/buildtests/${tmp}.opts
        exit 0
 fi
 
@@ -30,18 +72,6 @@ fi
 #  These layers are constructed from detailed knowledge of
 #  component dependencies.
 #
-for f in `ls -1 ./test-suite/buildtests/layer*.opts` ; do
-       layer=`echo "${f}" | grep -o -E "layer-[0-9]*-[^\.]*"`
-       rm -f -r bt${layer} && mkdir bt${layer} && cd bt${layer}
-       arg=`echo "${f}" | sed s/\\.opts//`
-       echo "TESTING: ${arg}"
-       ../test-suite/buildtest.sh ".${arg}"
-       grep -E "${errors}" buildtest_*.log && exit 1
-       result=`tail -2 buildtest_*.log | head -1`
-       test "${result}" = "Build Successful." || ( tail -5 buildtest_*.log ; exit 1 )
-       cd ..
-       if test "${cleanup}" = "yes" ; then
-               echo "REMOVE: bt${layer}"
-               rm -f -r bt${layer}
-       fi
+for f in `ls -1 $top/test-suite/buildtests/layer*.opts` ; do
+       buildtest $f
 done
index 87561671a821c37c96b338ca40c09b6ea398052b..69c2f4369bd16a24815f780da784927ae0447b90 100755 (executable)
@@ -7,16 +7,11 @@
 #
 
 dist="${1}"
-
-# Figure out where to log the test output
-log=`echo "${dist}" | sed s/..test-suite.buildtests.//g `
-
-# ... and send everything there...
-{
+base="`dirname $0`"
 
 if test -e ${dist%%.opts}.opts ; then
        echo "BUILD: ${dist%%.opts}.opts"
-       . ./${dist%%.opts}.opts
+       . ${dist%%.opts}.opts
 else
        echo "BUILD: DEFAULT"
        OPTS=""
@@ -36,10 +31,8 @@ fi
 # above command currently encounters dependancy problems on cleanup.
 #
 rm -f -r src/fs/aufs/.deps src/fs/diskd/.deps &&
-       ../configure --silent ${OPTS} 2>&1 &&
+       $base/../configure --silent ${OPTS} 2>&1 &&
        make check 2>&1 &&
        make 2>&1
 
-} 2>&1 > ./buildtest_${log}.log
-
 # do not build any of the install's ...