Files
apfstests/tests/xfs/259
T
Darrick J. Wong a860a167d8 common: kill _supported_os
fstests only supports Linux, so get rid of this unnecessary predicate.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2020-09-21 01:16:50 +08:00

67 lines
1.6 KiB
Bash
Executable File

#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2011 Red Hat. All Rights Reserved.
#
# FS QA Test No. 259
#
# Test fs creation on 4 TB minus few bytes partition
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
status=1 # failure is the default!
_cleanup()
{
rm -f "$testfile"
}
trap "_cleanup ; exit \$status" 0 1 2 3 15
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
# real QA test starts here
_supported_fs xfs
_require_test
_require_loop
_require_math
testfile=$TEST_DIR/259.image
# Test various sizes slightly less than 4 TB. Need to handle different
# minimum block sizes for CRC enabled filesystems, but use a small log so we
# don't write lots of zeros unnecessarily.
sizes_to_check="4096 2048 1024 512"
blocksizes="4096 2048 1024 512"
four_TB=$(_math "2^42")
# The initial value of _fs_has_crcs is not important, because we start testing
# with 4096 block size, it only matters for 512 block size test
_fs_has_crcs=0
for del in $sizes_to_check; do
for bs in $blocksizes; do
echo "Trying to make (4TB - ${del}B) long xfs, block size $bs"
# skip tests with 512 block size if the fs created has crc
# enabled by default
if [ $_fs_has_crcs -eq 1 -a $bs -eq 512 ]; then
break;
fi
ddseek=$(_math "$four_TB - $del")
rm -f "$testfile"
dd if=/dev/zero "of=$testfile" bs=1 count=0 seek=$ddseek \
>/dev/null 2>&1 || echo "dd failed"
lofile=$(losetup -f)
losetup $lofile "$testfile"
$MKFS_XFS_PROG -l size=32m -b size=$bs $lofile | _filter_mkfs \
>/dev/null 2> $tmp.mkfs || echo "mkfs failed!"
. $tmp.mkfs
sync
losetup -d $lofile
done
done
status=0
exit