1#!/bin/sh
2# $FreeBSD: src/tools/regression/fstest/tests/rename/07.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 'from' argument has its immutable or append-only flag set"
5
6n0=`namegen`
7n1=`namegen`
8n2=`namegen`
9
10expect 0 mkdir ${n0} 0755
11
12expect 0 create ${n0}/${n1} 0644
13for flag in SF_IMMUTABLE UF_IMMUTABLE SF_APPEND UF_APPEND; do
14	expect 0 chflags ${n0} ${flag}
15	expect ${flag} stat ${n0} flags
16	expect EPERM rename ${n0}/${n1} ${n2}
17done
18expect 0 chflags ${n0} none
19expect 0 unlink ${n0}/${n1}
20
21expect 0 mkdir ${n0}/${n1} 0755
22for flag in SF_IMMUTABLE UF_IMMUTABLE SF_APPEND UF_APPEND; do
23	expect 0 chflags ${n0} ${flag}
24	expect ${flag} stat ${n0} flags
25	expect EPERM rename ${n0}/${n1} ${n2}
26done
27expect 0 chflags ${n0} none
28expect 0 rmdir ${n0}/${n1}
29
30expect 0 mkfifo ${n0}/${n1} 0644
31for flag in SF_IMMUTABLE UF_IMMUTABLE SF_APPEND UF_APPEND; do
32	expect 0 chflags ${n0} ${flag}
33	expect ${flag} stat ${n0} flags
34	expect EPERM rename ${n0}/${n1} ${n2}
35done
36expect 0 chflags ${n0} none
37expect 0 unlink ${n0}/${n1}
38
39expect 0 symlink ${n2} ${n0}/${n1}
40for flag in SF_IMMUTABLE UF_IMMUTABLE SF_APPEND UF_APPEND; do
41	expect 0 chflags ${n0} ${flag}
42	expect ${flag} stat ${n0} flags
43	expect EPERM rename ${n0}/${n1} ${n2}
44done
45expect 0 chflags ${n0} none
46expect 0 unlink ${n0}/${n1}
47
48expect 0 rmdir ${n0}
49