08.t revision 271294
1271294Sngie#!/bin/sh 2271294Sngie# $FreeBSD: head/tools/regression/pjdfstest/tests/chmod/08.t 211352 2010-08-15 21:24:17Z pjd $ 3271294Sngie 4271294Sngiedesc="chmod returns EPERM if the named file has its immutable or append-only flag set" 5271294Sngie 6271294Sngiedir=`dirname $0` 7271294Sngie. ${dir}/../misc.sh 8271294Sngie 9271294Sngierequire chflags 10271294Sngie 11271294Sngiecase "${os}:${fs}" in 12271294SngieFreeBSD:ZFS) 13271294Sngie echo "1..29" 14271294Sngie ;; 15271294SngieFreeBSD:UFS) 16271294Sngie echo "1..54" 17271294Sngie ;; 18271294Sngie*) 19271294Sngie quick_exit 20271294Sngieesac 21271294Sngie 22271294Sngien0=`namegen` 23271294Sngie 24271294Sngieexpect 0 create ${n0} 0644 25271294Sngieexpect 0 chflags ${n0} SF_IMMUTABLE 26271294Sngieexpect EPERM chmod ${n0} 0600 27271294Sngiesupported lchmod && expect EPERM lchmod ${n0} 0600 28271294Sngieexpect 0644 stat ${n0} mode 29271294Sngieexpect 0 chflags ${n0} none 30271294Sngieexpect 0 chmod ${n0} 0600 31271294Sngieexpect 0600 stat ${n0} mode 32271294Sngiesupported lchmod && expect 0 lchmod ${n0} 0400 33271294Sngiesupported lchmod && expect 0400 stat ${n0} mode 34271294Sngieexpect 0 unlink ${n0} 35271294Sngie 36271294Sngieexpect 0 create ${n0} 0644 37271294Sngieexpect 0 chflags ${n0} SF_NOUNLINK 38271294Sngieexpect 0 chmod ${n0} 0600 39271294Sngieexpect 0600 stat ${n0} mode 40271294Sngiesupported lchmod && expect 0 lchmod ${n0} 0400 41271294Sngiesupported lchmod && expect 0400 stat ${n0} mode 42271294Sngieexpect 0 chflags ${n0} none 43271294Sngieexpect 0 unlink ${n0} 44271294Sngie 45271294Sngiecase "${os}:${fs}" in 46271294SngieFreeBSD:ZFS) 47271294Sngie expect 0 create ${n0} 0644 48271294Sngie expect 0 chflags ${n0} SF_APPEND 49271294Sngie expect 0 chmod ${n0} 0600 50271294Sngie expect 0600 stat ${n0} mode 51271294Sngie supported lchmod && expect 0 lchmod ${n0} 0500 52271294Sngie supported lchmod && expect 0500 stat ${n0} mode 53271294Sngie expect 0 chflags ${n0} none 54271294Sngie expect 0 chmod ${n0} 0400 55271294Sngie expect 0400 stat ${n0} mode 56271294Sngie expect 0 unlink ${n0} 57271294Sngie ;; 58271294SngieFreeBSD:UFS) 59271294Sngie expect 0 create ${n0} 0644 60271294Sngie expect 0 chflags ${n0} SF_APPEND 61271294Sngie expect EPERM chmod ${n0} 0600 62271294Sngie supported lchmod && expect EPERM lchmod ${n0} 0600 63271294Sngie expect 0644 stat ${n0} mode 64271294Sngie expect 0 chflags ${n0} none 65271294Sngie expect 0 chmod ${n0} 0600 66271294Sngie expect 0600 stat ${n0} mode 67271294Sngie expect 0 unlink ${n0} 68271294Sngie 69271294Sngie expect 0 create ${n0} 0644 70271294Sngie expect 0 chflags ${n0} UF_IMMUTABLE 71271294Sngie expect EPERM chmod ${n0} 0600 72271294Sngie supported lchmod && expect EPERM lchmod ${n0} 0600 73271294Sngie expect 0644 stat ${n0} mode 74271294Sngie expect 0 chflags ${n0} none 75271294Sngie expect 0 chmod ${n0} 0600 76271294Sngie expect 0600 stat ${n0} mode 77271294Sngie expect 0 unlink ${n0} 78271294Sngie 79271294Sngie expect 0 create ${n0} 0644 80271294Sngie expect 0 chflags ${n0} UF_NOUNLINK 81271294Sngie expect 0 chmod ${n0} 0600 82271294Sngie expect 0600 stat ${n0} mode 83271294Sngie supported lchmod && expect 0 lchmod ${n0} 0400 84271294Sngie supported lchmod && expect 0400 stat ${n0} mode 85271294Sngie expect 0 chflags ${n0} none 86271294Sngie expect 0 unlink ${n0} 87271294Sngie 88271294Sngie expect 0 create ${n0} 0644 89271294Sngie expect 0 chflags ${n0} UF_APPEND 90271294Sngie expect EPERM chmod ${n0} 0600 91271294Sngie supported lchmod && expect EPERM lchmod ${n0} 0600 92271294Sngie expect 0644 stat ${n0} mode 93271294Sngie expect 0 chflags ${n0} none 94271294Sngie expect 0 chmod ${n0} 0600 95271294Sngie expect 0600 stat ${n0} mode 96271294Sngie expect 0 unlink ${n0} 97271294Sngie ;; 98271294Sngieesac 99