Re: [PATCH] t1304: Set LOGNAME even if USER is unset or null
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 19, 2014, 22:49 UTC
- Message-ID
- <xmqqegu3r7y7.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <12975d1f2b5b1cd4cc6052b829bf4814300a7ffd.1413581788.git.wking@tremily.us>
"W. Trevor King" <wking@tremily.us> writes:
Show 37 quoted lines
> Previous LOGNAME discussion:
>
> * Michael Gruber on 2011-05-06 suggesting a discussing a whoami
> fallback [1] (but whoami isn't POSIX).
> * René Scharfe on 2011-10-14 suggesting USER as a fallback for
> LOGNAME [2].
> * Matthieu Moy on 2012-09-17 suggesting dropping $LOGNAME in
> favor of numerical user IDs 'id -u' for a system with multiple
> usernames sharing the same user ID [3].
>
> Obviously, you can work around the problem with:
>
> # USER=$(id -u -n) ./t1304-default-acl.sh
>
> so the question is really "Are empty-USER systems worth supporting out
> of the box?".
>
> Cheers,
> Trevor
>
> [1]: http://thread.gmane.org/gmane.comp.version-control.git/172883/focus=172961
> [2]: http://thread.gmane.org/gmane.comp.version-control.git/183586
> [3]: http://thread.gmane.org/gmane.comp.version-control.git/205690/focus=205703
>
> t/t1304-default-acl.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/t/t1304-default-acl.sh b/t/t1304-default-acl.sh
> index 79045ab..f5422f1 100755
> --- a/t/t1304-default-acl.sh
> +++ b/t/t1304-default-acl.sh
> @@ -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)}"I'll queue this as-is, but it makes me wonder if we want to do this without if/then/fi, e.g.
: ${LOGNAME:=${USER:-$(id -u -n)}Spelling everything out with if/then/fi is obviously at the other extreme, i.e.
if test -z "$LOGNAME"
then
if test -n "$USER"
then
LOGNAME=$USER
else
LOGNAME=$(id -u -n)
fi
fibut it probably is a very bad idea.
More importantly, what if none of the alternatives work? I personally feel it is OK to punt and declare test_done early, instead of giving false positive breakages like you saw without this patch.