xfs: test fixes for new 5.17 behaviors
[xfstests-dev.git] / tests / xfs / 130
index 71c1181f7a3393e576a38455fd7f29be7542211d..9465cbb0991d0f2784ac8b754dd3173f4613963d 100755 (executable)
@@ -7,29 +7,22 @@
 # Create and populate an XFS filesystem, corrupt the refcount btree,
 # then see how the kernel and xfs_repair deal with it.
 #
-seq=`basename "$0"`
-seqres="$RESULT_DIR/$seq"
-echo "QA output created by $seq"
-
-here=`pwd`
-tmp=/tmp/$$
-status=1       # failure is the default!
-trap "_cleanup; exit \$status" 0 1 2 3 15
+. ./common/preamble
+_begin_fstest fuzzers clone
 
+# Override the default cleanup function.
 _cleanup()
 {
     cd /
     #rm -f $tmp.*
 }
 
-# get standard environment, filters and checks
-. ./common/rc
+# Import common functions.
 . ./common/filter
 . ./common/attr
 . ./common/reflink
 
 # real QA test starts here
-_supported_os Linux
 _supported_fs xfs
 _require_scratch_reflink
 _require_cp_reflink
@@ -43,19 +36,24 @@ _scratch_mkfs_xfs > /dev/null
 echo "+ mount fs image"
 _scratch_mount
 blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")"
-agcount="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep agcount= | sed -e 's/^.*agcount=\([0-9]*\),.*$/\1/g')"
+agcount="$(_xfs_mount_agcount $SCRATCH_MNT)"
+_xfs_force_bdev data $SCRATCH_MNT
 
 echo "+ make some files"
 _pwrite_byte 0x62 0 $((blksz * 64)) "${SCRATCH_MNT}/file0" >> "$seqres.full"
 _pwrite_byte 0x61 0 $((blksz * 64)) "${SCRATCH_MNT}/file1" >> "$seqres.full"
 _cp_reflink "${SCRATCH_MNT}/file0" "${SCRATCH_MNT}/file2"
 _cp_reflink "${SCRATCH_MNT}/file1" "${SCRATCH_MNT}/file3"
-umount "${SCRATCH_MNT}"
+_scratch_unmount
 
 echo "+ check fs"
 _scratch_xfs_repair -n >> "$seqres.full" 2>&1 || \
        _fail "xfs_repair should not fail"
 
+echo "+ force log recovery"
+_scratch_mount
+_scratch_xfs_unmount_dirty
+
 echo "+ corrupt image"
 seq 0 $((agcount - 1)) | while read ag; do
        _scratch_xfs_db -x -c "agf ${ag}" -c "agf ${ag}" -c "addr refcntroot" \
@@ -71,7 +69,7 @@ _scratch_unmount >> $seqres.full 2>&1
 echo "+ repair fs"
 _disable_dmesg_check
 _repair_scratch_fs >> "$seqres.full" 2>&1
-_scratch_xfs_repair >> "$seqres.full" 2>&1
+_repair_scratch_fs >> "$seqres.full" 2>&1
 
 echo "+ mount image (2)"
 _scratch_mount