mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
ea15099b71
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>
74 lines
1.4 KiB
Bash
Executable File
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
|