Add diagnostic output of bulkstat to 024.full file.
authorfsgqa <fsgqa>
Fri, 28 Sep 2001 09:49:27 +0000 (09:49 +0000)
committerfsgqa <fsgqa>
Fri, 28 Sep 2001 09:49:27 +0000 (09:49 +0000)
024
061 [new file with mode: 0755]
061.out [new file with mode: 0644]
common
common.config
common.dump
group
new
src/dumpfile [new file with mode: 0644]

diff --git a/024 b/024
index 652749cec7df3f2ee8a26db30c647af12301962a..3ee9a0bffaa1f6cc7c5c97a8c77a730aa6b20310 100755 (executable)
--- a/024
+++ b/024
@@ -55,9 +55,11 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
 
 _require_tape $TAPE_DEV
 _create_dumpdir_fill
+src/bstat $SCRATCH_MNT >>$here/$seq.full
 _erase_hard
 _do_dump
 _append_dumpdir_fill
+src/bstat $SCRATCH_MNT >>$here/$seq.full
 _erase_hard
 _do_dump_incremental
 _do_restore
diff --git a/061 b/061
new file mode 100755 (executable)
index 0000000..e39e94a
--- /dev/null
+++ b/061
@@ -0,0 +1,67 @@
+#! /bin/sh
+# XFS QA Test No. 061
+# $Id: 1.1 $
+#
+# Test restoring a dump created in IRIX/XFS
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
+# 
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as
+# published by the Free Software Foundation.
+# 
+# This program is distributed in the hope that it would be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# 
+# Further, this software is distributed without any warranty that it is
+# free of the rightful claim of any third person regarding infringement
+# or the like.  Any license provided herein, whether implied or
+# otherwise, applies only to this software file.  Patent licenses, if
+# any, provided herein do not apply to combinations of this program with
+# other software, or any other product whatsoever.
+# 
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write the Free Software Foundation, Inc., 59
+# Temple Place - Suite 330, Boston MA 02111-1307, USA.
+# 
+# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+# Mountain View, CA  94043, or:
+# 
+# http://www.sgi.com 
+# 
+# For further information regarding this notice, see: 
+# 
+# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+#-----------------------------------------------------------------------
+#
+# creator
+owner=tes@bruce.melbourne.sgi.com
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=0       # success is the default!
+trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.dump
+
+# real QA test starts here
+
+# src/dumpfile based on dumping from
+# _create_dumpdir_fill_perm (small dump)
+
+_create_dumpdir_fill_perm
+dump_file=src/dumpfile # override dump_file to checked-in dump_file
+session_label="stress_056"
+_do_restore_file
+_diff_compare_sub
+_ls_nodate_compare_sub
+
+# success, all done
+exit
diff --git a/061.out b/061.out
new file mode 100644 (file)
index 0000000..45ed0a8
--- /dev/null
+++ b/061.out
@@ -0,0 +1,33 @@
+QA output created by 061
+Creating directory system to dump using src/fill.
+Setup ..........
+Restoring from file...
+xfsrestore  -f DUMP_FILE  -L stress_056 RESTORE_DIR
+xfsrestore: version 3.0 - Running single-threaded
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: found dump matching specified label:
+xfsrestore: hostname: crackle.melbourne.sgi.com
+xfsrestore: mount point: /spare1
+xfsrestore: volume: /hw/node/io/gio/hpc/scsi_ctlr/0/target/2/lun/0/disk/partition/1/char
+xfsrestore: session time: TIME
+xfsrestore: level: 0
+xfsrestore: session label: "stress_056"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: directory post-processing
+xfsrestore: restoring non-directory files
+xfsrestore: restore complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+Comparing dump directory with restore directory
+Files DUMP_DIR/file_guid and RESTORE_DIR/DUMP_SUBDIR/file_guid are identical
+Files DUMP_DIR/file_mix1 and RESTORE_DIR/DUMP_SUBDIR/file_mix1 are identical
+Files DUMP_DIR/file_mix2 and RESTORE_DIR/DUMP_SUBDIR/file_mix2 are identical
+Files DUMP_DIR/file_sticky and RESTORE_DIR/DUMP_SUBDIR/file_sticky are identical
+Files DUMP_DIR/file_suid and RESTORE_DIR/DUMP_SUBDIR/file_suid are identical
+Comparing listing of dump directory with restore directory
+Files TMP.dump_dir and TMP.restore_dir are identical
diff --git a/common b/common
index febd52e4140c66bc3206310cefbb3a8750cdb059..70f3f15a0b90a316ce5dcb2844896017b110d15d 100644 (file)
--- a/common
+++ b/common
@@ -220,6 +220,10 @@ check options
 
     esac
 
