xfstests: move generic tests out of top level dir
[xfstests-dev.git] / tests / generic / 113
1 #! /bin/bash
2 # FS QA Test No. 113
3 #
4 # aio-stress
5 #
6 #-----------------------------------------------------------------------
7 # Copyright (c) 2005 Silicon Graphics, Inc.  All Rights Reserved.
8 #
9 # This program is free software; you can redistribute it and/or
10 # modify it under the terms of the GNU General Public License as
11 # published by the Free Software Foundation.
12 #
13 # This program is distributed in the hope that it would be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write the Free Software Foundation,
20 # Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
21 #
22 #-----------------------------------------------------------------------
23 #
24
25 seq=`basename $0`
26 echo "QA output created by $seq"
27
28 here=`pwd`
29 tmp=/tmp/$$
30 status=0        # success is the default!
31 trap "_cleanup; exit \$status" 0 1 2 3 15
32
33 _cleanup()
34 {
35     cd /
36     rm -f $testdir/aio-stress.$$.*
37     _cleanup_testdir
38 }
39
40 # get standard environment, filters and checks
41 . ./common.rc
42 . ./common.filter
43
44 _do_test()
45 {
46     _n="$1"
47     _param="$2"
48     _count="$3"
49     _nproc="$4"
50
51     _files="$testdir/aiostress.$$.$_n"
52     __proc=$_nproc
53     [ $__proc -gt 1 ] && _param="-t $__proc $_param"
54     while [ $__proc -gt 1 ]; do
55         _files="$_files $testdir/aiostress.$$.$_n.$__proc"
56         let __proc=$__proc-1
57     done
58     rm -f $_files
59  
60     echo ""
61     echo "-----------------------------------------------"
62     echo "aio-stress.$_n : $_param"
63     echo "-----------------------------------------------"
64     if ! $here/ltp/aio-stress $_param $AIOSTRESS_AVOID -I $_count $_files >>$tmp.out 2>&1
65     then
66         echo "    aio-stress (count=$_count) returned $?"
67         cat $tmp.out
68         status=1
69         exit
70     fi
71
72     _check_test_fs
73     rm -f $_files
74 }
75
76
77 # real QA test starts here
78 _supported_fs generic
79 _supported_os Linux
80
81 [ -x $here/ltp/aio-stress ] || _notrun "aio-stress not built for this platform"
82
83 _setup_testdir
84
85 echo "brevity is wit..."
86
87 count=1000
88 procs=20
89
90 _check_test_fs
91
92 # the default
93 _do_test 1 "-s 120m" $count 1
94
95 # and the default with multiprocess
96 _do_test 2 "-s 10m" $count $procs
97
98 # as above, but now using direct IO
99 _do_test 3 "-s 10m -O" $count $procs
100
101 # dio with O_SYNC and unwritten extent conversion
102 _do_test 4 "-s 10m -O -S" $count $procs
103
104 # random dio writes with O_SYNC and unwritten extent conversion
105 _do_test 5 "-s 10m -O -S -o 2" $count $procs
106
107 exit