t1304: Set LOGNAME even if USER is unset or null
authorW. Trevor King <wking@tremily.us>
Fri, 17 Oct 2014 21:39:00 +0000 (14:39 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 19 Oct 2014 22:47:20 +0000 (15:47 -0700)
Avoid:

# ./t1304-default-acl.sh
ok 1 - checking for a working acl setup
ok 2 - Setup test repo
not ok 3 - Objects creation does not break ACLs with restrictive umask
#
# # SHA1 for empty blob
# check_perms_and_acl .git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
#
not ok 4 - git gc does not break ACLs with restrictive umask
#
# git gc &&
# check_perms_and_acl .git/objects/pack/*.pack
#
# failed 2 among 4 test(s)
1..4

on systems where USER isn't set. It's usually set by the login
process, but it isn't set when launching some Docker images. For
example:

$ docker run --rm debian env
HOME=/
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=b2dfdfe797ed

'id -u -n' has been in POSIX from Issue 2 through 2013 [1], so I don't
expect compatibility issues.

[1]: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/id.html

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1304-default-acl.sh
index 79045abb5171691246167a42eec6bf18fbeb0b76..f5422f1d33f5eac98e6f56ec4bf05f3f8d4c8be2 100755 (executable)
@@ -26,7 +26,7 @@ test_expect_success 'checking for a working acl setup' '
 
 if test -z "$LOGNAME"
 then
-       LOGNAME=$USER
+       LOGNAME="${USER:-$(id -u -n)}"
 fi
 
 check_perms_and_acl () {