+    # get rid of leading 0s as can be interpreted as octal
+    start=`echo $start | sed 's/^0*//'`
+    end=`echo $end | sed 's/^0*//'`
+
     if $xpand
     then
        have_test_arg=true
index 526315bfccc1328032a6808dba6328144cf0ce00..64bb0136a850dde5af792fc5d2d5480e3651c24a 100644 (file)
@@ -160,6 +160,17 @@ in
        SCRATCH_MNT=/mnt/xfs1
        SCRATCH_LOGDEV=/dev/sda9
        ;;
+    surly)
+        TEST_DEV=/dev/hda9
+       TEST_DIR=/mnt/xfs1
+       SCRATCH_DEV=/dev/hda8
+       SCRATCH_MNT=/mnt/xfs0
+       SCRATCH_LOGDEV=/dev/hda10
+       TAPE_DEV=/dev/st0
+       RMT_TAPE_DEV=fuzzy:/dev/st0
+       RMT_IRIXTAPE_DEV=blub:/dev/tape
+       RMT_TAPE_USER=guest
+       ;;
 
     *)
        echo "common.config: Error: need to define parameters for host `hostname -s`"
index 094a11410f30cb64e77d37c2320845ab5b3dba5b..8572602480fffb68bee7f264e2f1ef9f10578653 100644 (file)
@@ -53,11 +53,11 @@ fi
 NOTRUNSTS=2
 
 # name those directories
-dump_dir=$SCRATCH_MNT/dump.$$
 dump_file=$tmp.dumpfile
-dump_sdir=dump.$$
-restore_dir=$SCRATCH_MNT/restore.$$
-restore_sdir=restore.$$
+dump_sdir=dumpdir
+dump_dir=$SCRATCH_MNT/$dump_sdir
+restore_sdir=restoredir
+restore_dir=$SCRATCH_MNT/$restore_sdir
 
 dumptape=$TAPE_DEV
 media_label="stress_tape_media"
@@ -87,15 +87,15 @@ _mt()
     op=$1
     if _isrmt; then  
        # REMOTE
-       _rmtdev=`echo $dumptape | awk -F: '{print $2}'`
+       _rmtdev=`echo $dumptape | $AWK_PROG -F: '{print $2}'`
 
         if echo $dumptape | grep '@' >/dev/null; then
-           _spec=`echo $dumptape | awk -F: '{print $1}'`
-           _rmtuser=`echo $_spec | awk -F@ '{print $1}'`
-           _rmthost=`echo $_spec | awk -F@ '{print $2}'`
+           _spec=`echo $dumptape | $AWK_PROG -F: '{print $1}'`
+           _rmtuser=`echo $_spec | $AWK_PROG -F@ '{print $1}'`
+           _rmthost=`echo $_spec | $AWK_PROG -F@ '{print $2}'`
            rsh -n -l $_rmtuser $_rmthost "mt -t $_rmtdev $op"
        else
-           _rmthost=`echo $dumptape | awk -F: '{print $1}'`
+           _rmthost=`echo $dumptape | $AWK_PROG -F: '{print $1}'`
            rsh -n $_rmthost "mt -t $_rmtdev $op"
        fi
     else
@@ -236,7 +236,7 @@ _wipe_fs()
     mkfs -t xfs -f $SCRATCH_DEV >>$seq.full  ||\
        _error "mkfs failed"
       
-    mount -t xfs $SCRATCH_DEV $SCRATCH_MNT >>$seq.full ||\
+    mount -t xfs -o sync $SCRATCH_DEV $SCRATCH_MNT >>$seq.full ||\
        _error "mount failed"
 }
 
