1#!/bin/sh 2# $FreeBSD: src/tools/regression/fstest/tests/rename/08.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ 3 4desc="rename returns EPERM if the parent directory of the file pointed at by the 'to' argument has its immutable flag set" 5 6n0=`namegen` 7n1=`namegen` 8n2=`namegen` 9 10expect 0 mkdir ${n0} 0755 11 12expect 0 create ${n1} 0644 13for flag in SF_IMMUTABLE UF_IMMUTABLE; do 14 expect 0 chflags ${n0} ${flag} 15 expect ${flag} stat ${n0} flags 16 expect EPERM rename ${n1} ${n0}/${n2} 17done 18expect 0 chflags ${n0} none 19expect 0 unlink ${n1} 20 21expect 0 mkdir ${n1} 0755 22for flag in SF_IMMUTABLE UF_IMMUTABLE; do 23 expect 0 chflags ${n0} ${flag} 24 expect ${flag} stat ${n0} flags 25 expect EPERM rename ${n1} ${n0}/${n2} 26done 27expect 0 chflags ${n0} none 28expect 0 rmdir ${n1} 29 30expect 0 mkfifo ${n1} 0644 31for flag in SF_IMMUTABLE UF_IMMUTABLE; do 32 expect 0 chflags ${n0} ${flag} 33 expect ${flag} stat ${n0} flags 34 expect EPERM rename ${n1} ${n0}/${n2} 35done 36expect 0 chflags ${n0} none 37expect 0 unlink ${n1} 38 39expect 0 symlink ${n2} ${n1} 40for flag in SF_IMMUTABLE UF_IMMUTABLE; do 41 expect 0 chflags ${n0} ${flag} 42 expect ${flag} stat ${n0} flags 43 expect EPERM rename ${n1} ${n0}/${n2} 44done 45expect 0 chflags ${n0} none 46expect 0 unlink ${n1} 47 48expect 0 create ${n1} 0644 49for flag in SF_APPEND UF_APPEND; do 50 expect 0 chflags ${n0} ${flag} 51 expect ${flag} stat ${n0} flags 52 expect 0 rename ${n1} ${n0}/${n2} 53 expect 0 chflags ${n0} none 54 expect 0 rename ${n0}/${n2} ${n1} 55done 56expect 0 unlink ${n1} 57 58expect 0 mkdir ${n1} 0755 59for flag in SF_APPEND UF_APPEND; do 60 expect 0 chflags ${n0} ${flag} 61 expect ${flag} stat ${n0} flags 62 expect 0 rename ${n1} ${n0}/${n2} 63 expect 0 chflags ${n0} none 64 expect 0 rename ${n0}/${n2} ${n1} 65done 66expect 0 rmdir ${n1} 67 68expect 0 mkfifo ${n1} 0644 69for flag in SF_APPEND UF_APPEND; do 70 expect 0 chflags ${n0} ${flag} 71 expect ${flag} stat ${n0} flags 72 expect 0 rename ${n1} ${n0}/${n2} 73 expect 0 chflags ${n0} none 74 expect 0 rename ${n0}/${n2} ${n1} 75done 76expect 0 unlink ${n1} 77 78expect 0 symlink ${n2} ${n1} 79for flag in SF_APPEND UF_APPEND; do 80 expect 0 chflags ${n0} ${flag} 81 expect ${flag} stat ${n0} flags 82 expect 0 rename ${n1} ${n0}/${n2} 83 expect 0 chflags ${n0} none 84 expect 0 rename ${n0}/${n2} ${n1} 85done 86expect 0 unlink ${n1} 87 88expect 0 rmdir ${n0} 89