blob: ee89fcdd87fafaaf854d7fe26cbdba551b86f99c [file] [log] [blame]
#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2005 Silicon Graphics, Inc. All Rights Reserved.
#
# FS QA Test No. 113
#
# aio-stress
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=0 # success is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_cleanup()
{
cd /
rm -f $TEST_DIR/aio-stress.$$.*
}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
_do_test()
{
_n="$1"
_param="$2"
_count="$3"
_nproc="$4"
_files="$TEST_DIR/aiostress.$$.$_n"
__proc=$_nproc
[ $__proc -gt 1 ] && _param="-t $__proc $_param"
while [ $__proc -gt 1 ]; do
_files="$_files $TEST_DIR/aiostress.$$.$_n.$__proc"
let __proc=$__proc-1
done
rm -f $_files
echo ""
echo "-----------------------------------------------"
echo "aio-stress.$_n : $_param"
echo "-----------------------------------------------"
if ! $here/ltp/aio-stress $_param $AIOSTRESS_AVOID -I $_count $_files >>$tmp.out 2>&1
then
echo " aio-stress (count=$_count) returned $?"
cat $tmp.out
status=1
exit
fi
_check_test_fs
rm -f $_files
}
# real QA test starts here
_supported_fs generic
_require_test
_require_aio
_require_odirect
[ -x $here/ltp/aio-stress ] || _notrun "aio-stress not built for this platform"
echo "brevity is wit..."
count=1000
procs=20
_check_test_fs
# the default
_do_test 1 "-s 120m" $count 1
# and the default with multiprocess
_do_test 2 "-s 10m" $count $procs
# as above, but now using direct IO
_do_test 3 "-s 10m -O" $count $procs
# dio with O_SYNC and unwritten extent conversion
_do_test 4 "-s 10m -O -S" $count $procs
# random dio writes with O_SYNC and unwritten extent conversion
_do_test 5 "-s 10m -O -S -o 2" $count $procs
exit