From c0ae51d06ff786f15c26a8cd6cbc7a99fe1e5eee Mon Sep 17 00:00:00 2001 From: pjd Date: Fri, 6 Aug 2010 19:20:35 +0000 Subject: Test for EACCES also when opening FIFO or directory. --- tools/regression/fstest/tests/open/06.t | 150 ++++++++++++++++++++++++++------ 1 file changed, 124 insertions(+), 26 deletions(-) diff --git a/tools/regression/fstest/tests/open/06.t b/tools/regression/fstest/tests/open/06.t index e72d191..007e24a 100644 --- a/tools/regression/fstest/tests/open/06.t +++ b/tools/regression/fstest/tests/open/06.t @@ -6,7 +6,7 @@ desc="open returns EACCES when the required permissions (for reading and/or writ dir=`dirname $0` . ${dir}/../misc.sh -echo "1..65" +echo "1..144" n0=`namegen` n1=`namegen` @@ -16,47 +16,104 @@ expect 0 chown ${n0} 65534 65534 cdir=`pwd` cd ${n0} +# Regular file. + expect 0 -u 65534 -g 65534 create ${n1} 0644 expect 0 -u 65534 -g 65534 chmod ${n1} 0600 -expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY -expect 0 -u 65534 -g 65534 open ${n1} O_WRONLY -expect 0 -u 65534 -g 65534 open ${n1} O_RDWR +expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY, +expect 0 -u 65534 -g 65534 open ${n1} O_WRONLY, +expect 0 -u 65534 -g 65534 open ${n1} O_RDWR, expect 0 -u 65534 -g 65534 chmod ${n1} 0060 -expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY -expect 0 -u 65533 -g 65534 open ${n1} O_WRONLY -expect 0 -u 65533 -g 65534 open ${n1} O_RDWR +expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY, +expect 0 -u 65533 -g 65534 open ${n1} O_WRONLY, +expect 0 -u 65533 -g 65534 open ${n1} O_RDWR, expect 0 -u 65534 -g 65534 chmod ${n1} 0006 -expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY -expect 0 -u 65533 -g 65533 open ${n1} O_WRONLY -expect 0 -u 65533 -g 65533 open ${n1} O_RDWR +expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY, +expect 0 -u 65533 -g 65533 open ${n1} O_WRONLY, +expect 0 -u 65533 -g 65533 open ${n1} O_RDWR, expect 0 -u 65534 -g 65534 chmod ${n1} 0477 -expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY, +expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY, +expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR, +expect 0 -u 65534 -g 65534 chmod ${n1} 0747 +expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY, +expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY, +expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR, +expect 0 -u 65534 -g 65534 chmod ${n1} 0774 +expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY, +expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY, +expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR, + +expect 0 -u 65534 -g 65534 chmod ${n1} 0277 +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY, +expect 0 -u 65534 -g 65534 open ${n1} O_WRONLY, +expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR, +expect 0 -u 65534 -g 65534 chmod ${n1} 0727 +expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY, +expect 0 -u 65533 -g 65534 open ${n1} O_WRONLY, +expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR, +expect 0 -u 65534 -g 65534 chmod ${n1} 0772 +expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY, +expect 0 -u 65533 -g 65533 open ${n1} O_WRONLY, +expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR, + +expect 0 -u 65534 -g 65534 chmod ${n1} 0177 +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY, +expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY, +expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR, +expect 0 -u 65534 -g 65534 chmod ${n1} 0717 +expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY, +expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY, +expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR, +expect 0 -u 65534 -g 65534 chmod ${n1} 0771 +expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY, +expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY, +expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR, + +expect 0 -u 65534 -g 65534 chmod ${n1} 0077 +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY, +expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY, +expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR, +expect 0 -u 65534 -g 65534 chmod ${n1} 0707 +expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY, +expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY, +expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR, +expect 0 -u 65534 -g 65534 chmod ${n1} 0770 +expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY, +expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY, +expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR, + +expect 0 -u 65534 -g 65534 unlink ${n1} + +# FIFO. + +expect 0 -u 65534 -g 65534 mkfifo ${n1} 0644 + +expect 0 -u 65534 -g 65534 chmod ${n1} 0600 +expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK +expect 0 -u 65534 -g 65534 open ${n1} O_RDWR,O_NONBLOCK +expect 0 -u 65534 -g 65534 chmod ${n1} 0060 +expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK +expect 0 -u 65533 -g 65534 open ${n1} O_RDWR,O_NONBLOCK +expect 0 -u 65534 -g 65534 chmod ${n1} 0006 +expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,O_NONBLOCK +expect 0 -u 65533 -g 65533 open ${n1} O_RDWR,O_NONBLOCK + +expect 0 -u 65534 -g 65534 chmod ${n1} 0477 +expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR expect 0 -u 65534 -g 65534 chmod ${n1} 0747 -expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR expect 0 -u 65534 -g 65534 chmod ${n1} 0774 -expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY +expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,O_NONBLOCK expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR -expect 0 -u 65534 -g 65534 chmod ${n1} 0277 -expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY -expect 0 -u 65534 -g 65534 open ${n1} O_WRONLY -expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR -expect 0 -u 65534 -g 65534 chmod ${n1} 0727 -expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY -expect 0 -u 65533 -g 65534 open ${n1} O_WRONLY -expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR -expect 0 -u 65534 -g 65534 chmod ${n1} 0772 -expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY -expect 0 -u 65533 -g 65533 open ${n1} O_WRONLY -expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR - expect 0 -u 65534 -g 65534 chmod ${n1} 0177 expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY @@ -85,5 +142,46 @@ expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR expect 0 -u 65534 -g 65534 unlink ${n1} +# Directory. + +expect 0 -u 65534 -g 65534 mkdir ${n1} 0755 + +expect 0 -u 65534 -g 65534 chmod ${n1} 0600 +expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 chmod ${n1} 0060 +expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 chmod ${n1} 0006 +expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY + +expect 0 -u 65534 -g 65534 chmod ${n1} 0477 +expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 chmod ${n1} 0747 +expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 chmod ${n1} 0774 +expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY + +expect 0 -u 65534 -g 65534 chmod ${n1} 0277 +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 chmod ${n1} 0727 +expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 chmod ${n1} 0772 +expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY + +expect 0 -u 65534 -g 65534 chmod ${n1} 0177 +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 chmod ${n1} 0717 +expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 chmod ${n1} 0771 +expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY + +expect 0 -u 65534 -g 65534 chmod ${n1} 0077 +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 chmod ${n1} 0707 +expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 chmod ${n1} 0770 +expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY + +expect 0 -u 65534 -g 65534 rmdir ${n1} + cd ${cdir} expect 0 rmdir ${n0} -- cgit v1.1