xfs: test xfs_copy for various sector and block sizes

This tests xfs_copy, copying all combinations of sector
size and block size possible on the platform running the
test.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Eric Sandeen
2014-12-12 10:55:15 +11:00
committed by Dave Chinner
parent 3de9ad01e2
commit b3db9ca464
3 changed files with 83 additions and 0 deletions
Executable
+80
View File
@@ -0,0 +1,80 @@
#! /bin/bash
# FS QA Test No. 032
#
# Test xfs_copy for all filesystem sector size / block size
# combinations possible on this platform.
#
#-----------------------------------------------------------------------
# Copyright (c) 2014 Red Hat, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms 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. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#-----------------------------------------------------------------------
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
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
# real QA test starts here
_supported_fs xfs
_supported_os IRIX Linux
_require_scratch
[ $here/src/feature ] || _notrun "src/feature not built, skipping this test"
[ "$USE_EXTERNAL" = yes ] && _notrun "Cannot xfs_copy with external devices"
[ -n "$XFS_COPY_PROG" ] || _notrun "xfs_copy binary not yet installed"
rm -f $seqres.full
SECTORSIZE=`blockdev --getss $SCRATCH_DEV`
PAGESIZE=`src/feature -s`
IMGFILE=$TEST_DIR/${seq}_copy.img
echo "Silence is golden."
while [ $SECTORSIZE -le $PAGESIZE ]; do
BLOCKSIZE=$SECTORSIZE;
while [ $BLOCKSIZE -le $PAGESIZE ]; do
echo "=== Sector size $SECTORSIZE Block size $BLOCKSIZE ==" >> $seqres.full
_scratch_mkfs -s size=$SECTORSIZE -b size=$BLOCKSIZE -d size=1g >> $seqres.full 2>&1
_scratch_mount
# light population of the fs
$FSSTRESS_PROG -n 100 -d $SCRATCH_MNT >> $seqres.full 2>&1
_scratch_unmount
$XFS_COPY_PROG -d $SCRATCH_DEV $IMGFILE >> $seqres.full 2>&1 || \
_fail "Copy failed for Sector size $SECTORSIZE Block size $BLOCKSIZE"
$XFS_REPAIR_PROG $IMGFILE >> $seqres.full 2>&1 || \
_fail "Copy corrupted for Sector size $SECTORSIZE Block size $BLOCKSIZE"
BLOCKSIZE=$(($BLOCKSIZE * 2));
done
SECTORSIZE=$(($SECTORSIZE * 2));
done
# success, all done
exit
+2
View File
@@ -0,0 +1,2 @@
QA output created by 032
Silence is golden.
+1
View File
@@ -29,6 +29,7 @@
029 mkfs logprint log auto quick
030 repair auto quick
031 repair mkfs auto quick
032 copy auto quick
033 repair auto quick
034 other auto quick
035 dump ioctl tape auto