cosmetic change to the status email subject line.
[xfstests-dev.git] / tools / auto-qa
index 46cf365d694662e13adea29af9f42ec941543d04..b51b58145529bae0acdc4b4a021c47fd88d5a6d7 100755 (executable)
@@ -40,7 +40,8 @@ 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()
 {
@@ -62,7 +63,7 @@ _fail()
     case $state
     in
         cron*)
-            mail -s "xfs qa status report" $ADMINEMAIL \
+            mail -s "XFS QA status report" $ADMINEMAIL \
                 < $LOG 2>&1
        ;;
     esac
@@ -73,9 +74,9 @@ _fail()
 
 _get_kernel_version()
 {
-    [ -x $WORKAREA ] \
+    [ -x "$WORKAREA" ] \
         || _fail "can't access workarea $WORKAREA"
-    [ -r $WORKAREA/linux/Makefile ] \
+    [ -r "$WORKAREA/linux/Makefile" ] \
         || _fail "can't read makefile $WORKAREA/linux/Makefile"
 
     eval `awk '
@@ -115,30 +116,25 @@ LOG="$ROOT/qa.log"
 
 case $HOST
 in
-    fuzzy)
+    bruce)
         EMAIL="nathans@larry"
         ADMINEMAIL="nathans@larry"
-        MODULAR=1
-        ;;
-    bruce)
-        EMAIL="dxm@larry"
-        ADMINEMAIL="dxm@larry"
-        MODULAR=1
+        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'"
@@ -209,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 now \"auto-qa rebooting\" )&" < /dev/null
 }
 
 _update_autoqa_file()
@@ -270,7 +265,7 @@ in
     cron-restarted)
         # we don't auto restart after reboot, but cron the restart
         # to happen a bit later - it's much easier and safer that way
-        if [ $state != "cron-restarted" ]
+        if [ "$state" != "cron-restarted" ]
         then
             _fail "    !!! cron-restarted while not in \"cron-restarted\" state"
         fi
@@ -282,11 +277,11 @@ then
     _set_state $1
 fi
 
-[ $UID -eq 0 ]          && _fail "    !!! QA most be run as a normal user"
-[ -d $ROOT ]            || _fail "    !!! QA root \"$ROOT\" not found"
-[ -d $WORKAREA ]        || _fail "    !!! QA workarea \"$WORKAREA\" not found"
-[ -r $CONFIG ]          || _fail "    !!! Can't read config file $CONFIG"
-. $COMMON_CONFIG       || _fail "    !!! Couldn't source $COMMON_CONFIG"
+[ "$UID" -eq 0 ]       && _fail "    !!! QA most be run as a normal user"
+[ -d "$ROOT" ]         || _fail "    !!! QA root \"$ROOT\" not found"
+[ -d "$WORKAREA" ]     || _fail "    !!! QA workarea \"$WORKAREA\" not found"
+[ -r "$CONFIG" ]       || _fail "    !!! Can't read config file $CONFIG"
+. "$COMMON_CONFIG"     || _fail "    !!! Couldn't source $COMMON_CONFIG"
 
 _get_kernel_version
 IMAGE="$BOOT/vmlinuz$EXTRA"
@@ -371,20 +366,10 @@ do
             make EXTRAVERSION=$EXTRA dep 2>&1 \
                         || _fail "            !!! reconfig dep failed"
 
-            new_state="build"
+            new_state="buildtools"
             ;;
             
-        *build)
-            _log "        *** build kernel"
-            
-            _change_state "clean" ; # we better start from scratch if this fails
-            
-            cd $WORKAREA/linux
-            make -j2 EXTRAVERSION=$EXTRA bzImage 2>&1 \
-                        || _fail "            !!! build bzImage failed"
-            make -j2 EXTRAVERSION=$EXTRA modules 2>&1 \
-                        || _fail "            !!! build modules failed"
-                                    
+        *buildtools)
             _log "        *** build and install tools"
             for pkg in attr acl xfsprogs dmapi xfsdump xfstests 
             do
@@ -401,14 +386,25 @@ do
                         || _fail "            !!! install $pkg failed"
 
                # attr and acl now have install-lib targets as well
-               [ $pkg == "attr" -o $pkg == "acl" ] || continue
+               [ "$pkg" == "attr" -o "$pkg" == "acl" ] || continue
                _sudo make install-lib 2>&1 \
                        || _fail "            !!! install $pkg failed"
             done
 
-            new_state="install"
+            new_state="buildkernel"
             ;;
+
+        *buildkernel)
+            _log "        *** build kernel"
             
+            _change_state "clean" ; # we better start from scratch if this fails
+            
+            cd $WORKAREA/linux
+            make -j4 EXTRAVERSION=$EXTRA bzImage modules 2>&1 \
+                        || _fail "            !!! build bzImage/modules failed"
+            new_state="install"
+            ;;
+
         *install)
             _log "        *** blat old modules"
             
@@ -459,7 +455,7 @@ do
             ls -l /lib/modules/$SVERSION$EXTRA/kernel/fs/xfs/* \
                   /lib/modules/$SVERSION$EXTRA/kernel/fs/xfs_support/* 
             
-            if [ $MODULAR -eq 0 ]
+            if [ "$MODULAR" -eq 0 ]
             then
                 new_state="reset"
             else
@@ -504,7 +500,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"
@@ -534,7 +530,7 @@ do
             
             _log ""
             _log "            *** send status mail"
-            mail -s "xfs qa status report" $EMAIL < $ROOT/qa.out 2>&1
+            mail -s "XFS QA status report" $EMAIL < $ROOT/qa.out 2>&1
         
             new_state="done"
             ;;