1271294Sngie#!/bin/sh 2271294Sngie# $FreeBSD: head/tools/regression/pjdfstest/tests/truncate/08.t 211352 2010-08-15 21:24:17Z pjd $ 3271294Sngie 4271294Sngiedesc="truncate 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..22" 14271294Sngie ;; 15271294SngieFreeBSD:UFS) 16271294Sngie echo "1..44" 17271294Sngie ;; 18271294Sngie*) 19271294Sngie quick_exit 20271294Sngieesac 21271294Sngie 22271294Sngien0=`namegen` 23271294Sngie 24271294Sngieexpect 0 create ${n0} 0644 25271294Sngieexpect 0 chflags ${n0} SF_IMMUTABLE 26271294Sngieexpect EPERM truncate ${n0} 123 27271294Sngieexpect 0 stat ${n0} size 28271294Sngieexpect 0 chflags ${n0} none 29271294Sngieexpect 0 truncate ${n0} 123 30271294Sngieexpect 123 stat ${n0} size 31271294Sngieexpect 0 unlink ${n0} 32271294Sngie 33271294Sngieexpect 0 create ${n0} 0644 34271294Sngieexpect 0 chflags ${n0} SF_NOUNLINK 35271294Sngieexpect 0 truncate ${n0} 123 36271294Sngieexpect 123 stat ${n0} size 37271294Sngieexpect 0 chflags ${n0} none 38271294Sngieexpect 0 unlink ${n0} 39271294Sngie 40271294Sngieexpect 0 create ${n0} 0644 41271294Sngieexpect 0 chflags ${n0} SF_APPEND 42271294Sngietodo FreeBSD:ZFS "Truncating a file protected by SF_APPEND should return EPERM." 43271294Sngieexpect EPERM truncate ${n0} 123 44271294Sngietodo FreeBSD:ZFS "Truncating a file protected by SF_APPEND should return EPERM." 45271294Sngieexpect 0 stat ${n0} size 46271294Sngieexpect 0 chflags ${n0} none 47271294Sngieexpect 0 truncate ${n0} 123 48271294Sngieexpect 123 stat ${n0} size 49271294Sngieexpect 0 unlink ${n0} 50271294Sngie 51271294Sngiecase "${os}:${fs}" in 52271294SngieFreeBSD:UFS) 53271294Sngie expect 0 create ${n0} 0644 54271294Sngie expect 0 chflags ${n0} UF_IMMUTABLE 55271294Sngie expect EPERM truncate ${n0} 123 56271294Sngie expect 0 stat ${n0} size 57271294Sngie expect 0 chflags ${n0} none 58271294Sngie expect 0 truncate ${n0} 123 59271294Sngie expect 123 stat ${n0} size 60271294Sngie expect 0 unlink ${n0} 61271294Sngie 62271294Sngie expect 0 create ${n0} 0644 63271294Sngie expect 0 chflags ${n0} UF_NOUNLINK 64271294Sngie expect 0 truncate ${n0} 123 65271294Sngie expect 123 stat ${n0} size 66271294Sngie expect 0 chflags ${n0} none 67271294Sngie expect 0 unlink ${n0} 68271294Sngie 69271294Sngie expect 0 create ${n0} 0644 70271294Sngie expect 0 chflags ${n0} UF_APPEND 71271294Sngie expect EPERM truncate ${n0} 123 72271294Sngie expect 0 stat ${n0} size 73271294Sngie expect 0 chflags ${n0} none 74271294Sngie expect 0 truncate ${n0} 123 75271294Sngie expect 123 stat ${n0} size 76271294Sngie expect 0 unlink ${n0} 77271294Sngie ;; 78271294Sngieesac 79