fdddad41bc2badcf360155a4799500b1a47f05e2
[xfstests-dev.git] / tests / generic / 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
26 seq=`basename $0`
27 seqres=$RESULT_DIR/$seq
28 echo "QA output created by $seq"
29
30 mtab_output=$TEST_DIR/mtab_output
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 $seqres.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         rm -f $mtab_output
66         $here/src/t_mtab 50 $mtab_output &
67         $here/src/t_mtab 50 $mtab_output &
68         $here/src/t_mtab 50 $mtab_output &
69         wait
70         cat $mtab_output
71
72         $here/src/t_mtab 10000
73
74         echo directory entries:
75         ls | grep mtab
76         echo directory entries >> $seqres.full
77         ls -li >> $seqres.full
78 }
79
80 # directory with only a few entries
81 mtab
82
83 # directory with a hundred more entries, each 4chars wide
84 addentries 100 4
85 mtab
86
87 # directory with a thousand more entries, each 8chars wide
88 addentries 1000 8
89 mtab
90
91 status=0
92 exit