mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
fstests: make xfs/006 generic
xfs/006 has no requirements that are specific to XFS, so make it generic and other filesystems could get some coverage too. Along with the movement, I also added a test that removes all created dirs, as that's how the original bug was found. Signed-off-by: Eryu Guan <eguan@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#! /bin/bash
|
||||
# FS QA Test No. 006
|
||||
# FS QA Test No. 339
|
||||
#
|
||||
# Test that directory hash entries are place in the correct order.
|
||||
# commit f5ea110 ("xfs: add CRCs to dir2/da node blocks") left the
|
||||
@@ -34,29 +34,37 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
|
||||
|
||||
_cleanup()
|
||||
{
|
||||
cd /
|
||||
rm -f $tmp.*
|
||||
cd /
|
||||
rm -f $tmp.*
|
||||
}
|
||||
|
||||
# get standard environment, filters and checks
|
||||
. ./common/rc
|
||||
. ./common/filter
|
||||
. ./common/repair
|
||||
|
||||
# real QA test starts here
|
||||
|
||||
_supported_fs xfs
|
||||
_supported_fs generic
|
||||
_supported_os Linux
|
||||
_require_scratch
|
||||
_require_test_program "dirhash_collide"
|
||||
|
||||
_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
|
||||
_scratch_mount | _filter_scratch
|
||||
rm -f $seqres.full
|
||||
_scratch_mkfs >>$seqres.full 2>&1
|
||||
_scratch_mount
|
||||
|
||||
mkdir $SCRATCH_MNT/x
|
||||
$here/src/dirhash_collide -d -n 10000 $SCRATCH_MNT/x
|
||||
_scratch_unmount 2>&1 | _filter_scratch
|
||||
echo "Silence is golden"
|
||||
|
||||
_scratch_xfs_repair 2>&1 | _filter_repair
|
||||
testdir=$SCRATCH_MNT/$seq.$$
|
||||
mkdir -p $testdir
|
||||
$here/src/dirhash_collide -d -n 10000 $testdir >>$seqres.full 2>&1
|
||||
|
||||
# check the scratch device
|
||||
_scratch_unmount
|
||||
_check_scratch_fs
|
||||
|
||||
# remove all test dirs and let test harness check scratch fs again
|
||||
_scratch_mount
|
||||
rm -rf $testdir
|
||||
|
||||
# success, all done
|
||||
status=0
|
||||
@@ -0,0 +1,2 @@
|
||||
QA output created by 339
|
||||
Silence is golden
|
||||
@@ -341,3 +341,4 @@
|
||||
336 auto quick metadata
|
||||
337 auto quick metadata
|
||||
338 auto quick rw
|
||||
339 auto dir
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
QA output created by 006
|
||||
meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
|
||||
data = bsize=XXX blocks=XXX, imaxpct=PCT
|
||||
= sunit=XXX swidth=XXX, unwritten=X
|
||||
naming =VERN bsize=XXX
|
||||
log =LDEV bsize=XXX blocks=XXX
|
||||
realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
|
||||
Phase 1 - find and verify superblock...
|
||||
Phase 2 - using <TYPEOF> log
|
||||
- zero log...
|
||||
- scan filesystem freespace and inode maps...
|
||||
- found root inode chunk
|
||||
Phase 3 - for each AG...
|
||||
- scan and clear agi unlinked lists...
|
||||
- process known inodes and perform inode discovery...
|
||||
- process newly discovered inodes...
|
||||
Phase 4 - check for duplicate blocks...
|
||||
- setting up duplicate extent list...
|
||||
- check for inodes claiming duplicate blocks...
|
||||
Phase 5 - rebuild AG headers and trees...
|
||||
- reset superblock...
|
||||
Phase 6 - check inode connectivity...
|
||||
- resetting contents of realtime bitmap and summary inodes
|
||||
- traversing filesystem ...
|
||||
- traversal finished ...
|
||||
- moving disconnected inodes to lost+found ...
|
||||
Phase 7 - verify and correct link counts...
|
||||
done
|
||||
@@ -3,7 +3,6 @@
|
||||
003 db auto quick
|
||||
004 db auto quick
|
||||
005 auto quick
|
||||
006 auto dir
|
||||
007 auto quota quick
|
||||
008 rw ioctl auto quick
|
||||
009 rw ioctl auto prealloc quick
|
||||
|
||||
Reference in New Issue
Block a user