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>
77 lines
2.0 KiB
Bash
Executable File
77 lines
2.0 KiB
Bash
Executable File
#! /bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (c) 2019 SUSE Linux Products GmbH. All Rights Reserved.
|
|
#
|
|
# FS QA Test 190
|
|
#
|
|
# A general test to validate that balance and qgroups work correctly when
|
|
# balance needs to be resumed on mount.
|
|
#
|
|
. ./common/preamble
|
|
_begin_fstest auto quick replay balance qgroup
|
|
|
|
# Import common functions.
|
|
. ./common/filter
|
|
. ./common/dmlogwrites
|
|
|
|
# real QA test starts here
|
|
|
|
# Modify as appropriate.
|
|
_supported_fs btrfs
|
|
_require_scratch
|
|
# and we need extra device as log device
|
|
_require_log_writes
|
|
|
|
nr_files=512 # enough metadata to bump tree height
|
|
file_size=2048 # small enough to be inlined
|
|
|
|
_log_writes_init $SCRATCH_DEV
|
|
_log_writes_mkfs >> $seqres.full 2>&1
|
|
|
|
_log_writes_mount
|
|
$BTRFS_UTIL_PROG quota enable $SCRATCH_MNT >> $seqres.full
|
|
$BTRFS_UTIL_PROG quota rescan -w $SCRATCH_MNT >> $seqres.full
|
|
|
|
# Create enough metadata for later balance
|
|
for ((i = 0; i < $nr_files; i++)); do
|
|
_pwrite_byte 0xcd 0 $file_size $SCRATCH_MNT/file_$i > /dev/null
|
|
done
|
|
|
|
# Flush delalloc so that balance has work to do.
|
|
sync
|
|
|
|
# Balance metadata so we will have at least one transaction committed with
|
|
# valid reloc tree, and hopefully another commit with orphan reloc tree.
|
|
_run_btrfs_balance_start -f -m $SCRATCH_MNT >> $seqres.full
|
|
|
|
_log_writes_unmount
|
|
_log_writes_remove
|
|
|
|
cur=$(_log_writes_find_next_fua 0)
|
|
echo "cur=$cur" >> $seqres.full
|
|
while [ ! -z "$cur" ]; do
|
|
_log_writes_replay_log_range $cur $SCRATCH_DEV >> $seqres.full
|
|
|
|
# Test that no crashes happen or any other kind of failure.
|
|
_scratch_mount
|
|
_scratch_unmount
|
|
|
|
# Don't trigger fsck here, as relocation get paused,
|
|
# at that transistent state, qgroup number may differ
|
|
# and cause false alert.
|
|
|
|
prev=$cur
|
|
cur=$(_log_writes_find_next_fua $(($cur + 1)))
|
|
[ -z "$cur" ] && break
|
|
done
|
|
|
|
# Now the fs has finished its balance and qgroup should be consistent.
|
|
# Fstest will automatically check the fs and btrfs check will report
|
|
# any qgroup inconsistent if something went wrong.
|
|
|
|
echo "Silence is golden"
|
|
|
|
# success, all done
|
|
status=0
|
|
exit
|