From: Bernhard Voelker Date: Fri, 31 Jul 2020 17:49:35 +0000 (+0200) Subject: tests: skip some parts of 'tests/rmdir/ignore.sh' if run as root X-Git-Tag: v9.0~207 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c0e5f8c59b951ae13ca9cb9945cd77163489e1d9;p=thirdparty%2Fcoreutils.git 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 in https://bugs.gnu.org/42633 --- diff --git a/tests/rmdir/ignore.sh b/tests/rmdir/ignore.sh index 65e92d012c..b26ac533ab 100755 --- a/tests/rmdir/ignore.sh +++ b/tests/rmdir/ignore.sh @@ -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