1#!/bin/sh 2# vim: filetype=sh noexpandtab ts=8 sw=8 3# $FreeBSD: head/tools/regression/pjdfstest/tests/link/12.t 211352 2010-08-15 21:24:17Z pjd $ 4 5desc="link returns EPERM if the source file has its immutable or append-only flag set" 6 7dir=`dirname $0` 8. ${dir}/../misc.sh 9 10require chflags 11 12case "${os}:${fs}" in 13FreeBSD:ZFS) 14 echo "1..28" 15 ;; 16FreeBSD:UFS) 17 echo "1..48" 18 ;; 19*) 20 quick_exit 21esac 22 23n0=`namegen` 24n1=`namegen` 25 26expect 0 create ${n0} 0644 27 28expect 1 stat ${n0} nlink 29expect 0 link ${n0} ${n1} 30expect 2 stat ${n0} nlink 31expect 0 unlink ${n1} 32expect 1 stat ${n0} nlink 33 34expect 0 chflags ${n0} SF_IMMUTABLE 35expect EPERM link ${n0} ${n1} 36expect 1 stat ${n0} nlink 37expect 0 chflags ${n0} none 38expect 0 link ${n0} ${n1} 39expect 2 stat ${n0} nlink 40expect 0 unlink ${n1} 41expect 1 stat ${n0} nlink 42 43expect 0 chflags ${n0} SF_NOUNLINK 44expect 0 link ${n0} ${n1} 45expect 2 stat ${n0} nlink 46expect 0 chflags ${n0} none 47expect 0 unlink ${n1} 48expect 1 stat ${n0} nlink 49 50expect 0 chflags ${n0} SF_APPEND 51expect EPERM link ${n0} ${n1} 52expect 0 chflags ${n0} none 53expect 0 link ${n0} ${n1} 54expect 2 stat ${n0} nlink 55expect 0 unlink ${n1} 56expect 1 stat ${n0} nlink 57 58case "${os}:${fs}" in 59FreeBSD:UFS) 60 expect 0 chflags ${n0} UF_IMMUTABLE 61 expect EPERM link ${n0} ${n1} 62 expect 0 chflags ${n0} none 63 expect 0 link ${n0} ${n1} 64 expect 2 stat ${n0} nlink 65 expect 0 unlink ${n1} 66 expect 1 stat ${n0} nlink 67 68 expect 0 chflags ${n0} UF_NOUNLINK 69 expect 0 link ${n0} ${n1} 70 expect 2 stat ${n0} nlink 71 expect 0 chflags ${n0} none 72 expect 0 unlink ${n1} 73 expect 1 stat ${n0} nlink 74 75 expect 0 chflags ${n0} UF_APPEND 76 expect EPERM link ${n0} ${n1} 77 expect 0 chflags ${n0} none 78 expect 0 link ${n0} ${n1} 79 expect 2 stat ${n0} nlink 80 expect 0 unlink ${n1} 81 expect 1 stat ${n0} nlink 82 ;; 83esac 84 85expect 0 unlink ${n0} 86