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>
74 lines
1.8 KiB
Bash
Executable File
74 lines
1.8 KiB
Bash
Executable File
#! /bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (c) 2007 Silicon Graphics, Inc. All Rights Reserved.
|
|
#
|
|
# FS QA Test No. 178
|
|
#
|
|
# Reproduce PV#:967665
|
|
# Test if mkfs.xfs wipes old AG headers when using -f option
|
|
#
|
|
. ./common/preamble
|
|
_begin_fstest mkfs other auto
|
|
|
|
# dd the 1st sector then repair
|
|
_dd_repair_check()
|
|
{
|
|
#dd first sector
|
|
dd if=/dev/zero of=$1 bs=$2 count=1 2>&1 | _filter_dd
|
|
#xfs_repair
|
|
_scratch_xfs_repair 2>&1 | _filter_repair
|
|
#check repair
|
|
if _check_scratch_fs; then
|
|
echo "repair passed"
|
|
else
|
|
echo "repair failed!"
|
|
fi
|
|
}
|
|
|
|
# Import common functions.
|
|
. ./common/filter
|
|
. ./common/repair
|
|
|
|
# real QA test starts here
|
|
|
|
# Modify as appropriate.
|
|
_supported_fs xfs
|
|
|
|
# From the PV
|
|
# o Summary of testing:
|
|
# 1. mkfs.xfs a default filesystem, note agcount value.
|
|
# 2. dd zero first sector and repair and verify.
|
|
# 3. mkfs.xfs overriding agcount to a smaller value
|
|
# (ie. each AG is bigger)
|
|
# 4. dd zero first sector, repair and verify.
|
|
# -> old mkfs.xfs will cause repair to incorrectly
|
|
# fix filesystem, new mkfs.xfs will be fine.
|
|
|
|
_require_scratch
|
|
_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
|
|
test "${PIPESTATUS[0]}" -eq 0 || _fail "mkfs failed!"
|
|
|
|
# By executing the followint tmp file, will get on the mkfs options stored in
|
|
# variables
|
|
. $tmp.mkfs
|
|
|
|
# if the default agcount is too small, bump it up and re-mkfs before testing
|
|
if [ $agcount -lt 8 ]; then
|
|
agcount=8
|
|
_scratch_mkfs_xfs -dagcount=$agcount >/dev/null 2>&1 \
|
|
|| _notrun "Test requires at least 8 AGs."
|
|
fi
|
|
|
|
_dd_repair_check $SCRATCH_DEV $sectsz
|
|
|
|
# smaller AGCOUNT
|
|
let "agcount=$agcount-2"
|
|
_scratch_mkfs_xfs -dagcount=$agcount >/dev/null 2>&1 \
|
|
|| _fail "mkfs failed!"
|
|
|
|
_dd_repair_check $SCRATCH_DEV $sectsz
|
|
|
|
# success, all done
|
|
status=0
|
|
exit
|