mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
7e98d41a6e
Refactor every test in the entire test suite to use the new boilerplate functions. This also migrates all the test group information into the test files. This patch has been autogenerated via the command: ./tools/convert-group btrfs ceph cifs ext4 f2fs generic nfs ocfs2 overlay perf shared udf xfs Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Allison Henderson <allison.henderson@oracle.com> Reviewed-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
53 lines
1.3 KiB
Bash
Executable File
53 lines
1.3 KiB
Bash
Executable File
#! /bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (c) 2017 Facebook. All Rights Reserved.
|
|
#
|
|
# FS QA Test 10
|
|
#
|
|
# Test delayed allocation with a large number of extents that are merged.
|
|
# Regression test for patch "Btrfs: fix delalloc accounting leak caused
|
|
# by u32 overflow".
|
|
#
|
|
. ./common/preamble
|
|
_begin_fstest auto
|
|
|
|
test_file="$TEST_DIR/$seq"
|
|
|
|
# Override the default cleanup function.
|
|
_cleanup()
|
|
{
|
|
cd /
|
|
rm -f $tmp.* "$test_file"
|
|
}
|
|
|
|
. ./common/filter
|
|
|
|
_supported_fs btrfs
|
|
_require_test
|
|
_require_btrfs_fs_sysfs
|
|
|
|
# Create 32k extents. All of these extents will be accounted as outstanding and
|
|
# reserved.
|
|
for ((i = 0; i < 32 * 1024; i++)); do
|
|
$XFS_IO_PROG -f -c "pwrite $((2 * 4096 * i)) 4096" "$test_file" >>"$seqres.full"
|
|
done
|
|
|
|
# Fill in the gaps between the created extents. The outstanding extents will
|
|
# all be merged into 1, but there will still be 32k reserved.
|
|
for ((i = 0; i < 32 * 1024; i++)); do
|
|
$XFS_IO_PROG -f -c "pwrite $((2 * 4096 * i + 4096)) 4096" "$test_file" >>"$seqres.full"
|
|
done
|
|
|
|
# Flush the delayed allocations.
|
|
sync
|
|
|
|
# Make sure that we didn't leak any metadata space.
|
|
uuid="$(findmnt -n -o UUID "$TEST_DIR")"
|
|
cd "/sys/fs/btrfs/$uuid/allocation"
|
|
echo "$(($(cat metadata/bytes_may_use) - $(cat global_rsv_reserved))) bytes leaked" | grep -v '^0 '
|
|
|
|
echo "Silence is golden"
|
|
|
|
status=0
|
|
exit
|