mirror of
https://git.savannah.gnu.org/git/coreutils.git
synced 2025-09-10 07:59:52 +02:00
tests: skip some parts of 'tests/rmdir/ignore.sh' if run as root
Parts of this test expect that the rmdir syscall returns with EPERM, but the root user does not see that. * tests/rmdir/ignore.sh: Add uid_is_privileged_ guards around parts of the test which expect rmdir() to fail with EPERM. Reported by Nick Alcock <nix@esperi.org.uk> in https://bugs.gnu.org/42633
This commit is contained in:
@@ -33,17 +33,24 @@ test -d "$cwd/a/b/c" && fail=1
|
||||
# Between 6.11 and 8.31, the following rmdir would mistakenly succeed.
|
||||
mkdir -p x/y || framework_failure_
|
||||
chmod a-w x || framework_failure_
|
||||
returns_ 1 rmdir --ignore-fail-on-non-empty x/y || fail=1
|
||||
|
||||
if ! uid_is_privileged_; then # root does not get EPERM.
|
||||
returns_ 1 rmdir --ignore-fail-on-non-empty x/y || fail=1
|
||||
fi
|
||||
|
||||
test -d x/y || fail=1
|
||||
# Between 6.11 and 8.31, the following rmdir would mistakenly fail,
|
||||
# and also give a non descript error
|
||||
touch x/y/z || framework_failure_
|
||||
rmdir --ignore-fail-on-non-empty x/y || fail=1
|
||||
test -d x/y || fail=1
|
||||
# assume empty dir if unreadable entries (so failure to remove diagnosed)
|
||||
rm x/y/z || framework_failure_
|
||||
chmod a-r x/y || framework_failure_
|
||||
returns_ 1 rmdir --ignore-fail-on-non-empty x/y || fail=1
|
||||
test -d x/y || fail=1
|
||||
|
||||
if ! uid_is_privileged_; then # root does not get EPERM.
|
||||
# assume empty dir if unreadable entries (so failure to remove diagnosed)
|
||||
rm x/y/z || framework_failure_
|
||||
chmod a-r x/y || framework_failure_
|
||||
returns_ 1 rmdir --ignore-fail-on-non-empty x/y || fail=1
|
||||
test -d x/y || fail=1
|
||||
fi
|
||||
|
||||
Exit $fail
|
||||
|
||||
Reference in New Issue
Block a user