]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
Test that chgrp -h does not fail on
authorJim Meyering <jim@meyering.net>
Tue, 8 Jun 2004 16:58:28 +0000 (16:58 +0000)
committerJim Meyering <jim@meyering.net>
Tue, 8 Jun 2004 16:58:28 +0000 (16:58 +0000)
symlinks, even on hosts where that's not supported.
Test that if -R is specified without -H or L, -h is assumed.
Test that chown() is not optimized away.

tests/chgrp/basic

index d5f8c76dcf220bac569e571cc0aa1d31698d4458..371e17386b179f8122b2a853e85e3f830dd42ec1 100755 (executable)
@@ -56,10 +56,10 @@ test "$VERBOSE" = yes && set +x
   touch f
   ln -s f symlink
   chgrp $g1 f
-  chgrp -h $g2 symlink 2> /dev/null
+  chgrp -h $g2 symlink
 
   # This should not change the group of f.
-  chgrp -h -c $g2 symlink 2> /dev/null
+  chgrp -h -c $g2 symlink
   chown --from=:$g1 -c :$g2 f
 
   # This *should* change the group of f.
@@ -68,6 +68,20 @@ test "$VERBOSE" = yes && set +x
   chgrp -c $g1 symlink
   chown --from=:$g1 -c :$g2 f
 
+  # If -R is specified without -H or L, -h is assumed.
+  chgrp -h $g1 f symlink
+  chgrp -R $g2 symlink
+  chown --from=:$g1 -c :$g2 f
+
+  # chown() must not be optimized away even when
+  # the file's owner and group already have the desired value.
+  touch f g
+  chgrp $g1 f g
+  chgrp $g2 g
+  sleep 1
+  chgrp $g1 f
+  ls -c -t f g
+
 ) 2>&1 | sed "s/\([ :]\)$g1$/\1G1/;s/\([ :]\)$g2$/\1G2/" > actual
 
 cat <<\EOF > expected
@@ -90,6 +104,9 @@ changed group of `symlink' to G2
 changed ownership of `f' to :G2
 changed group of `symlink' to G1
 changed ownership of `f' to :G2
+changed ownership of `f' to :G2
+f
+g
 EOF
 
 cmp expected actual \