mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
Add diagnostic output of bulkstat to 024.full file.
This commit is contained in:
@@ -55,9 +55,11 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
|
|||||||
|
|
||||||
_require_tape $TAPE_DEV
|
_require_tape $TAPE_DEV
|
||||||
_create_dumpdir_fill
|
_create_dumpdir_fill
|
||||||
|
src/bstat $SCRATCH_MNT >>$here/$seq.full
|
||||||
_erase_hard
|
_erase_hard
|
||||||
_do_dump
|
_do_dump
|
||||||
_append_dumpdir_fill
|
_append_dumpdir_fill
|
||||||
|
src/bstat $SCRATCH_MNT >>$here/$seq.full
|
||||||
_erase_hard
|
_erase_hard
|
||||||
_do_dump_incremental
|
_do_dump_incremental
|
||||||
_do_restore
|
_do_restore
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -220,6 +220,10 @@ check options
|
|||||||
|
|
||||||
esac
|
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
|
if $xpand
|
||||||
then
|
then
|
||||||
have_test_arg=true
|
have_test_arg=true
|
||||||
|
|||||||
@@ -160,6 +160,17 @@ in
|
|||||||
SCRATCH_MNT=/mnt/xfs1
|
SCRATCH_MNT=/mnt/xfs1
|
||||||
SCRATCH_LOGDEV=/dev/sda9
|
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`"
|
echo "common.config: Error: need to define parameters for host `hostname -s`"
|
||||||
|
|||||||
+43
-16
@@ -53,11 +53,11 @@ fi
|
|||||||
NOTRUNSTS=2
|
NOTRUNSTS=2
|
||||||
|
|
||||||
# name those directories
|
# name those directories
|
||||||
dump_dir=$SCRATCH_MNT/dump.$$
|
|
||||||
dump_file=$tmp.dumpfile
|
dump_file=$tmp.dumpfile
|
||||||
dump_sdir=dump.$$
|
dump_sdir=dumpdir
|
||||||
restore_dir=$SCRATCH_MNT/restore.$$
|
dump_dir=$SCRATCH_MNT/$dump_sdir
|
||||||
restore_sdir=restore.$$
|
restore_sdir=restoredir
|
||||||
|
restore_dir=$SCRATCH_MNT/$restore_sdir
|
||||||
|
|
||||||
dumptape=$TAPE_DEV
|
dumptape=$TAPE_DEV
|
||||||
media_label="stress_tape_media"
|
media_label="stress_tape_media"
|
||||||
@@ -87,15 +87,15 @@ _mt()
|
|||||||
op=$1
|
op=$1
|
||||||
if _isrmt; then
|
if _isrmt; then
|
||||||
# REMOTE
|
# REMOTE
|
||||||
_rmtdev=`echo $dumptape | awk -F: '{print $2}'`
|
_rmtdev=`echo $dumptape | $AWK_PROG -F: '{print $2}'`
|
||||||
|
|
||||||
if echo $dumptape | grep '@' >/dev/null; then
|
if echo $dumptape | grep '@' >/dev/null; then
|
||||||
_spec=`echo $dumptape | awk -F: '{print $1}'`
|
_spec=`echo $dumptape | $AWK_PROG -F: '{print $1}'`
|
||||||
_rmtuser=`echo $_spec | awk -F@ '{print $1}'`
|
_rmtuser=`echo $_spec | $AWK_PROG -F@ '{print $1}'`
|
||||||
_rmthost=`echo $_spec | awk -F@ '{print $2}'`
|
_rmthost=`echo $_spec | $AWK_PROG -F@ '{print $2}'`
|
||||||
rsh -n -l $_rmtuser $_rmthost "mt -t $_rmtdev $op"
|
rsh -n -l $_rmtuser $_rmthost "mt -t $_rmtdev $op"
|
||||||
else
|
else
|
||||||
_rmthost=`echo $dumptape | awk -F: '{print $1}'`
|
_rmthost=`echo $dumptape | $AWK_PROG -F: '{print $1}'`
|
||||||
rsh -n $_rmthost "mt -t $_rmtdev $op"
|
rsh -n $_rmthost "mt -t $_rmtdev $op"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@@ -236,7 +236,7 @@ _wipe_fs()
|
|||||||
mkfs -t xfs -f $SCRATCH_DEV >>$seq.full ||\
|
mkfs -t xfs -f $SCRATCH_DEV >>$seq.full ||\
|
||||||
_error "mkfs failed"
|
_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"
|
_error "mount failed"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,10 +272,12 @@ _cleanup()
|
|||||||
|
|
||||||
_stable_fs()
|
_stable_fs()
|
||||||
{
|
{
|
||||||
umount $SCRATCH_MNT >>$seq.full ||\
|
sync; sync; sleep 30
|
||||||
_error "unmount failed"
|
# This can cause xfs recovery on ia64 which will die on ia64
|
||||||
mount -t xfs $SCRATCH_DEV $SCRATCH_MNT >>$seq.full ||\
|
# umount $SCRATCH_MNT >>$seq.full ||\
|
||||||
_error "mount failed"
|
# _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()
|
_mk_fillconfig_perm()
|
||||||
{
|
{
|
||||||
|
# dir_guid: ugo=rwx,g+s on dir is for IRIX chmod(1)
|
||||||
|
|
||||||
cat <<End-of-File >$tmp.config
|
cat <<End-of-File >$tmp.config
|
||||||
# pathname size/dir user group mode
|
# pathname size/dir user group mode
|
||||||
#
|
#
|
||||||
@@ -387,7 +391,7 @@ file_sticky 10 $nobody $nobody 01777
|
|||||||
file_mix1 10 $nobody $nobody 761
|
file_mix1 10 $nobody $nobody 761
|
||||||
file_mix2 10 $nobody $nobody 642
|
file_mix2 10 $nobody $nobody 642
|
||||||
dir_suid d $nobody $nobody 04777
|
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_sticky d $nobody $nobody 01777
|
||||||
dir_mix1 d $nobody $nobody 761
|
dir_mix1 d $nobody $nobody 761
|
||||||
dir_mix2 d $nobody $nobody 642
|
dir_mix2 d $nobody $nobody 642
|
||||||
@@ -837,7 +841,7 @@ _do_restore_file()
|
|||||||
_prepare_restore_dir
|
_prepare_restore_dir
|
||||||
|
|
||||||
echo "Restoring from file..."
|
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
|
echo "xfsrestore $opts" | _dir_filter
|
||||||
xfsrestore $opts 2>&1 | tee -a $seq.full | _dump_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"
|
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
|
# Compare using recursive diff the files of the dumped
|
||||||
|
|||||||
@@ -112,3 +112,4 @@ auto dxm@sgi.com
|
|||||||
058 acl auto
|
058 acl auto
|
||||||
059 xfsdump
|
059 xfsdump
|
||||||
060 xfsdump
|
060 xfsdump
|
||||||
|
061 xfsdump auto
|
||||||
|
|||||||
@@ -82,6 +82,8 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
last=`grep '^[0-9][0-9]* ' group | sort | tail -1 | sed -e 's/[ ].*//'`
|
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}'`
|
id=`$AWK_PROG </dev/null 'BEGIN{printf "%03d\n",'$last'+1}'`
|
||||||
echo "Next test is $id"
|
echo "Next test is $id"
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user