From: Jim Meyering Date: Tue, 8 Jan 2008 14:50:51 +0000 (+0100) Subject: parent-perm: avoid a bizarre test failure. X-Git-Tag: v6.9.92~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e80379051b72cff4c948c7045491c9faa8a2a643;p=thirdparty%2Fcoreutils.git parent-perm: avoid a bizarre test failure. * tests/cp/parent-perm: Accommodate the situation in which chmod ("dir", 02755) returns 0 yet fails to set the S_ISGID bit. --- diff --git a/ChangeLog b/ChangeLog index c38ab73313..e834634c30 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2008-01-08 Jim Meyering + parent-perm: avoid a bizarre test failure. + * tests/cp/parent-perm: Accommodate the situation in which + chmod ("dir", 02755) returns 0 yet fails to set the S_ISGID bit. + Remove uses of now-undefined Makefile variable. * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Remove uses of no-longer-defined variable, $(LIB_ACL_TRIVIAL). diff --git a/tests/cp/parent-perm b/tests/cp/parent-perm index 1c7a222bb2..cedcac4df7 100755 --- a/tests/cp/parent-perm +++ b/tests/cp/parent-perm @@ -33,6 +33,15 @@ cp -p --parent a/b/d/foo e || fail=1 # Ensure that permissions on just-created directory, e/a/, # are the same as those on original, a/. -test $(stat --printf %A a) = $(stat --printf %A e/a) || fail=1 + +# The sed filter maps any 's' from an inherited set-GID bit +# to the usual 'x'. Otherwise, under unusual circumstances, this +# test would fail with e.g., drwxr-sr-x != drwxr-xr-x . +# For reference, the unusual circumstances is: build dir is set-gid, +# so "a/" inherits that. However, when the user does not belong to +# the group of the build directory, chmod ("a/e", 02755) returns 0, +# yet fails to set the S_ISGID bit. +test $(stat --printf %A a|sed s/s/x/g) = $(stat --printf %A e/a|sed s/s/x/g) || + fail=1 (exit $fail); exit $fail