diff options
author | pjd <pjd@FreeBSD.org> | 2007-07-18 18:07:15 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2007-07-18 18:07:15 +0000 |
commit | 9b52656cc2c15dababfc24992c3e5a00263580b2 (patch) | |
tree | 48c7269d063e3cacb90db4c1da017c934dbdc50f /tools/regression/fstest/tests | |
parent | f9539fa2932dd08852036c4f8260bb1fbd5814ff (diff) | |
download | FreeBSD-src-9b52656cc2c15dababfc24992c3e5a00263580b2.zip FreeBSD-src-9b52656cc2c15dababfc24992c3e5a00263580b2.tar.gz |
Make fstest work out-of-the-box on Solaris:
- Solaris' setgroups(2) doesn't change process' effective gid, so set it
explicitly.
- POSIX doesn't define O_NOFOLLOW. FreeBSD returns EMLINK when target is
a symbolic link, but Solaris returns ELOOP then.
- Solaris doesn't define O_SHLOCK and O_EXLOCK flags.
Approved by: re (rwatson)
Diffstat (limited to 'tools/regression/fstest/tests')
-rw-r--r-- | tools/regression/fstest/tests/open/16.t | 20 | ||||
-rw-r--r-- | tools/regression/fstest/tests/open/18.t | 23 |
2 files changed, 30 insertions, 13 deletions
diff --git a/tools/regression/fstest/tests/open/16.t b/tools/regression/fstest/tests/open/16.t index 7b4194e..ec31768 100644 --- a/tools/regression/fstest/tests/open/16.t +++ b/tools/regression/fstest/tests/open/16.t @@ -1,7 +1,7 @@ #!/bin/sh # $FreeBSD$ -desc="open returns EMLINK when O_NOFOLLOW was specified and the target is a symbolic link" +desc="open returns EMLINK/ELOOP when O_NOFOLLOW was specified and the target is a symbolic link" dir=`dirname $0` . ${dir}/../misc.sh @@ -12,8 +12,18 @@ n0=`namegen` n1=`namegen` expect 0 symlink ${n0} ${n1} -expect EMLINK open ${n1} O_RDONLY,O_CREAT,O_NOFOLLOW 0644 -expect EMLINK open ${n1} O_RDONLY,O_NOFOLLOW -expect EMLINK open ${n1} O_WRONLY,O_NOFOLLOW -expect EMLINK open ${n1} O_RDWR,O_NOFOLLOW +case "${os}" in +SunOS) + 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 EMLINK open ${n1} O_RDONLY,O_CREAT,O_NOFOLLOW 0644 + expect EMLINK open ${n1} O_RDONLY,O_NOFOLLOW + expect EMLINK open ${n1} O_WRONLY,O_NOFOLLOW + expect EMLINK open ${n1} O_RDWR,O_NOFOLLOW + ;; +esac expect 0 unlink ${n1} diff --git a/tools/regression/fstest/tests/open/18.t b/tools/regression/fstest/tests/open/18.t index e14fc4b..978ba16 100644 --- a/tools/regression/fstest/tests/open/18.t +++ b/tools/regression/fstest/tests/open/18.t @@ -6,13 +6,20 @@ desc="open returns EWOULDBLOCK when O_NONBLOCK and one of O_SHLOCK or O_EXLOCK i dir=`dirname $0` . ${dir}/../misc.sh -echo "1..6" +case "${os}" in +FreeBSD) + echo "1..6" -n0=`namegen` + n0=`namegen` -expect 0 create ${n0} 0644 -expect 0 open ${n0} O_RDONLY,O_SHLOCK : open ${n0} O_RDONLY,O_SHLOCK,O_NONBLOCK -expect "EWOULDBLOCK|EAGAIN" open ${n0} O_RDONLY,O_EXLOCK : open ${n0} O_RDONLY,O_EXLOCK,O_NONBLOCK -expect "EWOULDBLOCK|EAGAIN" open ${n0} O_RDONLY,O_SHLOCK : open ${n0} O_RDONLY,O_EXLOCK,O_NONBLOCK -expect "EWOULDBLOCK|EAGAIN" open ${n0} O_RDONLY,O_EXLOCK : open ${n0} O_RDONLY,O_SHLOCK,O_NONBLOCK -expect 0 unlink ${n0} + expect 0 create ${n0} 0644 + expect 0 open ${n0} O_RDONLY,O_SHLOCK : open ${n0} O_RDONLY,O_SHLOCK,O_NONBLOCK + expect "EWOULDBLOCK|EAGAIN" open ${n0} O_RDONLY,O_EXLOCK : open ${n0} O_RDONLY,O_EXLOCK,O_NONBLOCK + expect "EWOULDBLOCK|EAGAIN" open ${n0} O_RDONLY,O_SHLOCK : open ${n0} O_RDONLY,O_EXLOCK,O_NONBLOCK + expect "EWOULDBLOCK|EAGAIN" open ${n0} O_RDONLY,O_EXLOCK : open ${n0} O_RDONLY,O_SHLOCK,O_NONBLOCK + expect 0 unlink ${n0} + ;; +*) + quick_exit + ;; +esac |