FreeBSD's way of handling rmdir("..") is not POSIX-compilant.

This commit is contained in:
Pawel Jakub Dawidek 2008-11-23 19:58:26 +00:00
parent 92c1c812f1
commit 48a8b4cd56

View File

@ -1,7 +1,7 @@
#!/bin/sh
# $FreeBSD$
desc="rmdir returns EINVAL if the last component of the path is '.' or '..'"
desc="rmdir returns EINVAL if the last component of the path is '.' and EEXIST or ENOTEMPTY if the last component of the path is '..'"
dir=`dirname $0`
. ${dir}/../misc.sh
@ -14,13 +14,7 @@ n1=`namegen`
expect 0 mkdir ${n0} 0755
expect 0 mkdir ${n0}/${n1} 0755
expect EINVAL rmdir ${n0}/${n1}/.
case "${os}" in
FreeBSD)
expect EINVAL rmdir ${n0}/${n1}/..
;;
*)
expect EEXIST rmdir ${n0}/${n1}/..
;;
esac
todo FreeBSD "According to POSIX: EEXIST or ENOTEMPTY - The path argument names a directory that is not an empty directory, or there are hard links to the directory other than dot or a single entry in dot-dot."
expect "ENOTEMPTY|EEXIST" rmdir ${n0}/${n1}/..
expect 0 rmdir ${n0}/${n1}
expect 0 rmdir ${n0}