summaryrefslogtreecommitdiff
path: root/tests/chown
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2011-05-26 11:15:11 +0100
committerPádraig Brady <P@draigBrady.com>2011-05-27 22:37:46 +0100
commit6b282e7510ca8dcbb44f8402b52ba8c8b1d01b80 (patch)
treeaaa9a4534f95864169598bcb9ec9fdfde1003639 /tests/chown
parent8a26bccb467a3b22e5d894234c4b4a5c337294d4 (diff)
downloadcoreutils-6b282e7510ca8dcbb44f8402b52ba8c8b1d01b80.tar.xz
chown,chgrp: output the correct ownership in -v messages
* src/chown_core.c (describe_change): Accept the ownership of the original file and output that when not changing. This is significant when --from is specified as then the original and specified ownership may be different. (user_group_str): A new helper function refactored from describe_change(). (change_file_owner): Pass the original user and group strings to describe_change(). * test/chown/basic: Add a test case. * NEWS: Mention the fix.
Diffstat (limited to 'tests/chown')
-rwxr-xr-xtests/chown/basic11
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/chown/basic b/tests/chown/basic
index 0614f7090..5626029ae 100755
--- a/tests/chown/basic
+++ b/tests/chown/basic
@@ -27,6 +27,17 @@ chown -R --preserve-root 0:1 f
# Make sure the owner and group are 0 and 1 respectively.
set _ `ls -n f`; shift; test "$3:$4" = 0:1 || fail=1
+# Make sure the correct diagnostic is output
+# Note we output a name even though an id was specified.
+chown -v --from=42 43 f > out || fail=1
+printf "ownership of \`f' retained as `id -nu`\n" > exp
+compare out exp || fail=1
+
+# Ensure diagnostics work for non existent files.
+chown -v 0 nf > out && fail=1
+printf "failed to change ownership of \`nf' to 0\n" > exp
+compare out exp || fail=1
+
chown --from=0:1 2:010 f || fail=1
# And now they should be 2 and 10 respectively.