94425552f3
When we read user.name and user.email from a config file, they go into strbufs. When a caller asks ident_default_name() for the value, we fallback to auto-detecting if the strbuf is empty. That means that explicitly setting an empty string in the config is identical to not setting it at all. This is potentially confusing, as we usually accept a configured value as the final value. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
37 lines
990 B
Bash
Executable File
37 lines
990 B
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='corner cases in ident strings'
|
|
. ./test-lib.sh
|
|
|
|
# confirm that we do not segfault _and_ that we do not say "(null)", as
|
|
# glibc systems will quietly handle our NULL pointer
|
|
#
|
|
# Note also that we can't use "env" here because we need to unset a variable,
|
|
# and "-u" is not portable.
|
|
test_expect_success 'empty name and missing email' '
|
|
(
|
|
sane_unset GIT_AUTHOR_EMAIL &&
|
|
GIT_AUTHOR_NAME= &&
|
|
test_must_fail git commit --allow-empty -m foo 2>err &&
|
|
test_i18ngrep ! null err
|
|
)
|
|
'
|
|
|
|
test_expect_success 'commit rejects all-crud name' '
|
|
test_must_fail env GIT_AUTHOR_NAME=" .;<>" \
|
|
git commit --allow-empty -m foo
|
|
'
|
|
|
|
# We must test the actual error message here, as an unwanted
|
|
# auto-detection could fail for other reasons.
|
|
test_expect_success 'empty configured name does not auto-detect' '
|
|
(
|
|
sane_unset GIT_AUTHOR_NAME &&
|
|
test_must_fail \
|
|
git -c user.name= commit --allow-empty -m foo 2>err &&
|
|
test_i18ngrep "empty ident name" err
|
|
)
|
|
'
|
|
|
|
test_done
|