Update to allow this test to be easily extended for exercising the security namespace.
[xfstests-dev.git] / 005
1 #! /bin/sh
2 # XFS QA Test No. 005
3 #
4 # Test symlinks & ELOOP
5 #
6 #-----------------------------------------------------------------------
7 # Copyright (c) 2000-2001 Silicon Graphics, Inc.  All Rights Reserved.
8
9 # This program is free software; you can redistribute it and/or modify it
10 # under the terms of version 2 of the GNU General Public License as
11 # published by the Free Software Foundation.
12
13 # This program is distributed in the hope that it would be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16
17 # Further, this software is distributed without any warranty that it is
18 # free of the rightful claim of any third person regarding infringement
19 # or the like.  Any license provided herein, whether implied or
20 # otherwise, applies only to this software file.  Patent licenses, if
21 # any, provided herein do not apply to combinations of this program with
22 # other software, or any other product whatsoever.
23
24 # You should have received a copy of the GNU General Public License along
25 # with this program; if not, write the Free Software Foundation, Inc., 59
26 # Temple Place - Suite 330, Boston MA 02111-1307, USA.
27
28 # Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
29 # Mountain View, CA  94043, or:
30
31 # http://www.sgi.com 
32
33 # For further information regarding this notice, see: 
34
35 # http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
36 #-----------------------------------------------------------------------
37 #
38 # creator
39 owner=dxm@sgi.com
40
41 #
42 # note ELOOP limit used to be 32 but changed to 8. Who know what
43 # it might be next.
44 #
45
46 seq=`basename $0`
47 echo "QA output created by $seq"
48
49 here=`pwd`
50 tmp=/tmp/$$
51 status=0        # success is the default!
52 trap "_cleanup; exit \$status" 0 1 2 3 15
53
54 _cleanup()
55 {
56     cd $TEST_DIR
57     rm -f symlink_{0,1,2,3}{0,1,2,3,4,5,6,7,8,9} symlink_self empty_file
58 }
59
60 _touch()
61 {
62     touch $@ 2>&1 | sed \
63         -e "s/creating \`//g" \
64         -e "s/setting times of \`//g" \
65         -e "s/cannot touch \`//g" \
66         -e "s/'//g"
67 }
68
69 # get standard environment, filters and checks
70 . ./common.rc
71 . ./common.filter
72
73 # real QA test starts here
74
75 cd $TEST_DIR
76
77 o=empty_file
78 _touch $o
79 for f in symlink_{0,1,2,3}{0,1,2,3,4,5,6,7,8,9}
80 do
81     ln -s $o $f
82     o=$f
83 done
84
85 ln -s symlink_self symlink_self
86
87 echo "*** touch deep symlinks"
88 echo ""
89 _touch symlink_{0,1,2,3}{0,1,2,3,4,5,6,7,8,9}
90 echo ""
91 echo "*** touch recusive symlinks"
92 echo ""
93 _touch symlink_self
94
95 exit