Files
apfstests/tests/xfs/167
T
Dave Chinner 6f55bbd0f5 xfs/167: need at least 10GB of scratch space to run
When running on a ramdisk, the fsstress background workload consumes
a GB of disk space every 5 seconds. This leads to the test failing
with ENOSPC because the test file cannot be created due otthe
background load cosuming it all. Hence don't run this test unless
the scratch device is large enough not to hit ENOSPC conditions.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-04-22 11:00:55 +10:00

92 lines
2.4 KiB
Bash
Executable File

#! /bin/bash
# FSQA Test No. 167
#
# unwritten extent conversion test
#
#-----------------------------------------------------------------------
# Copyright (c) 2007 Silicon Graphics, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it would be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#-----------------------------------------------------------------------
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
rm -f $seqres.full
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_cleanup()
{
$KILLALL_PROG -r -q -TERM fsstress 2> /dev/null
sync # ensures all fsstress processes died
}
workout()
{
procs=100
nops=15000
FSSTRESS_ARGS=`_scale_fsstress_args -d $SCRATCH_MNT -p $procs -n $nops \
$FSSTRESS_AVOID`
$FSSTRESS_PROG $FSSTRESS_ARGS >> $seqres.full &
sleep 2
}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
# real QA test starts here
_supported_fs xfs
_supported_os Linux
[ -n "$KILLALL_PROG" ] || _notrun "killall executable not found"
_require_scratch
_scratch_mkfs_xfs >/dev/null 2>&1
_scratch_mount
# fast devices can consume disk space at a rate of 1GB every 5s via the
# background workload. With 50 test loops, at 1 second per loop, that means we
# need at least 10GB of disk space to ensure this test will not fail with ENOSPC
# errors.
_require_fs_space $SCRATCH_MNT 10485760
# fast devices can consume disk space at a rate of 1GB every 5s via the
# background workload. With 50 test loops, at 1 second per loop, that means we
# need at least 10GB of disk space to ensure this test will not fail with ENOSPC
# errors.
_require_fs_space $SCRATCH_MNT 10485760
TEST_FILE=$SCRATCH_MNT/test_file
TEST_PROG=$here/src/unwritten_sync
LOOPS=50
echo "*** test unwritten extent conversion under heavy I/O"
workout
rm -f $TEST_FILE
$TEST_PROG $LOOPS $TEST_FILE
echo " *** test done"
status=0
exit