shared,generic: move shared/006 to generic/

The shared/006 uses _scratch_mkfs_sized to create a limited size
file system, and then creates inodes until it gets ENOSPC, and then
checks to make sure the file system is consistent.  It then remounts
the file system, removes all of the files, and makes sure the file
system is consistent afterwards. This test was marked as only being
supported on ext[234] and xfs, and so it was in shared.

Now introduce a new _require_inode_limits() rule to run test on
filesystems that have a fixed inode number, then move the test to
generic.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
Theodore Ts'o
2019-06-28 18:59:09 -04:00
committed by Eryu Guan
parent 6cbaba4a08
commit a9868eb48d
6 changed files with 13 additions and 7 deletions
+80
View File
@@ -0,0 +1,80 @@
#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2014 Red Hat Inc. All Rights Reserved.
#
# FS QA Test No. generic/558
#
# Stress test fs by using up all inodes and check fs.
#
# Also a regression test for xfsprogs commit
# d586858 xfs_repair: fix sibling pointer tests in verify_dir2_path()
#
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
_cleanup()
{
cd /
rm -f $tmp.*
}
create_file()
{
local dir=$1
local nr_file=$2
local prefix=$3
local i=0
while [ $i -lt $nr_file ]; do
echo -n > $dir/${prefix}_${i}
let i=$i+1
done
}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
# real QA test starts here
_supported_fs generic
_supported_os Linux
_require_inode_limits
rm -f $seqres.full
echo "Silence is golden"
_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1
_scratch_mount
i=0
free_inode=`_get_free_inode $SCRATCH_MNT`
file_per_dir=1000
loop=$((free_inode / file_per_dir + 1))
mkdir -p $SCRATCH_MNT/testdir
echo "Create $((loop * file_per_dir)) files in $SCRATCH_MNT/testdir" >>$seqres.full
while [ $i -lt $loop ]; do
create_file $SCRATCH_MNT/testdir $file_per_dir $i >>$seqres.full 2>&1 &
let i=$i+1
done
wait
# log inode status in $seqres.full for debug purpose
echo "Inode status after taking all inodes" >>$seqres.full
$DF_PROG -i $SCRATCH_MNT >>$seqres.full
_check_scratch_fs
# Check again after removing all the files
rm -rf $SCRATCH_MNT/testdir
echo "Inode status after deleting all test files" >>$seqres.full
$DF_PROG -i $SCRATCH_MNT >>$seqres.full
status=0
exit
+2
View File
@@ -0,0 +1,2 @@
QA output created by 558
Silence is golden
+1
View File
@@ -560,3 +560,4 @@
555 auto quick cap
556 auto quick casefold
557 auto quick log
558 auto enospc