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