Files
apfstests/tests/xfs/229
T
Darrick J. Wong ea15099b71 xfs: force file creation to the data device for certain layout tests
I found a bunch more tests in the xfs/ directory that try to create
specific metadata layouts on the data device, either because they're
fuzz tests or because they're testing specific edge cases of the code
base.  Either way, these test need to override '-d rtinherit' in the
MKFS_OPTIONS, so do that with _xfs_force_bdev.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-05-23 21:31:18 +08:00

74 lines
1.4 KiB
Bash
Executable File

#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2010 Christoph Hellwig. All Rights Reserved.
# Copyright (c) 2010 Silicon Graphics, Inc. All Rights Reserved.
#
# FS QA Test No. 221
#
# Check for file corruption when using the extent size hint on
# the normal data subvolume.
#
# http://oss.sgi.com/bugzilla/show_bug.cgi?id=874
#
# Based on a bug report and testcase from Geoffrey Wehrman <gwehrman@sgi.com>.
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
_cleanup()
{
rm -rf ${TDIR}
}
trap "_cleanup ; exit \$status" 0 1 2 3 15
# get standard environment, filters and checks
. ./common/rc
# real QA test starts here
_supported_fs xfs
_require_test
_require_fs_space $TEST_DIR 3200000
TDIR="${TEST_DIR}/t_holes"
NFILES="10"
EXTSIZE="256k"
_xfs_force_bdev data $TEST_DIR
# Create the test directory
mkdir ${TDIR}
# Set the test directory extsize
$XFS_IO_PROG -c "extsize ${EXTSIZE}" ${TDIR}
# Create a set of holey files
echo "generating ${NFILES} files"
for i in $(seq 0 ${NFILES}); do
$here/src/t_holes ${TDIR}/${i}
done
# Compare the files
echo "comparing files"
errcnt=0
j=0
for i in $(seq 0 ${NFILES}); do
let j=$i+1
while [ ${j} -lt ${NFILES} ] ; do
if ! cmp ${TDIR}/${i} ${TDIR}/${j} ; then
let errcnt=$errcnt+1
fi
let j=$j+1
done
done
echo "got ${errcnt} errors"
status=$errcnt
exit $status