tidy mkfs parameterisation, -f option pulled into common.rc.
[xfstests-dev.git] / tools / auto-qa
index 454394c4ab8059c3d5b3c912dbc0babbaab5eb57..79a00a7c955328ff063978ac2f744f9c9ca5da4d 100755 (executable)
 
 # 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"
+export MKFS_OPTIONS=${MKFS_OPTIONS:=-bsize=4096}
+export MOUNT_OPTIONS=${MOUNT_OPTIONS:=-ologbufs=2}
+
 _log()
 {
     echo "$*" >&2
@@ -62,14 +72,24 @@ _fail()
     exit 1
 }
 
-# configuration (you could tune this)
-
-EXTRA="-xfs-qa"
-VERSION="2.4.3"
-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
 
@@ -82,14 +102,12 @@ else
 fi
 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.config"
-MODULES="/lib/modules/$VERSION$EXTRA"
 COMMON_CONFIG="$WORKAREA/cmd/xfstests/common.config"
 SH="/bin/sh"
 LOG="$ROOT/qa.log"
@@ -98,30 +116,25 @@ LOG="$ROOT/qa.log"
 
 case $HOST
 in
-    fuzzy)
-        EMAIL="dxm@larry"
-        ADMINEMAIL="dxm@larry"
-        MODULAR=1
-        ;;
     bruce)
-        EMAIL="dxm@larry"
-        ADMINEMAIL="dxm@larry"
-        MODULAR=1
+        EMAIL="nathans@larry"
+        ADMINEMAIL="nathans@larry"
+        MODULAR=0
         ;;
     sagan)
-        EMAIL="dxm@larry"
-        ADMINEMAIL="dxm@larry"
-        MODULAR=0
+        EMAIL="tes@larry"
+        ADMINEMAIL="tes@larry"
+        MODULAR=1
         ;;
     troppo)
-       EMAIL="nathans@larry"
-       ADMINEMAIL="nathans@larry"
+       EMAIL="kaos@larry"
+       ADMINEMAIL="kaos@larry"
        MODULAR=0
        ;;
-    goldfish)
+    frodo)
        EMAIL="nathans@larry"
        ADMINEMAIL="nathans@larry"
-       MODULAR=1
+       MODULAR=0
        ;;
     *)
         _fail "auto-qa: no configuration information for host '$HOST'"
@@ -192,8 +205,7 @@ _sudo()
 
 _restart()
 {
-    # 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
+    exec $ROOT/su -c "(shutdown -r 1 \"auto-qa rebooting\" )&" < /dev/null
 }
 
 _update_autoqa_file()
@@ -271,6 +283,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
@@ -289,9 +306,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
@@ -309,7 +328,7 @@ do
 
         *clean)
             # we need to configure or else we might fail to clean
-            for pkg in attr acl xfsprogs xfsdump xfstests
+            for pkg in attr acl xfsprogs dmapi xfsdump xfstests
            do
                 cd $WORKAREA/cmd/$pkg
                 _log "        *** clean $pkg tools"
@@ -362,7 +381,7 @@ do
                         || _fail "            !!! build modules failed"
                                     
             _log "        *** build and install tools"
-            for pkg in attr acl xfsprogs xfsdump xfstests 
+            for pkg in attr acl xfsprogs dmapi xfsdump xfstests 
             do
                 cd $WORKAREA/cmd/$pkg
 
@@ -375,6 +394,11 @@ do
 
                 _sudo make install install-dev 2>&1 \
                         || _fail "            !!! install $pkg failed"
+
+               # attr and acl now have install-lib targets as well
+               [ $pkg == "attr" -o $pkg == "acl" ] || continue
+               _sudo make install-lib 2>&1 \
+                       || _fail "            !!! install $pkg failed"
             done
 
             new_state="install"
@@ -427,9 +451,8 @@ 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/xfs/* \
+                  /lib/modules/$SVERSION$EXTRA/kernel/fs/xfs_support/* 
             
             if [ $MODULAR -eq 0 ]
             then
@@ -451,7 +474,7 @@ do
             
             _log "            *** removing modules"
             
-            for m in xfsidbg xfs pagebuf kdbm_pg kdbm_vm
+            for m in xfsidbg xfs kdbm_pg kdbm_vm
             do
                 _sudo rmmod $m 2> /dev/null
             done
@@ -476,7 +499,7 @@ do
             
             _log "            *** clean TEST_DEV"
             
-            _sudo mkfs -t xfs -f $TEST_DEV 2>&1 \
+            _sudo mkfs -t xfs -f $MKFS_OPTIONS $TEST_DEV 2>&1 \
                         || _fail "            !!! failed to mkfs TEST_DEV"
             
             _log "            *** mounting TEST_DEV"