1#!/bin/sh
| 1#!/bin/sh
|
2# $FreeBSD: head/tools/regression/fstest/tests/rename/08.t 166065 2007-01-17 01:42:12Z pjd $
| 2# $FreeBSD: head/tools/regression/fstest/tests/rename/08.t 210984 2010-08-06 23:58:54Z 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
| 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"
| 11case "${os}:${fs}" in 12FreeBSD:ZFS) 13 flags1="SF_IMMUTABLE" 14 flags2="SF_NOUNLINK SF_APPEND" 15 echo "1..110" 16 ;; 17FreeBSD:UFS) 18 flags1="SF_IMMUTABLE UF_IMMUTABLE" 19 flags2="SF_NOUNLINK SF_APPEND UF_NOUNLINK UF_APPEND" 20 echo "1..188" 21 ;; 22*) 23 quick_exit 24esac
|
12 13n0=`namegen` 14n1=`namegen` 15n2=`namegen` 16 17expect 0 mkdir ${n0} 0755 18 19expect 0 create ${n1} 0644
| 25 26n0=`namegen` 27n1=`namegen` 28n2=`namegen` 29 30expect 0 mkdir ${n0} 0755 31 32expect 0 create ${n1} 0644
|
20for flag in SF_IMMUTABLE UF_IMMUTABLE; do
| 33for flag in ${flags1}; 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
| 34 expect 0 chflags ${n0} ${flag} 35 expect ${flag} stat ${n0} flags 36 expect EPERM rename ${n1} ${n0}/${n2} 37done 38expect 0 chflags ${n0} none 39expect 0 unlink ${n1} 40 41expect 0 mkdir ${n1} 0755
|
29for flag in SF_IMMUTABLE UF_IMMUTABLE; do
| 42for flag in ${flags1}; 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
| 43 expect 0 chflags ${n0} ${flag} 44 expect ${flag} stat ${n0} flags 45 expect EPERM rename ${n1} ${n0}/${n2} 46done 47expect 0 chflags ${n0} none 48expect 0 rmdir ${n1} 49 50expect 0 mkfifo ${n1} 0644
|
38for flag in SF_IMMUTABLE UF_IMMUTABLE; do
| 51for flag in ${flags1}; 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
| 52 expect 0 chflags ${n0} ${flag} 53 expect ${flag} stat ${n0} flags 54 expect EPERM rename ${n1} ${n0}/${n2} 55done 56expect 0 chflags ${n0} none 57expect 0 unlink ${n1} 58
|
| 59expect 0 mknod ${n1} c 0644 1 2 60for flag in ${flags1}; do 61 expect 0 chflags ${n0} ${flag} 62 expect ${flag} stat ${n0} flags 63 expect EPERM rename ${n1} ${n0}/${n2} 64done 65expect 0 chflags ${n0} none 66expect 0 unlink ${n1} 67 68expect 0 bind ${n1} 69for flag in ${flags1}; do 70 expect 0 chflags ${n0} ${flag} 71 expect ${flag} stat ${n0} flags 72 expect EPERM rename ${n1} ${n0}/${n2} 73done 74expect 0 chflags ${n0} none 75expect 0 unlink ${n1} 76
|
46expect 0 symlink ${n2} ${n1}
| 77expect 0 symlink ${n2} ${n1}
|
47for flag in SF_IMMUTABLE UF_IMMUTABLE; do
| 78for flag in ${flags1}; 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
| 79 expect 0 chflags ${n0} ${flag} 80 expect ${flag} stat ${n0} flags 81 expect EPERM rename ${n1} ${n0}/${n2} 82done 83expect 0 chflags ${n0} none 84expect 0 unlink ${n1} 85 86expect 0 create ${n1} 0644
|
56for flag in SF_APPEND UF_APPEND SF_NOUNLINK UF_NOUNLINK; do
| 87for flag in ${flags2}; 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
| 88 expect 0 chflags ${n0} ${flag} 89 expect ${flag} stat ${n0} flags 90 expect 0 rename ${n1} ${n0}/${n2} 91 expect 0 chflags ${n0} none 92 expect 0 rename ${n0}/${n2} ${n1} 93done 94expect 0 unlink ${n1} 95 96expect 0 mkdir ${n1} 0755
|
66for flag in SF_APPEND UF_APPEND SF_NOUNLINK UF_NOUNLINK; do
| 97for flag in ${flags2}; 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
| 98 expect 0 chflags ${n0} ${flag} 99 expect ${flag} stat ${n0} flags 100 expect 0 rename ${n1} ${n0}/${n2} 101 expect 0 chflags ${n0} none 102 expect 0 rename ${n0}/${n2} ${n1} 103done 104expect 0 rmdir ${n1} 105 106expect 0 mkfifo ${n1} 0644
|
76for flag in SF_APPEND UF_APPEND SF_NOUNLINK UF_NOUNLINK; do
| 107for flag in ${flags2}; 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
| 108 expect 0 chflags ${n0} ${flag} 109 expect ${flag} stat ${n0} flags 110 expect 0 rename ${n1} ${n0}/${n2} 111 expect 0 chflags ${n0} none 112 expect 0 rename ${n0}/${n2} ${n1} 113done 114expect 0 unlink ${n1} 115
|
| 116expect 0 mknod ${n1} c 0644 1 2 117for flag in ${flags2}; do 118 expect 0 chflags ${n0} ${flag} 119 expect ${flag} stat ${n0} flags 120 expect 0 rename ${n1} ${n0}/${n2} 121 expect 0 chflags ${n0} none 122 expect 0 rename ${n0}/${n2} ${n1} 123done 124expect 0 unlink ${n1} 125 126expect 0 bind ${n1} 127for flag in ${flags2}; do 128 expect 0 chflags ${n0} ${flag} 129 expect ${flag} stat ${n0} flags 130 expect 0 rename ${n1} ${n0}/${n2} 131 expect 0 chflags ${n0} none 132 expect 0 rename ${n0}/${n2} ${n1} 133done 134expect 0 unlink ${n1} 135
|
85expect 0 symlink ${n2} ${n1}
| 136expect 0 symlink ${n2} ${n1}
|
86for flag in SF_APPEND UF_APPEND SF_NOUNLINK UF_NOUNLINK; do
| 137for flag in ${flags2}; 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}
| 138 expect 0 chflags ${n0} ${flag} 139 expect ${flag} stat ${n0} flags 140 expect 0 rename ${n1} ${n0}/${n2} 141 expect 0 chflags ${n0} none 142 expect 0 rename ${n0}/${n2} ${n1} 143done 144expect 0 unlink ${n1} 145 146expect 0 rmdir ${n0}
|