test-reach: add run_three_modes method
[git.git] / t / t4210-log-i18n.sh
blob7c519436ef3d2ed4843d173948c8fcac1069cffe
1 #!/bin/sh
3 test_description='test log with i18n features'
4 . ./test-lib.sh
6 # two forms of é
7 utf8_e=$(printf '\303\251')
8 latin1_e=$(printf '\351')
10 test_expect_success 'create commits in different encodings' '
11 test_tick &&
12 cat >msg <<-EOF &&
13 utf8
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
22 t${latin1_e}st
23 EOF
24 git add msg &&
25 git -c i18n.commitencoding=ISO-8859-1 commit -F msg
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
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
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
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
56 test_done