X-Git-Url: http://git.apps.os.sepia.ceph.com/?p=xfstests-dev.git;a=blobdiff_plain;f=tools%2Fauto-qa;h=fb8cfbbfdd90d95ef2f77cfa1a60f4964f988293;hp=4fa944177f7b6ef9804bee10d7574a5eb4b6588a;hb=cb3656b5dfd7796ed1c5dd47bd9a16a127376087;hpb=5e334eeccefdd35ae7c63bf6963aa70b4de5a6db diff --git a/tools/auto-qa b/tools/auto-qa index 4fa94417..fb8cfbbf 100755 --- a/tools/auto-qa +++ b/tools/auto-qa @@ -33,6 +33,15 @@ # automatic qa system. 31/08/00 dxm@sgi.com +# configuration (you could tune this) + +EXTRA="-xfs-qa" +BOOT="/boot" +SOAK_PASSES="-1" +SOAK_STRESS="10000" +SOAK_PROC="3" + + _log() { echo "$*" >&2 @@ -62,34 +71,42 @@ _fail() exit 1 } -# configuration (you could tune this) - -EXTRA="-xfs-qa" -VERSION="2.4.0" -BOOT="/boot" -SOAK_PASSES="-1" -SOAK_STRESS="10000" -SOAK_PROC="3" +_get_kernel_version() +{ + [ -x $WORKAREA ] \ + || _fail "can't access workarea $WORKAREA" + [ -r $WORKAREA/linux/Makefile ] \ + || _fail "can't read makefile $WORKAREA/linux/Makefile" + + eval `awk ' + BEGIN { FS = "[ \t=]+" } + /^VERSION =/ { a=$2 } + /^PATCHLEVEL =/ { b=$2 } + /^SUBLEVEL =/ { c=$2 } + /^EXTRAVERSION =/ { d=$2 } + END { + print "VERSION=" a "." b "." c d " ; SVERSION=" a "." b "." c + } + ' < $WORKAREA/linux/Makefile` +} # this should be constant ROOT="$HOME/qa" HOST=`hostname -s` -if [ ! -z "CVSROOT" ]; then - CVS=true +if [ ! -z "$CVSROOT" ]; then WORKAREA="$ROOT/linux-2.4-xfs" +else + [ -z "$WORKAREA" ] && WORKAREA="$ROOT/linux-xfs" fi -[ -z "$WORKAREA" ] && WORKAREA="$ROOT/linux-xfs" export WORKAREA + export PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin/ptools:/usr/local/bin" STATE=$ROOT/qa.state QADIR="$WORKAREA/cmd/xfstests" SUDO="su -c" -IMAGE="$BOOT/vmlinuz-$VERSION$EXTRA" -SYSTEMMAP="$BOOT/System.map-$VERSION$EXTRA" -CONFIG="$ROOT/$HOST-$VERSION$EXTRA.config" -MODULES="/lib/modules/$VERSION$EXTRA" +CONFIG="$ROOT/$HOST.config" COMMON_CONFIG="$WORKAREA/cmd/xfstests/common.config" SH="/bin/sh" LOG="$ROOT/qa.log" @@ -99,8 +116,8 @@ LOG="$ROOT/qa.log" case $HOST in fuzzy) - EMAIL="dxm@larry" - ADMINEMAIL="dxm@larry" + EMAIL="nathans@larry" + ADMINEMAIL="nathans@larry" MODULAR=1 ;; bruce) @@ -192,24 +209,25 @@ _sudo() _restart() { - exec $ROOT/su -c "shutdown -r 2 \"auto-qa rebooting\" &" < /dev/null + # erk - why won't this thing reboot reliably?? + exec $ROOT/su -c "(shutdown -r 2 \"auto-qa rebooting\" ; sleep 10 ; reboot ; sleep 10 ; reboot )&" < /dev/null } _update_autoqa_file() { SELF="$ROOT/auto-qa" SELF_UPDATE="cmd/xfstests/tools/auto-qa" - if [ $CVS = false ]; then + if [ -z "$CVSROOT" ]; then cmd="p_tupdate $SELF_UPDATE" else cmd="cvs -z3 update $SELF_UPDATE" fi - exec $SH -c "cd $WORKAREA ; eval $cmd; chmod +x $SELF_UPDATE ; exec $SELF" + exec $SH -c "cd $WORKAREA ; $cmd; chmod +x $SELF_UPDATE ; exec $SELF" } _update_workarea() { - if [ $CVS = false ]; then + if [ -z "$CVSROOT" ]; then _log " *** p_tupdate" cd $WORKAREA p_tupdate 2>&1 \ @@ -270,6 +288,11 @@ fi [ -r $CONFIG ] || _fail " !!! Can't read config file $CONFIG" . $COMMON_CONFIG || _fail " !!! Couldn't source $COMMON_CONFIG" +_get_kernel_version +IMAGE="$BOOT/vmlinuz$EXTRA" +SYSTEMMAP="$BOOT/System.map-$VERSION$EXTRA" +MODULES="/lib/modules/$SVERSION" + cd $ROOT started=1 @@ -288,9 +311,11 @@ do *init) echo "" > $ROOT/qa.log echo "" > $ROOT/qa.full - _log "******************************************" - _log "QA init (`date`)" - _log "******************************************" + _log "******************************************************" + _log "QA init $VERSION (`date`)" + _log "******************************************************" + _log "--- kernel ($IMAGE)" + _log "--- modules ($MODULES)" _change_state "inited" _update_autoqa_file @@ -316,11 +341,6 @@ do || _fail " !!! clean $pkg failed" done - _log " *** clean quota tools" - cd $WORKAREA/cmd/quota - ( rm -f configure ; autoconf ; sh configure ; make clean ) 2>&1 \ - || _fail " !!! clean quota failed" - _log " *** clean linux" cd $WORKAREA/linux make mrproper 2>&1 \ @@ -381,16 +401,6 @@ do || _fail " !!! install $pkg failed" done - _log " *** build and install quota tools" - cd $WORKAREA/cmd/quota - - # use e-fence - but this will only take effect on configure - export MALLOCLIB=/usr/lib/libefence.a - ( rm -f configure ; autoconf ; sh configure ; make all ) 2>&1 \ - || _fail " !!! build quota failed" - _sudo make install 2>&1 \ - || _fail " !!! install quota failed" - new_state="install" ;; @@ -441,9 +451,9 @@ do _log " *** kernel" ls -l /boot/*$EXTRA* 2>&1 _log " *** kernel modules" - ls -l /lib/modules/$VERSION$EXTRA/kernel/fs/pagebuf/* \ - /lib/modules/$VERSION$EXTRA/kernel/fs/xfs/* \ - /lib/modules/$VERSION$EXTRA/kernel/fs/xfs/support/* + ls -l /lib/modules/$SVERSION$EXTRA/kernel/fs/pagebuf/* \ + /lib/modules/$SVERSION$EXTRA/kernel/fs/xfs/* \ + /lib/modules/$SVERSION$EXTRA/kernel/fs/xfs_support/* if [ $MODULAR -eq 0 ] then