#! /bin/sh # runthem - run a bunch of Libtool tests # Written by Ralf Wildenhues . # # This assumes a POSIX shell. ### USER VARIABLES # increase this every time you do a set of runs serial=100 # top dir on $build : ${rootdir=templtrun} # libtool version number : ${version=2.1a} # packer : ${gzip=bzip2} # set to 'echo' to show what this script does run= # set to old-style tests if you only want those old_tests="tests/sh.test tests/quote.test" # set to new-style testsuite args new_tests="-v 1" ### END USER VARIABLES set -e case $gzip in (*bzip2) gz=bz2;; (*gzip) gz=gz;; (*) echo "bad gzip $gzip." >&2; exit 1;; esac tarball=libtool-$version.tar.$gz pre_configure_cmds= pre_configure_args= progpath=$0 setup_lockdir () { tmpd=.`basename "$progpath"`.$$ trap 'rm -rf "$tmpd"' 0 rm -rf "$tmpd" mkdir "$tmpd" echo lockthis > "$tmpd"/lock } # setup host setup () { host=$1 $run ssh $host "\ set -e umask 077 if test -d $rootdir; then rm -rf $rootdir/libtool-$version $rootdir/build else mkdir $rootdir fi " $run rsync -e ssh "$tarball" "$host:$rootdir/$tarball" } # cleanup host cleanup () { host=$1 $run ssh $host "rm -rf $rootdir" } # build_and_test host test-id configure_args make build_and_test () { host=$1 test_id=$2 configure_args=$3 make=${4-make} echo "build_and_test $* start: `date`" setup $host set +e $run ssh $host "\ umask 077 ( set -e cd $rootdir $gzip -dc $tarball | tar xf - mkdir build cd build $pre_configure_cmds $pre_configure_args ../libtool-$version/configure $configure_args $make eval $make check VERBOSE=x TESTSUITE_FLAGS=-V ${old_tests:+TESTS=\'$old_tests\'} eval $make check-local TESTSUITE_FLAGS=\'$new_tests\' ) >log-$host 2>&1 /dev/null do if ! test -d "$tmpd" then echo "lockdir $tmpd gone, bailing out.." >&2 exit 1 fi echo "lockthis waiting for lock $lock to do $fn $@" >&2 sleep 10 done $fn "$@" rm "$lock" } # doit host [args..] # parallelize based on hostname doit () { lockthis "$1" build_and_test ${1+"$@"} & } ### MAIN setup_lockdir doit localhost plain "MAKE=gmake" gmake # ... wait # vi:sw=2: