08.t revision 302408
1272343Sngie#!/bin/sh 2272343Sngie# $FreeBSD: head/tools/regression/pjdfstest/tests/truncate/08.t 211352 2010-08-15 21:24:17Z pjd $ 3272343Sngie 4272343Sngiedesc="truncate returns EPERM if the named file has its immutable or append-only flag set" 5272343Sngie 6272343Sngiedir=`dirname $0` 7272343Sngie. ${dir}/../misc.sh 8272343Sngie 9272343Sngierequire chflags 10272343Sngie 11272343Sngiecase "${os}:${fs}" in 12272343SngieFreeBSD:ZFS) 13272343Sngie echo "1..22" 14272343Sngie ;; 15272343SngieFreeBSD:UFS) 16272343Sngie echo "1..44" 17272343Sngie ;; 18272343Sngie*) 19272343Sngie quick_exit 20272343Sngieesac 21272343Sngie 22272343Sngien0=`namegen` 23272343Sngie 24272343Sngieexpect 0 create ${n0} 0644 25272343Sngieexpect 0 chflags ${n0} SF_IMMUTABLE 26272343Sngieexpect EPERM truncate ${n0} 123 27272343Sngieexpect 0 stat ${n0} size 28272343Sngieexpect 0 chflags ${n0} none 29272343Sngieexpect 0 truncate ${n0} 123 30272343Sngieexpect 123 stat ${n0} size 31272343Sngieexpect 0 unlink ${n0} 32272343Sngie 33272343Sngieexpect 0 create ${n0} 0644 34272343Sngieexpect 0 chflags ${n0} SF_NOUNLINK 35272343Sngieexpect 0 truncate ${n0} 123 36272343Sngieexpect 123 stat ${n0} size 37272343Sngieexpect 0 chflags ${n0} none 38272343Sngieexpect 0 unlink ${n0} 39272343Sngie 40272343Sngieexpect 0 create ${n0} 0644 41272343Sngieexpect 0 chflags ${n0} SF_APPEND 42272343Sngietodo FreeBSD:ZFS "Truncating a file protected by SF_APPEND should return EPERM." 43272343Sngieexpect EPERM truncate ${n0} 123 44272343Sngietodo FreeBSD:ZFS "Truncating a file protected by SF_APPEND should return EPERM." 45272343Sngieexpect 0 stat ${n0} size 46272343Sngieexpect 0 chflags ${n0} none 47272343Sngieexpect 0 truncate ${n0} 123 48272343Sngieexpect 123 stat ${n0} size 49272343Sngieexpect 0 unlink ${n0} 50272343Sngie 51272343Sngiecase "${os}:${fs}" in 52272343SngieFreeBSD:UFS) 53272343Sngie expect 0 create ${n0} 0644 54272343Sngie expect 0 chflags ${n0} UF_IMMUTABLE 55272343Sngie expect EPERM truncate ${n0} 123 56272343Sngie expect 0 stat ${n0} size 57272343Sngie expect 0 chflags ${n0} none 58272343Sngie expect 0 truncate ${n0} 123 59272343Sngie expect 123 stat ${n0} size 60272343Sngie expect 0 unlink ${n0} 61272343Sngie 62272343Sngie expect 0 create ${n0} 0644 63272343Sngie expect 0 chflags ${n0} UF_NOUNLINK 64272343Sngie expect 0 truncate ${n0} 123 65272343Sngie expect 123 stat ${n0} size 66272343Sngie expect 0 chflags ${n0} none 67272343Sngie expect 0 unlink ${n0} 68272343Sngie 69272343Sngie expect 0 create ${n0} 0644 70272343Sngie expect 0 chflags ${n0} UF_APPEND 71272343Sngie expect EPERM truncate ${n0} 123 72272343Sngie expect 0 stat ${n0} size 73272343Sngie expect 0 chflags ${n0} none 74272343Sngie expect 0 truncate ${n0} 123 75272343Sngie expect 123 stat ${n0} size 76272343Sngie expect 0 unlink ${n0} 77272343Sngie ;; 78272343Sngieesac 79272343Sngie