aboutsummaryrefslogtreecommitdiff
path: root/tools/regression/fstest
diff options
context:
space:
mode:
authorPawel Jakub Dawidek <pjd@FreeBSD.org>2007-07-18 18:07:15 +0000
committerPawel Jakub Dawidek <pjd@FreeBSD.org>2007-07-18 18:07:15 +0000
commit2125ff08861a01381f8faf1370a4ea52956a9860 (patch)
tree48c7269d063e3cacb90db4c1da017c934dbdc50f /tools/regression/fstest
parentbd675f58ebf1a0db413a840ea6e2cb71e4c8bbbe (diff)
Notes
Diffstat (limited to 'tools/regression/fstest')
-rw-r--r--tools/regression/fstest/fstest.c4
-rw-r--r--tools/regression/fstest/tests/open/16.t20
-rw-r--r--tools/regression/fstest/tests/open/18.t23
3 files changed, 34 insertions, 13 deletions
diff --git a/tools/regression/fstest/fstest.c b/tools/regression/fstest/fstest.c
index 98211d038dc5..886b90ffc18d 100644
--- a/tools/regression/fstest/fstest.c
+++ b/tools/regression/fstest/fstest.c
@@ -530,6 +530,10 @@ set_gids(char *gids)
fprintf(stderr, "cannot change groups: %s\n", strerror(errno));
exit(1);
}
+ if (setegid(gidset[0]) < 0) {
+ fprintf(stderr, "cannot change effective gid: %s\n", strerror(errno));
+ exit(1);
+ }
free(gidset);
}
diff --git a/tools/regression/fstest/tests/open/16.t b/tools/regression/fstest/tests/open/16.t
index 7b4194ed74af..ec317686563b 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 e14fc4bd3a40..978ba169fe26 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