mirror of
https://github.com/git/git.git
synced 2024-12-05 07:53:59 +08:00
0be43dedbc
GNU grep 2.23 detects the input used in this test as binary data so it does not work for extracting lines from a file. We could add the "-a" option to force grep to treat the input as text, but not all implementations support that. Instead, use sed to extract the desired lines since it will always treat its input as text. While touching these lines, modernize the test style to avoid hiding the exit status of "git blame" and remove a space following a redirection operator. Also swap the order of the expected and actual output files given to test_cmp; we compare expect and actual to show how actual output differs from what is expected. Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
97 lines
2.1 KiB
Bash
Executable File
97 lines
2.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='git blame encoding conversion'
|
|
. ./test-lib.sh
|
|
|
|
. "$TEST_DIRECTORY"/t8005/utf8.txt
|
|
. "$TEST_DIRECTORY"/t8005/euc-japan.txt
|
|
. "$TEST_DIRECTORY"/t8005/sjis.txt
|
|
|
|
test_expect_success 'setup the repository' '
|
|
# Create the file
|
|
echo "UTF-8 LINE" > file &&
|
|
git add file &&
|
|
git commit --author "$UTF8_NAME <utf8@localhost>" -m "$UTF8_MSG" &&
|
|
|
|
echo "EUC-JAPAN LINE" >> file &&
|
|
git add file &&
|
|
git config i18n.commitencoding eucJP &&
|
|
git commit --author "$EUC_JAPAN_NAME <euc-japan@localhost>" -m "$EUC_JAPAN_MSG" &&
|
|
|
|
echo "SJIS LINE" >> file &&
|
|
git add file &&
|
|
git config i18n.commitencoding SJIS &&
|
|
git commit --author "$SJIS_NAME <sjis@localhost>" -m "$SJIS_MSG"
|
|
'
|
|
|
|
cat >expected <<EOF
|
|
author $SJIS_NAME
|
|
summary $SJIS_MSG
|
|
author $SJIS_NAME
|
|
summary $SJIS_MSG
|
|
author $SJIS_NAME
|
|
summary $SJIS_MSG
|
|
EOF
|
|
|
|
filter_author_summary () {
|
|
sed -n -e '/^author /p' -e '/^summary /p' "$@"
|
|
}
|
|
|
|
test_expect_success !MINGW \
|
|
'blame respects i18n.commitencoding' '
|
|
git blame --incremental file >output &&
|
|
filter_author_summary output >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<EOF
|
|
author $EUC_JAPAN_NAME
|
|
summary $EUC_JAPAN_MSG
|
|
author $EUC_JAPAN_NAME
|
|
summary $EUC_JAPAN_MSG
|
|
author $EUC_JAPAN_NAME
|
|
summary $EUC_JAPAN_MSG
|
|
EOF
|
|
|
|
test_expect_success !MINGW \
|
|
'blame respects i18n.logoutputencoding' '
|
|
git config i18n.logoutputencoding eucJP &&
|
|
git blame --incremental file >output &&
|
|
filter_author_summary output >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<EOF
|
|
author $UTF8_NAME
|
|
summary $UTF8_MSG
|
|
author $UTF8_NAME
|
|
summary $UTF8_MSG
|
|
author $UTF8_NAME
|
|
summary $UTF8_MSG
|
|
EOF
|
|
|
|
test_expect_success !MINGW \
|
|
'blame respects --encoding=UTF-8' '
|
|
git blame --incremental --encoding=UTF-8 file >output &&
|
|
filter_author_summary output >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<EOF
|
|
author $SJIS_NAME
|
|
summary $SJIS_MSG
|
|
author $EUC_JAPAN_NAME
|
|
summary $EUC_JAPAN_MSG
|
|
author $UTF8_NAME
|
|
summary $UTF8_MSG
|
|
EOF
|
|
|
|
test_expect_success !MINGW \
|
|
'blame respects --encoding=none' '
|
|
git blame --incremental --encoding=none file >output &&
|
|
filter_author_summary output >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_done
|