xfstests 240: test non-aligned AIO hole-filling
[xfstests-dev.git] / 089
1 #! /bin/bash
2 # FS QA Test No. 089
3 #
4 # Emulate the way Linux mount manipulates /etc/mtab to attempt to
5 # reproduce a possible bug in rename (see src/t_mtab.c).
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 addentries()
41 {
42         count=$1
43         pattern="%0$2d"
44
45         while [ $count -gt 0 ]; do
46                 touch `printf $pattern $count`
47                 let count=$count-1
48         done
49 }
50
51 # real QA test starts here
52 _supported_fs generic
53 _supported_os Linux
54
55 rm -f $seq.full
56 [ "X$TEST_DIR" = "X" ] && exit 1
57 cd $TEST_DIR
58 rm -fr test
59 mkdir test || exit 1
60 cd $TEST_DIR/test
61 mount > t_mtab
62
63 mtab()
64 {
65         $here/src/t_mtab 50 &
66         $here/src/t_mtab 50 &
67         $here/src/t_mtab 50 &
68         wait
69
70         $here/src/t_mtab 10000
71
72         echo directory entries:
73         ls | grep mtab
74         echo directory entries >> $here/$seq.full
75         ls -li >> $here/$seq.full
76 }
77
78 # directory with only a few entries
79 mtab
80
81 # directory with a hundred more entries, each 4chars wide
82 addentries 100 4
83 mtab
84
85 # directory with a thousand more entries, each 8chars wide
86 addentries 1000 8
87 mtab
88
89 status=0
90 exit