blob: 88e2f3eedd8eb9ccd684b7bd396be10c68853995 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
#! /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
#
. ./common/preamble
_begin_fstest auto quick
# Override the default cleanup function.
_cleanup()
{
rm -f "$testfile"
}
# Import common functions.
. ./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
|