On Sat, Jan 26, 2008 at 07:06:58PM +0100, Jim Meyering wrote: > > Here's a better one:
More progress! (still fails) > * tests/cp/preserve-gid: accommodate Darwin9 oddity. > > diff --git a/tests/cp/preserve-gid b/tests/cp/preserve-gid > index 9537dc0..82ee861 100755 > --- a/tests/cp/preserve-gid > +++ b/tests/cp/preserve-gid > @@ -33,8 +33,15 @@ t0() { > "$@" "$f" b || exit 1 > s=`stat -c '%u %g' b` > if test "x$s" != "x$u $g"; then > - echo "$0: $* $f b: $u $g != $s" 1>&2 > - (exit 1); exit 1 > + # Allow the actual group to match that of the parent directory > + # (it was set to 0 above) if the command was "cp". > + case "$@:$s" in > + *" cp:$u 0") ;; > + *) > + echo "$0: $* $f b: $u $g != $s" 1>&2 > + (exit 1); exit 1 > + ;; > + esac > fi > } > > -- > 1.5.4.rc4.26.g228a -- Elias
% tar xf coreutils-6.10.tar % cd coreutils-6.10 % patch -p1 < ~/foo2.patch patching file tests/cp/preserve-gid % patch -p1 < ~/foo3a.patch patching file tests/cp/preserve-gid % ./configure --disable-acl >/dev/null % make -j3 >/dev/null % sudo env VERBOSE=yes NON_ROOT_USERNAME=$USER make check -C tests/cp TESTS=preserve-gid make check-TESTS FAIL: preserve-gid.log =========================================== 1 of 1 tests failed See tests/cp/test-suite.log Please report it to bug-coreutils@gnu.org =========================================== ================================================= GNU coreutils 6.10: tests/cp/test-suite.log ================================================= 1 of 1 tests failed. .. contents:: :depth: 2 FAIL: preserve-gid.log (exit: 1) ================================ + cp --version cp (GNU coreutils) 6.10 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Torbjorn Granlund, David MacKenzie, and Jim Meyering. ++ perl -le 'foreach my $i (1000..16*1024-1) { getpwuid $i or (print $i), exit }' + nameless_uid=1000 ++ perl -le 'foreach my $i (1000..16*1024) { getgrgid $i or (print $i), exit }' + nameless_gid1=1000 ++ perl -le 'foreach my $i (1000+1..16*1024) { getgrgid $i or (print $i), exit }' + nameless_gid2=1001 + test -z 1000 + test -z 1000 + test -z 1001 + chown +1000:+0 . + create a0 0 0 + echo a0 + chown +0:+0 a0 + create b0 1000 1000 + echo b0 + chown +1000:+1000 b0 + create b1 1000 1001 + echo b1 + chown +1000:+1001 b1 + create c0 0 1000 + echo c0 + chown +0:+1000 c0 + create c1 0 1001 + echo c1 + chown +0:+1001 c1 + t0 a0 0 0 cp + f=a0 + shift + u=0 + shift + g=0 + shift + rm -f b + cp a0 b ++ stat -c '%u %g' b + s='0 0' + test 'x0 0' '!=' 'x0 0' + t0 b0 0 0 cp + f=b0 + shift + u=0 + shift + g=0 + shift + rm -f b + cp b0 b ++ stat -c '%u %g' b + s='0 0' + test 'x0 0' '!=' 'x0 0' + t0 b1 0 0 cp + f=b1 + shift + u=0 + shift + g=0 + shift + rm -f b + cp b1 b ++ stat -c '%u %g' b + s='0 0' + test 'x0 0' '!=' 'x0 0' + t0 c0 0 0 cp + f=c0 + shift + u=0 + shift + g=0 + shift + rm -f b + cp c0 b ++ stat -c '%u %g' b + s='0 0' + test 'x0 0' '!=' 'x0 0' + t0 c1 0 0 cp + f=c1 + shift + u=0 + shift + g=0 + shift + rm -f b + cp c1 b ++ stat -c '%u %g' b + s='0 0' + test 'x0 0' '!=' 'x0 0' + t0 a0 0 0 cp -p + f=a0 + shift + u=0 + shift + g=0 + shift + rm -f b + cp -p a0 b ++ stat -c '%u %g' b + s='0 0' + test 'x0 0' '!=' 'x0 0' + t0 b0 1000 1000 cp -p + f=b0 + shift + u=1000 + shift + g=1000 + shift + rm -f b + cp -p b0 b ++ stat -c '%u %g' b + s='1000 1000' + test 'x1000 1000' '!=' 'x1000 1000' + t0 b1 1000 1001 cp -p + f=b1 + shift + u=1000 + shift + g=1001 + shift + rm -f b + cp -p b1 b ++ stat -c '%u %g' b + s='1000 1001' + test 'x1000 1001' '!=' 'x1000 1001' + t0 c0 0 1000 cp -p + f=c0 + shift + u=0 + shift + g=1000 + shift + rm -f b + cp -p c0 b ++ stat -c '%u %g' b + s='0 1000' + test 'x0 1000' '!=' 'x0 1000' + t0 c1 0 1001 cp -p + f=c1 + shift + u=0 + shift + g=1001 + shift + rm -f b + cp -p c1 b ++ stat -c '%u %g' b + s='0 1001' + test 'x0 1001' '!=' 'x0 1001' + t1 a0 1000 1000 cp + f=a0 + shift + u=1000 + shift + g=1000 + shift + t0 a0 1000 1000 setuidgid -g 1000,1001 1000 cp + f=a0 + shift + u=1000 + shift + g=1000 + shift + rm -f b + setuidgid -g 1000,1001 1000 cp a0 b ++ stat -c '%u %g' b + s='1000 0' + test 'x1000 0' '!=' 'x1000 1000' + case "$@:$s" in + t1 b0 1000 1000 cp + f=b0 + shift + u=1000 + shift + g=1000 + shift + t0 b0 1000 1000 setuidgid -g 1000,1001 1000 cp + f=b0 + shift + u=1000 + shift + g=1000 + shift + rm -f b + setuidgid -g 1000,1001 1000 cp b0 b ++ stat -c '%u %g' b + s='1000 0' + test 'x1000 0' '!=' 'x1000 1000' + case "$@:$s" in + t1 b1 1000 1000 cp + f=b1 + shift + u=1000 + shift + g=1000 + shift + t0 b1 1000 1000 setuidgid -g 1000,1001 1000 cp + f=b1 + shift + u=1000 + shift + g=1000 + shift + rm -f b + setuidgid -g 1000,1001 1000 cp b1 b ++ stat -c '%u %g' b + s='1000 0' + test 'x1000 0' '!=' 'x1000 1000' + case "$@:$s" in + t1 c0 1000 1000 cp + f=c0 + shift + u=1000 + shift + g=1000 + shift + t0 c0 1000 1000 setuidgid -g 1000,1001 1000 cp + f=c0 + shift + u=1000 + shift + g=1000 + shift + rm -f b + setuidgid -g 1000,1001 1000 cp c0 b ++ stat -c '%u %g' b + s='1000 0' + test 'x1000 0' '!=' 'x1000 1000' + case "$@:$s" in + t1 c1 1000 1000 cp + f=c1 + shift + u=1000 + shift + g=1000 + shift + t0 c1 1000 1000 setuidgid -g 1000,1001 1000 cp + f=c1 + shift + u=1000 + shift + g=1000 + shift + rm -f b + setuidgid -g 1000,1001 1000 cp c1 b ++ stat -c '%u %g' b + s='1000 0' + test 'x1000 0' '!=' 'x1000 1000' + case "$@:$s" in + t1 a0 1000 1000 cp -p + f=a0 + shift + u=1000 + shift + g=1000 + shift + t0 a0 1000 1000 setuidgid -g 1000,1001 1000 cp -p + f=a0 + shift + u=1000 + shift + g=1000 + shift + rm -f b + setuidgid -g 1000,1001 1000 cp -p a0 b ++ stat -c '%u %g' b + s='1000 0' + test 'x1000 0' '!=' 'x1000 1000' + case "$@:$s" in + echo './preserve-gid: setuidgid -g 1000,1001 1000 cp -p a0 b: 1000 1000 != 1000 0' ./preserve-gid: setuidgid -g 1000,1001 1000 cp -p a0 b: 1000 1000 != 1000 0 + exit 1 + exit 1 + st=1 + cleanup_ + : + d=/Users/pipping/coreutils-6.10/tests/cp/cu-preserve-gid.YA0HWjK6FN + cd /Users/pipping/coreutils-6.10/tests/cp + chmod -R u+rwx /Users/pipping/coreutils-6.10/tests/cp/cu-preserve-gid.YA0HWjK6FN + rm -rf /Users/pipping/coreutils-6.10/tests/cp/cu-preserve-gid.YA0HWjK6FN + exit 1 make[2]: *** [test-suite.log] Error 1 make[1]: *** [check-TESTS] Error 2 make: *** [check-am] Error 2 %
--- preserve-gid_test_new2 2008-01-26 18:33:55 +0100 +++ preserve-gid_test_new3 2008-01-26 19:43:42 +0100 @@ -2,7 +2,7 @@ % cd coreutils-6.10 % patch -p1 < ~/foo2.patch patching file tests/cp/preserve-gid -% patch -p1 < ~/foo3.patch +% patch -p1 < ~/foo3a.patch patching file tests/cp/preserve-gid % ./configure --disable-acl >/dev/null % make -j3 >/dev/null @@ -200,18 +200,118 @@ ++ stat -c '%u %g' b + s='1000 0' + test 'x1000 0' '!=' 'x1000 1000' -+ test 'setuidgid -g 1000,1001 1000 cp:1000 0' = 'cp:1000 0' -+ echo './preserve-gid: setuidgid -g 1000,1001 1000 cp a0 b: 1000 1000 != 1000 0' -./preserve-gid: setuidgid -g 1000,1001 1000 cp a0 b: 1000 1000 != 1000 0 ++ case "$@:$s" in ++ t1 b0 1000 1000 cp ++ f=b0 ++ shift ++ u=1000 ++ shift ++ g=1000 ++ shift ++ t0 b0 1000 1000 setuidgid -g 1000,1001 1000 cp ++ f=b0 ++ shift ++ u=1000 ++ shift ++ g=1000 ++ shift ++ rm -f b ++ setuidgid -g 1000,1001 1000 cp b0 b +++ stat -c '%u %g' b ++ s='1000 0' ++ test 'x1000 0' '!=' 'x1000 1000' ++ case "$@:$s" in ++ t1 b1 1000 1000 cp ++ f=b1 ++ shift ++ u=1000 ++ shift ++ g=1000 ++ shift ++ t0 b1 1000 1000 setuidgid -g 1000,1001 1000 cp ++ f=b1 ++ shift ++ u=1000 ++ shift ++ g=1000 ++ shift ++ rm -f b ++ setuidgid -g 1000,1001 1000 cp b1 b +++ stat -c '%u %g' b ++ s='1000 0' ++ test 'x1000 0' '!=' 'x1000 1000' ++ case "$@:$s" in ++ t1 c0 1000 1000 cp ++ f=c0 ++ shift ++ u=1000 ++ shift ++ g=1000 ++ shift ++ t0 c0 1000 1000 setuidgid -g 1000,1001 1000 cp ++ f=c0 ++ shift ++ u=1000 ++ shift ++ g=1000 ++ shift ++ rm -f b ++ setuidgid -g 1000,1001 1000 cp c0 b +++ stat -c '%u %g' b ++ s='1000 0' ++ test 'x1000 0' '!=' 'x1000 1000' ++ case "$@:$s" in ++ t1 c1 1000 1000 cp ++ f=c1 ++ shift ++ u=1000 ++ shift ++ g=1000 ++ shift ++ t0 c1 1000 1000 setuidgid -g 1000,1001 1000 cp ++ f=c1 ++ shift ++ u=1000 ++ shift ++ g=1000 ++ shift ++ rm -f b ++ setuidgid -g 1000,1001 1000 cp c1 b +++ stat -c '%u %g' b ++ s='1000 0' ++ test 'x1000 0' '!=' 'x1000 1000' ++ case "$@:$s" in ++ t1 a0 1000 1000 cp -p ++ f=a0 ++ shift ++ u=1000 ++ shift ++ g=1000 ++ shift ++ t0 a0 1000 1000 setuidgid -g 1000,1001 1000 cp -p ++ f=a0 ++ shift ++ u=1000 ++ shift ++ g=1000 ++ shift ++ rm -f b ++ setuidgid -g 1000,1001 1000 cp -p a0 b +++ stat -c '%u %g' b ++ s='1000 0' ++ test 'x1000 0' '!=' 'x1000 1000' ++ case "$@:$s" in ++ echo './preserve-gid: setuidgid -g 1000,1001 1000 cp -p a0 b: 1000 1000 != 1000 0' +./preserve-gid: setuidgid -g 1000,1001 1000 cp -p a0 b: 1000 1000 != 1000 0 + exit 1 + exit 1 + st=1 + cleanup_ + : -+ d=/Users/pipping/coreutils-6.10/tests/cp/cu-preserve-gid.cZqpAQhXfq ++ d=/Users/pipping/coreutils-6.10/tests/cp/cu-preserve-gid.YA0HWjK6FN + cd /Users/pipping/coreutils-6.10/tests/cp -+ chmod -R u+rwx /Users/pipping/coreutils-6.10/tests/cp/cu-preserve-gid.cZqpAQhXfq -+ rm -rf /Users/pipping/coreutils-6.10/tests/cp/cu-preserve-gid.cZqpAQhXfq ++ chmod -R u+rwx /Users/pipping/coreutils-6.10/tests/cp/cu-preserve-gid.YA0HWjK6FN ++ rm -rf /Users/pipping/coreutils-6.10/tests/cp/cu-preserve-gid.YA0HWjK6FN + exit 1 make[2]: *** [test-suite.log] Error 1 make[1]: *** [check-TESTS] Error 2
pgpwOweVWyL6u.pgp
Description: PGP signature
_______________________________________________ Bug-coreutils mailing list Bug-coreutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-coreutils