mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
6f55bbd0f5
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>
92 lines
2.4 KiB
Bash
Executable File
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
|