1166065Spjd#!/bin/sh 2166065Spjd# $FreeBSD$ 3166065Spjd 4166065Spjddesc="symlink returns EPERM if the parent directory of the file named by name2 has its immutable flag set" 5166065Spjd 6166065Spjddir=`dirname $0` 7166065Spjd. ${dir}/../misc.sh 8166065Spjd 9166065Spjdrequire chflags 10166065Spjd 11210984Spjdcase "${os}:${fs}" in 12210984SpjdFreeBSD:ZFS) 13210984Spjd echo "1..17" 14210984Spjd ;; 15210984SpjdFreeBSD:UFS) 16210984Spjd echo "1..30" 17210984Spjd ;; 18210984Spjd*) 19210984Spjd quick_exit 20210984Spjdesac 21166065Spjd 22166065Spjdn0=`namegen` 23166065Spjdn1=`namegen` 24166065Spjd 25166065Spjdexpect 0 mkdir ${n0} 0755 26166065Spjd 27166065Spjdexpect 0 symlink test ${n0}/${n1} 28166065Spjdexpect 0 unlink ${n0}/${n1} 29166065Spjd 30166065Spjdexpect 0 chflags ${n0} SF_IMMUTABLE 31166065Spjdexpect EPERM symlink test ${n0}/${n1} 32166065Spjdexpect 0 chflags ${n0} none 33166065Spjdexpect 0 symlink test ${n0}/${n1} 34166065Spjdexpect 0 unlink ${n0}/${n1} 35166065Spjd 36210984Spjdexpect 0 chflags ${n0} SF_NOUNLINK 37210984Spjdexpect 0 symlink test ${n0}/${n1} 38166065Spjdexpect 0 chflags ${n0} none 39166065Spjdexpect 0 unlink ${n0}/${n1} 40166065Spjd 41166065Spjdexpect 0 chflags ${n0} SF_APPEND 42166065Spjdexpect 0 symlink test ${n0}/${n1} 43166065Spjdexpect 0 chflags ${n0} none 44166065Spjdexpect 0 unlink ${n0}/${n1} 45166065Spjd 46210984Spjdcase "${os}:${fs}" in 47210984SpjdFreeBSD:UFS) 48210984Spjd expect 0 chflags ${n0} UF_IMMUTABLE 49210984Spjd expect EPERM symlink test ${n0}/${n1} 50210984Spjd expect 0 chflags ${n0} none 51210984Spjd expect 0 symlink test ${n0}/${n1} 52210984Spjd expect 0 unlink ${n0}/${n1} 53166065Spjd 54210984Spjd expect 0 chflags ${n0} UF_NOUNLINK 55210984Spjd expect 0 symlink test ${n0}/${n1} 56210984Spjd expect 0 chflags ${n0} none 57210984Spjd expect 0 unlink ${n0}/${n1} 58166065Spjd 59210984Spjd expect 0 chflags ${n0} UF_APPEND 60210984Spjd expect 0 symlink test ${n0}/${n1} 61210984Spjd expect 0 chflags ${n0} none 62210984Spjd expect 0 unlink ${n0}/${n1} 63210984Spjd ;; 64210984Spjdesac 65166065Spjd 66166065Spjdexpect 0 rmdir ${n0} 67