Files
apfstests/tests/xfs/259
T

62 lines
1.5 KiB
Bash
Raw Normal View History

#! /bin/bash
2018-06-09 11:35:45 +10:00
# 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
#
2021-06-21 08:55:09 -07:00
. ./common/preamble
_begin_fstest auto quick
2021-06-21 08:55:09 -07:00
# Override the default cleanup function.
_cleanup()
{
rm -f "$testfile"
}
2021-06-21 08:55:09 -07:00
# Import common functions.
. ./common/filter
# real QA test starts here
_supported_fs xfs
_require_test
_require_loop
2011-10-07 22:42:00 +00:00
_require_math
2011-09-26 11:44:58 +00:00
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"
2011-10-07 22:42:00 +00:00
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