1166065Spjd#!/bin/sh 2166065Spjd# $FreeBSD: releng/10.2/tools/regression/pjdfstest/tests/unlink/10.t 210984 2010-08-06 23:58:54Z pjd $ 3166065Spjd 4166065Spjddesc="unlink returns EPERM if the parent directory of the named file has its immutable or append-only flag set" 5166065Spjd 6166065Spjddir=`dirname $0` 7166065Spjd. ${dir}/../misc.sh 8166065Spjd 9166065Spjdrequire chflags 10166065Spjd 11210984Spjdcase "${os}:${fs}" in 12210984SpjdFreeBSD:ZFS) 13210984Spjd echo "1..16" 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 create ${n0}/${n1} 0644 28166065Spjdexpect 0 chflags ${n0} SF_IMMUTABLE 29166065Spjdexpect EPERM unlink ${n0}/${n1} 30166065Spjdexpect 0 chflags ${n0} none 31166065Spjdexpect 0 unlink ${n0}/${n1} 32166065Spjd 33166065Spjdexpect 0 create ${n0}/${n1} 0644 34210984Spjdexpect 0 chflags ${n0} SF_NOUNLINK 35210984Spjdexpect 0 unlink ${n0}/${n1} 36166065Spjdexpect 0 chflags ${n0} none 37166065Spjd 38166065Spjdexpect 0 create ${n0}/${n1} 0644 39166065Spjdexpect 0 chflags ${n0} SF_APPEND 40210984Spjdtodo FreeBSD:ZFS "Removing a file from a directory protected by SF_APPEND should return EPERM." 41166065Spjdexpect EPERM unlink ${n0}/${n1} 42166065Spjdexpect 0 chflags ${n0} none 43210984Spjdtodo FreeBSD:ZFS "Removing a file from a directory protected by SF_APPEND should return EPERM." 44166065Spjdexpect 0 unlink ${n0}/${n1} 45166065Spjd 46210984Spjdcase "${os}:${fs}" in 47210984SpjdFreeBSD:UFS) 48210984Spjd expect 0 create ${n0}/${n1} 0644 49210984Spjd expect 0 chflags ${n0} UF_IMMUTABLE 50210984Spjd expect EPERM unlink ${n0}/${n1} 51210984Spjd expect 0 chflags ${n0} none 52210984Spjd expect 0 unlink ${n0}/${n1} 53166065Spjd 54210984Spjd expect 0 create ${n0}/${n1} 0644 55210984Spjd expect 0 chflags ${n0} UF_NOUNLINK 56210984Spjd expect 0 unlink ${n0}/${n1} 57210984Spjd expect 0 chflags ${n0} none 58166065Spjd 59210984Spjd expect 0 create ${n0}/${n1} 0644 60210984Spjd expect 0 chflags ${n0} UF_APPEND 61210984Spjd expect EPERM unlink ${n0}/${n1} 62210984Spjd expect 0 chflags ${n0} none 63210984Spjd expect 0 unlink ${n0}/${n1} 64210984Spjd ;; 65210984Spjdesac 66166065Spjd 67166065Spjdexpect 0 rmdir ${n0} 68