@@ -272,10 +272,12 @@ _cleanup()
 
 _stable_fs()
 {
-    umount $SCRATCH_MNT >>$seq.full ||\
-       _error "unmount failed"
-    mount -t xfs $SCRATCH_DEV $SCRATCH_MNT >>$seq.full ||\
-       _error "mount failed"
+sync; sync; sleep 30 
+# This can cause xfs recovery on ia64 which will die on ia64
+#   umount $SCRATCH_MNT >>$seq.full ||\
+#      _error "unmount failed"
+#    mount -t xfs $SCRATCH_DEV $SCRATCH_MNT >>$seq.full ||\
+#      _error "mount failed"
 }
 
 #
@@ -378,6 +380,8 @@ End-of-File
 
 _mk_fillconfig_perm()
 {
+    # dir_guid: ugo=rwx,g+s on dir is for IRIX chmod(1)
+
     cat <<End-of-File >$tmp.config
 # pathname     size/dir  user group mode
 #
@@ -387,7 +391,7 @@ file_sticky 10      $nobody $nobody 01777
 file_mix1      10      $nobody $nobody 761
 file_mix2      10      $nobody $nobody 642
 dir_suid       d       $nobody $nobody 04777
-dir_guid       d       $nobody $nobody 02777
+dir_guid       d       $nobody $nobody ugo=rwx,g+s
 dir_sticky     d       $nobody $nobody 01777
 dir_mix1       d       $nobody $nobody 761
 dir_mix2       d       $nobody $nobody 642
@@ -837,7 +841,7 @@ _do_restore_file()
     _prepare_restore_dir
 
     echo "Restoring from file..."
-    opts="$_restore_debug$dumpargs -f $dump_file  -L $session_label $restore_dir"
+    opts="$_restore_debug$dump_args -f $dump_file  -L $session_label $restore_dir"
     echo "xfsrestore $opts" | _dir_filter  
     xfsrestore $opts 2>&1 | tee -a $seq.full | _dump_filter
 }
@@ -878,6 +882,29 @@ _ls_compare_sub()
     diff -cs $tmp.dump_dir $tmp.restore_dir | sed -e "s#$tmp#TMP#g"
 }
 
+#
+# filter out the date fields
+#
+_ls_nodate_filter()
+{
+    $AWK_PROG 'NF == 9 { print $1, $2, $3, $4, $9 }'
+}
+
+#
+# _ls_compare_sub but don't compare dates
+_ls_nodate_compare_sub()
+{
+    #
+    # verify we got back what we dumped
+    #
+    echo "Comparing listing of dump directory with restore directory"
+    ls -lR $dump_dir | tee -a $seq.full | _ls_filter | _ls_nodate_filter >$tmp.dump_dir
+    ls -lR $restore_dir/$dump_sdir | tee -a $seq.full | _ls_filter \
+    | _ls_nodate_filter | sed -e "s#$restore_sdir\/##" >$tmp.restore_dir
+
+    diff -cs $tmp.dump_dir $tmp.restore_dir | sed -e "s#$tmp#TMP#g"
+}
+
 
 #
 # Compare using recursive diff the files of the dumped
diff --git a/group b/group
index b92e072b5f4e58e662d0e815634516086cc463d7..c1e16f0e011358f1960994e3592b14296201e7ad 100644 (file)
--- a/group
+++ b/group
@@ -112,3 +112,4 @@ auto                dxm@sgi.com
 058 acl auto
 059 xfsdump
 060 xfsdump
+061 xfsdump auto
diff --git a/new b/new
index 4e56529f30a0f4823a6a64add66dcd8a6c55dc7a..d6525370511b936a600cd90cf812e246454e0c4c 100755 (executable)
--- a/new
+++ b/new
@@ -82,6 +82,8 @@ else
 fi
 
 last=`grep '^[0-9][0-9]* ' group | sort | tail -1 | sed -e 's/[        ].*//'`
+# get rid of leading 0s as can be interpreted as octal
+last=`echo $last | sed 's/^0*//'`
 id=`$AWK_PROG </dev/null 'BEGIN{printf "%03d\n",'$last'+1}'`
 echo "Next test is $id"
 
diff --git a/src/dumpfile b/src/dumpfile
new file mode 100644 (file)
index 0000000..55ae9e8
Binary files /dev/null and b/src/dumpfile differ