1271294Sngie#!/bin/sh
2271294Sngie# $FreeBSD: head/tools/regression/pjdfstest/tests/chmod/05.t 211352 2010-08-15 21:24:17Z pjd $
3271294Sngie
4271294Sngiedesc="chmod returns EACCES when search permission is denied for a component of the path prefix"
5271294Sngie
6271294Sngiedir=`dirname $0`
7271294Sngie. ${dir}/../misc.sh
8271294Sngie
9271294Sngieif supported lchmod; then
10271294Sngie	echo "1..19"
11271294Sngieelse
12271294Sngie	echo "1..14"
13271294Sngiefi
14271294Sngie
15271294Sngien0=`namegen`
16271294Sngien1=`namegen`
17271294Sngien2=`namegen`
18271294Sngie
19271294Sngieexpect 0 mkdir ${n0} 0755
20271294Sngiecdir=`pwd`
21271294Sngiecd ${n0}
22271294Sngieexpect 0 mkdir ${n1} 0755
23271294Sngieexpect 0 chown ${n1} 65534 65534
24271294Sngieexpect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644
25271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1}/${n2} 0642
26271294Sngieexpect 0642 -u 65534 -g 65534 stat ${n1}/${n2} mode
27271294Sngieexpect 0 chmod ${n1} 0644
28271294Sngieexpect EACCES -u 65534 -g 65534 chmod ${n1}/${n2} 0620
29271294Sngieexpect 0 chmod ${n1} 0755
30271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1}/${n2} 0420
31271294Sngieexpect 0420 -u 65534 -g 65534 stat ${n1}/${n2} mode
32271294Sngieif supported lchmod; then
33271294Sngie	expect 0 chmod ${n1} 0644
34271294Sngie	expect EACCES -u 65534 -g 65534 lchmod ${n1}/${n2} 0410
35271294Sngie	expect 0 chmod ${n1} 0755
36271294Sngie	expect 0 -u 65534 -g 65534 lchmod ${n1}/${n2} 0710
37271294Sngie	expect 0710 -u 65534 -g 65534 stat ${n1}/${n2} mode
38271294Sngiefi
39271294Sngieexpect 0 -u 65534 -g 65534 unlink ${n1}/${n2}
40271294Sngieexpect 0 rmdir ${n1}
41271294Sngiecd ${cdir}
42271294Sngieexpect 0 rmdir ${n0}
43