tests: remove IRIX support from tests also supported on Linux
[xfstests-dev.git] / tests / xfs / 103
1 #! /bin/bash
2 # FS QA Test No. 103
3 #
4 # Exercise the XFS nosymlinks inode flag
5 #
6 #-----------------------------------------------------------------------
7 # Copyright (c) 2000-2005 Silicon Graphics, Inc.  All Rights Reserved.
8 #
9 # This program is free software; you can redistribute it and/or
10 # modify it under the terms 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,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write the Free Software Foundation,
20 # Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
21 #
22 #-----------------------------------------------------------------------
23 #
24
25 seq=`basename $0`
26 seqres=$RESULT_DIR/$seq
27 echo "QA output created by $seq"
28
29 here=`pwd`
30 tmp=/tmp/$$
31 status=1        # failure is the default!
32 trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
33
34 # get standard environment, filters and checks
35 . ./common/rc
36 . ./common/filter
37
38 _create_scratch()
39 {
40         echo "*** mkfs"
41         if ! _scratch_mkfs_xfs >$tmp.out 2>&1
42         then
43                 cat $tmp.out
44                 echo "failed to mkfs $SCRATCH_DEV"
45                 exit 1
46         fi
47
48         echo "*** mount"
49         if ! _scratch_mount 2>/dev/null
50         then
51                 echo "failed to mount $SCRATCH_DEV"
52                 exit 1
53         fi
54 }
55
56 _filter_noymlinks_flag()
57 {
58         _test_inode_flag nosymlinks $SCRATCH_MNT/nosymlink
59         if [ $? -eq 0 ]; then
60                 echo "--n-- SCRATCH_MNT/nosymlink"
61         else
62                 echo "----- SCRATCH_MNT/nosymlink"
63         fi
64 }
65
66 # real QA test starts here
67 _supported_os Linux
68 _supported_fs xfs
69 _require_scratch
70
71 _create_scratch
72
73 echo "*** testing nosymlinks directories"
74 mkdir $SCRATCH_MNT/nosymlink
75 echo "*** setting nosymlinks bit"
76 $XFS_IO_PROG -r -c 'chattr +n' $SCRATCH_MNT/nosymlink
77 _filter_noymlinks_flag
78
79 touch $SCRATCH_MNT/nosymlink/source
80 ln -s $SCRATCH_MNT/nosymlink/source $SCRATCH_MNT/nosymlink/target 2>&1 \
81         | _filter_scratch | _filter_ln
82 ln $SCRATCH_MNT/nosymlink/source $SCRATCH_MNT/nosymlink/hardlinksareok
83
84 echo "*** 1st listing..."
85 find $SCRATCH_MNT | _filter_scratch
86
87 echo "*** clearing nosymlinks bit"
88 $XFS_IO_PROG -r -c 'chattr -n' $SCRATCH_MNT/nosymlink
89 _filter_noymlinks_flag
90
91 ln -s $SCRATCH_MNT/nosymlink/source $SCRATCH_MNT/nosymlink/target
92 ln $SCRATCH_MNT/nosymlink/source $SCRATCH_MNT/nosymlink/hardlinksareok2
93
94 echo "*** 2nd listing..."
95 find $SCRATCH_MNT | _filter_scratch
96
97 echo "*** finished testing nosymlinks directories"
98
99 status=0
100 exit