xfstests: Test FITRIM where length is smaller than FSB
[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 mtab_output=$TEST_DIR/mtab_output
32 here=`pwd`
33 tmp=/tmp/$$
34 status=1        # failure is the default!
35 trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
36
37 # get standard environment, filters and checks
38 . ./common.rc
39 . ./common.filter
40
41 addentries()
42 {
43         count=$1
44         pattern="%0$2d"
45
46         while [ $count -gt 0 ]; do
47                 touch `printf $pattern $count`
48                 let count=$count-1
49         done
50 }
51
52 # real QA test starts here
53 _supported_fs generic
54 _supported_os Linux
55
56 rm -f $seq.full
57 [ "X$TEST_DIR" = "X" ] && exit 1
58 cd $TEST_DIR
59 rm -fr test
60 mkdir test || exit 1
61 cd $TEST_DIR/test
62 mount > t_mtab
63
64 mtab()
65 {
66         rm -f $mtab_output
67         $here/src/t_mtab 50 $mtab_output &
68         $here/src/t_mtab 50 $mtab_output &
69         $here/src/t_mtab 50 $mtab_output &
70         wait
71         cat $mtab_output
72
73         $here/src/t_mtab 10000
74
75         echo directory entries:
76         ls | grep mtab
77         echo directory entries >> $here/$seq.full
78         ls -li >> $here/$seq.full
79 }
80
81 # directory with only a few entries
82 mtab
83
84 # directory with a hundred more entries, each 4chars wide
85 addentries 100 4
86 mtab
87
88 # directory with a thousand more entries, each 8chars wide
89 addentries 1000 8
90 mtab
91
92 status=0
93 exit