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