Expect ELOOP on Darwin/Linux with "O_NOFOLLOW was specified and the target is a

symbolic link" case. Assume EMLINK on the rest of the OSes (FreeBSD, Solaris,
etc)

MFC after: 2 weeks
X-MFC with: r272057
Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
Enji Cooper 2014-09-24 22:14:53 +00:00
parent 5acf7269da
commit 4dc70fc5f6

View File

@ -1,19 +1,27 @@
#!/bin/sh
# $FreeBSD: head/tools/regression/pjdfstest/tests/open/16.t 219621 2011-03-13 19:35:13Z pjd $
desc="open returns ELOOP when O_NOFOLLOW was specified and the target is a symbolic link"
dir=`dirname $0`
. ${dir}/../misc.sh
case "${os}" in
Darwin|Linux)
error=ELOOP
;;
*)
error=EMLINK
;;
esac
desc="open returns $error when O_NOFOLLOW was specified and the target is a symbolic link"
echo "1..6"
n0=`namegen`
n1=`namegen`
expect 0 symlink ${n0} ${n1}
expect ELOOP open ${n1} O_RDONLY,O_CREAT,O_NOFOLLOW 0644
expect ELOOP open ${n1} O_RDONLY,O_NOFOLLOW
expect ELOOP open ${n1} O_WRONLY,O_NOFOLLOW
expect ELOOP open ${n1} O_RDWR,O_NOFOLLOW
expect $error open ${n1} O_RDONLY,O_CREAT,O_NOFOLLOW 0644
expect $error open ${n1} O_RDONLY,O_NOFOLLOW
expect $error open ${n1} O_WRONLY,O_NOFOLLOW
expect $error open ${n1} O_RDWR,O_NOFOLLOW
expect 0 unlink ${n1}