Sync with 2.18.2
[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         git log --encoding=utf8 --format=%s --grep=$latin1_e >actual &&
48         test_must_be_empty actual
49 '
50
51 test_expect_success 'log --grep does not find non-reencoded values (latin1)' '
52         git log --encoding=ISO-8859-1 --format=%s --grep=$utf8_e >actual &&
53         test_must_be_empty actual
54 '
55
56 test_done