Sync with maint
[git] / t / t4210-log-i18n.sh
1 #!/bin/sh
2
3 test_description='test log with i18n features'
4 . ./test-lib.sh
5
6 # two forms of é
7 utf8_e=$(printf '\303\251')
8 latin1_e=$(printf '\351')
9
10 test_expect_success 'create commits in different encodings' '
11         test_tick &&
12         cat >msg <<-EOF &&
13         utf8
14
15         t${utf8_e}st
16         EOF
17         git add msg &&
18         git -c i18n.commitencoding=utf8 commit -F msg &&
19         cat >msg <<-EOF &&
20         latin1
21
22         t${latin1_e}st
23         EOF
24         git add msg &&
25         git -c i18n.commitencoding=ISO-8859-1 commit -F msg
26 '
27
28 test_expect_success 'log --grep searches in log output encoding (utf8)' '
29         cat >expect <<-\EOF &&
30         latin1
31         utf8
32         EOF
33         git log --encoding=utf8 --format=%s --grep=$utf8_e >actual &&
34         test_cmp expect actual
35 '
36
37 test_expect_success !MINGW 'log --grep searches in log output encoding (latin1)' '
38         cat >expect <<-\EOF &&
39         latin1
40         utf8
41         EOF
42         git log --encoding=ISO-8859-1 --format=%s --grep=$latin1_e >actual &&
43         test_cmp expect actual
44 '
45
46 test_expect_success !MINGW 'log --grep does not find non-reencoded values (utf8)' '
47         >expect &&
48         git log --encoding=utf8 --format=%s --grep=$latin1_e >actual &&
49         test_cmp expect actual
50 '
51
52 test_expect_success 'log --grep does not find non-reencoded values (latin1)' '
53         >expect &&
54         git log --encoding=ISO-8859-1 --format=%s --grep=$utf8_e >actual &&
55         test_cmp expect actual
56 '
57
58 test_done