1.1.0 release
[xfstests-dev.git] / 084
1 #! /bin/bash
2 # FS QA Test No. 084
3 #
4 # Exercises unwritten extent reads and writes, looking
5 # for data corruption (zeroes read) near the end of file.
6 #
7 #-----------------------------------------------------------------------
8 # Copyright (c) 2000-2004 Silicon Graphics, Inc.  All Rights Reserved.
9 #
10 # This program is free software; you can redistribute it and/or
11 # modify it under the terms of the GNU General Public License as
12 # published by the Free Software Foundation.
13 #
14 # This program is distributed in the hope that it would be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write the Free Software Foundation,
21 # Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
22 #
23 #-----------------------------------------------------------------------
24 #
25 # creator
26 owner=nathans@sgi.com
27
28 seq=`basename $0`
29 echo "QA output created by $seq"
30
31 here=`pwd`
32 tmp=/tmp/$$
33 status=1        # failure is the default!
34 trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
35
36 # get standard environment, filters and checks
37 . ./common.rc
38 . ./common.filter
39
40 _filter_resv()
41 {
42         _filter_test_dir | sed -e 's/[0-9][0-9]* bytes/NUM bytes/g'
43 }
44
45 pgsize=`$here/src/feature -s`
46
47 # -i == number of iterations
48 # -l == bytes to leak on each iteration
49 # -b == read/write block size
50 # -s == preallocation size
51
52 # real QA test starts here
53 _supported_fs xfs
54 _supported_os IRIX Linux
55
56 if [ $HOSTOS == "IRIX" ]; then 
57     if uname -R | grep -iq debug; then 
58         # taking up to 23 mins on my 512K octane on debug
59         # not worth worrying about
60         _notrun "don't bother running on debug IRIX"
61     fi
62 fi
63
64 echo
65 echo "*** First case - I/O blocksize same as pagesize"
66 $here/src/resvtest -i 20 -b $pgsize "$TEST_DIR/resv" | _filter_resv
67 [ $? -eq 0 ] && echo done
68 rm -f "$TEST_DIR/mumble"
69
70 echo
71 echo "*** Second case - 512 byte I/O blocksize"
72 $here/src/resvtest -i 40 -b 512 "$TEST_DIR/resv" | _filter_resv
73 [ $? -eq 0 ] && echo done
74 rm -f "$TEST_DIR/grumble"
75
76 # success, all done
77 status=0
78 exit