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