2008-10-22 00:55:57 +04:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
test_description='git blame encoding conversion'
|
|
|
|
. ./test-lib.sh
|
|
|
|
|
|
|
|
. "$TEST_DIRECTORY"/t8005/utf8.txt
|
t8005: Nobody writes Russian in shift_jis
The second and third tests of this script expected that Russian strings
are converted between ISO-8859-5 and Shift_JIS in the "blame --porcelain"
format output correctly.
Sure, many platforms may convert between such a combination, but that is
only because one of the base character set of Shift_JIS, JIS X 0208,
defines codepoints for Russian characters (among others); I do not think
anybody uses Shift_JIS when seriously writing Russian, and it is perfectly
understandable if iconv() libraries on some platforms fail converting
between this combination, as it does not matter in reality.
This patch changes the test to verify Japanese strings are converted
correctly between EUC-JP and Shift_JIS in the same procedure. The point
of the test is not about verifying the platform's iconv() library, but to
see if "git blame" makes correct iconv() library calls when it should.
We could instead use ISO-8859-5 and KOI8-R as the combination, because
they are both meant to represent Russian, in order to make this test
meaningful on more platforms, but we already use Shift_JIS vs EUC-JP
combinations to test other programs in our test suite, so this combination
is safer from the point of view of the portability. Besides, I do not
read nor write Russian; sorry ;-)
This change allows tests to pass on my (friend's) Solaris 5.11 box.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-19 06:18:37 +04:00
|
|
|
. "$TEST_DIRECTORY"/t8005/euc-japan.txt
|
2008-10-22 00:55:57 +04:00
|
|
|
. "$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" &&
|
|
|
|
|
t8005: Nobody writes Russian in shift_jis
The second and third tests of this script expected that Russian strings
are converted between ISO-8859-5 and Shift_JIS in the "blame --porcelain"
format output correctly.
Sure, many platforms may convert between such a combination, but that is
only because one of the base character set of Shift_JIS, JIS X 0208,
defines codepoints for Russian characters (among others); I do not think
anybody uses Shift_JIS when seriously writing Russian, and it is perfectly
understandable if iconv() libraries on some platforms fail converting
between this combination, as it does not matter in reality.
This patch changes the test to verify Japanese strings are converted
correctly between EUC-JP and Shift_JIS in the same procedure. The point
of the test is not about verifying the platform's iconv() library, but to
see if "git blame" makes correct iconv() library calls when it should.
We could instead use ISO-8859-5 and KOI8-R as the combination, because
they are both meant to represent Russian, in order to make this test
meaningful on more platforms, but we already use Shift_JIS vs EUC-JP
combinations to test other programs in our test suite, so this combination
is safer from the point of view of the portability. Besides, I do not
read nor write Russian; sorry ;-)
This change allows tests to pass on my (friend's) Solaris 5.11 box.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-19 06:18:37 +04:00
|
|
|
echo "EUC-JAPAN LINE" >> file &&
|
2008-10-22 00:55:57 +04:00
|
|
|
git add file &&
|
t8005: Nobody writes Russian in shift_jis
The second and third tests of this script expected that Russian strings
are converted between ISO-8859-5 and Shift_JIS in the "blame --porcelain"
format output correctly.
Sure, many platforms may convert between such a combination, but that is
only because one of the base character set of Shift_JIS, JIS X 0208,
defines codepoints for Russian characters (among others); I do not think
anybody uses Shift_JIS when seriously writing Russian, and it is perfectly
understandable if iconv() libraries on some platforms fail converting
between this combination, as it does not matter in reality.
This patch changes the test to verify Japanese strings are converted
correctly between EUC-JP and Shift_JIS in the same procedure. The point
of the test is not about verifying the platform's iconv() library, but to
see if "git blame" makes correct iconv() library calls when it should.
We could instead use ISO-8859-5 and KOI8-R as the combination, because
they are both meant to represent Russian, in order to make this test
meaningful on more platforms, but we already use Shift_JIS vs EUC-JP
combinations to test other programs in our test suite, so this combination
is safer from the point of view of the portability. Besides, I do not
read nor write Russian; sorry ;-)
This change allows tests to pass on my (friend's) Solaris 5.11 box.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-19 06:18:37 +04:00
|
|
|
git config i18n.commitencoding eucJP &&
|
|
|
|
git commit --author "$EUC_JAPAN_NAME <euc-japan@localhost>" -m "$EUC_JAPAN_MSG" &&
|
2008-10-22 00:55:57 +04:00
|
|
|
|
|
|
|
echo "SJIS LINE" >> file &&
|
|
|
|
git add file &&
|
2009-05-23 03:47:05 +04:00
|
|
|
git config i18n.commitencoding SJIS &&
|
2008-10-22 00:55:57 +04:00
|
|
|
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
|
|
|
|
|
2016-02-21 20:32:21 +03:00
|
|
|
filter_author_summary () {
|
|
|
|
sed -n -e '/^author /p' -e '/^summary /p' "$@"
|
|
|
|
}
|
|
|
|
|
2014-07-22 02:09:27 +04:00
|
|
|
test_expect_success !MINGW \
|
2008-10-22 00:55:57 +04:00
|
|
|
'blame respects i18n.commitencoding' '
|
2016-02-21 20:32:21 +03:00
|
|
|
git blame --incremental file >output &&
|
|
|
|
filter_author_summary output >actual &&
|
|
|
|
test_cmp expected actual
|
2008-10-22 00:55:57 +04:00
|
|
|
'
|
|
|
|
|
|
|
|
cat >expected <<EOF
|
t8005: Nobody writes Russian in shift_jis
The second and third tests of this script expected that Russian strings
are converted between ISO-8859-5 and Shift_JIS in the "blame --porcelain"
format output correctly.
Sure, many platforms may convert between such a combination, but that is
only because one of the base character set of Shift_JIS, JIS X 0208,
defines codepoints for Russian characters (among others); I do not think
anybody uses Shift_JIS when seriously writing Russian, and it is perfectly
understandable if iconv() libraries on some platforms fail converting
between this combination, as it does not matter in reality.
This patch changes the test to verify Japanese strings are converted
correctly between EUC-JP and Shift_JIS in the same procedure. The point
of the test is not about verifying the platform's iconv() library, but to
see if "git blame" makes correct iconv() library calls when it should.
We could instead use ISO-8859-5 and KOI8-R as the combination, because
they are both meant to represent Russian, in order to make this test
meaningful on more platforms, but we already use Shift_JIS vs EUC-JP
combinations to test other programs in our test suite, so this combination
is safer from the point of view of the portability. Besides, I do not
read nor write Russian; sorry ;-)
This change allows tests to pass on my (friend's) Solaris 5.11 box.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-19 06:18:37 +04:00
|
|
|
author $EUC_JAPAN_NAME
|
|
|
|
summary $EUC_JAPAN_MSG
|
|
|
|
author $EUC_JAPAN_NAME
|
|
|
|
summary $EUC_JAPAN_MSG
|
|
|
|
author $EUC_JAPAN_NAME
|
|
|
|
summary $EUC_JAPAN_MSG
|
2008-10-22 00:55:57 +04:00
|
|
|
EOF
|
|
|
|
|
2014-07-22 02:09:27 +04:00
|
|
|
test_expect_success !MINGW \
|
2008-10-22 00:55:57 +04:00
|
|
|
'blame respects i18n.logoutputencoding' '
|
t8005: Nobody writes Russian in shift_jis
The second and third tests of this script expected that Russian strings
are converted between ISO-8859-5 and Shift_JIS in the "blame --porcelain"
format output correctly.
Sure, many platforms may convert between such a combination, but that is
only because one of the base character set of Shift_JIS, JIS X 0208,
defines codepoints for Russian characters (among others); I do not think
anybody uses Shift_JIS when seriously writing Russian, and it is perfectly
understandable if iconv() libraries on some platforms fail converting
between this combination, as it does not matter in reality.
This patch changes the test to verify Japanese strings are converted
correctly between EUC-JP and Shift_JIS in the same procedure. The point
of the test is not about verifying the platform's iconv() library, but to
see if "git blame" makes correct iconv() library calls when it should.
We could instead use ISO-8859-5 and KOI8-R as the combination, because
they are both meant to represent Russian, in order to make this test
meaningful on more platforms, but we already use Shift_JIS vs EUC-JP
combinations to test other programs in our test suite, so this combination
is safer from the point of view of the portability. Besides, I do not
read nor write Russian; sorry ;-)
This change allows tests to pass on my (friend's) Solaris 5.11 box.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-19 06:18:37 +04:00
|
|
|
git config i18n.logoutputencoding eucJP &&
|
2016-02-21 20:32:21 +03:00
|
|
|
git blame --incremental file >output &&
|
|
|
|
filter_author_summary output >actual &&
|
|
|
|
test_cmp expected actual
|
2008-10-22 00:55:57 +04:00
|
|
|
'
|
|
|
|
|
|
|
|
cat >expected <<EOF
|
|
|
|
author $UTF8_NAME
|
|
|
|
summary $UTF8_MSG
|
|
|
|
author $UTF8_NAME
|
|
|
|
summary $UTF8_MSG
|
|
|
|
author $UTF8_NAME
|
|
|
|
summary $UTF8_MSG
|
|
|
|
EOF
|
|
|
|
|
2014-07-22 02:09:27 +04:00
|
|
|
test_expect_success !MINGW \
|
2009-05-23 03:47:05 +04:00
|
|
|
'blame respects --encoding=UTF-8' '
|
2016-02-21 20:32:21 +03:00
|
|
|
git blame --incremental --encoding=UTF-8 file >output &&
|
|
|
|
filter_author_summary output >actual &&
|
|
|
|
test_cmp expected actual
|
2008-10-22 00:55:57 +04:00
|
|
|
'
|
|
|
|
|
|
|
|
cat >expected <<EOF
|
|
|
|
author $SJIS_NAME
|
|
|
|
summary $SJIS_MSG
|
t8005: Nobody writes Russian in shift_jis
The second and third tests of this script expected that Russian strings
are converted between ISO-8859-5 and Shift_JIS in the "blame --porcelain"
format output correctly.
Sure, many platforms may convert between such a combination, but that is
only because one of the base character set of Shift_JIS, JIS X 0208,
defines codepoints for Russian characters (among others); I do not think
anybody uses Shift_JIS when seriously writing Russian, and it is perfectly
understandable if iconv() libraries on some platforms fail converting
between this combination, as it does not matter in reality.
This patch changes the test to verify Japanese strings are converted
correctly between EUC-JP and Shift_JIS in the same procedure. The point
of the test is not about verifying the platform's iconv() library, but to
see if "git blame" makes correct iconv() library calls when it should.
We could instead use ISO-8859-5 and KOI8-R as the combination, because
they are both meant to represent Russian, in order to make this test
meaningful on more platforms, but we already use Shift_JIS vs EUC-JP
combinations to test other programs in our test suite, so this combination
is safer from the point of view of the portability. Besides, I do not
read nor write Russian; sorry ;-)
This change allows tests to pass on my (friend's) Solaris 5.11 box.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-19 06:18:37 +04:00
|
|
|
author $EUC_JAPAN_NAME
|
|
|
|
summary $EUC_JAPAN_MSG
|
2008-10-22 00:55:57 +04:00
|
|
|
author $UTF8_NAME
|
|
|
|
summary $UTF8_MSG
|
|
|
|
EOF
|
|
|
|
|
2014-07-22 02:09:27 +04:00
|
|
|
test_expect_success !MINGW \
|
2008-10-22 00:55:57 +04:00
|
|
|
'blame respects --encoding=none' '
|
2016-02-21 20:32:21 +03:00
|
|
|
git blame --incremental --encoding=none file >output &&
|
|
|
|
filter_author_summary output >actual &&
|
|
|
|
test_cmp expected actual
|
2008-10-22 00:55:57 +04:00
|
|
|
'
|
|
|
|
|
|
|
|
test_done
|