blob: 6de3c706f38d0d16035652a69e260d7af26f3d47 [file] [log] [blame]
Bram Moolenaar2c7292d2017-03-05 17:43:31 +01001" Tests for 'makeencoding'.
Bram Moolenaar2c7292d2017-03-05 17:43:31 +01002
3source shared.vim
4
5let s:python = PythonProg()
6if s:python == ''
Bram Moolenaarb0f94c12019-06-13 22:19:53 +02007 throw 'Skipped, python program missing'
Bram Moolenaar2c7292d2017-03-05 17:43:31 +01008endif
9
10let s:script = 'test_makeencoding.py'
11
12let s:message_tbl = {
13 \ 'utf-8': 'ÀÈÌÒÙ こんにちは 你好',
14 \ 'latin1': 'ÀÈÌÒÙ',
15 \ 'cp932': 'こんにちは',
16 \ 'cp936': '你好',
17 \}
18
19
20" Tests for :cgetfile and :lgetfile.
21func Test_getfile()
22 set errorfile=Xerror.txt
23 set errorformat=%f(%l)\ :\ %m
24
25 " :cgetfile
26 for enc in keys(s:message_tbl)
27 let &makeencoding = enc
28 exec "silent !" . s:python . " " . s:script . " " . enc . " > " . &errorfile
29 cgetfile
30 copen
31 call assert_equal("Xfoobar.c|10| " . s:message_tbl[enc] . " (" . enc . ")",
32 \ getline('.'))
33 cclose
34 endfor
35
36 " :lgetfile
37 for enc in keys(s:message_tbl)
38 let &makeencoding = enc
39 exec "silent !" . s:python . " " . s:script . " " . enc . " > " . &errorfile
40 lgetfile
41 lopen
42 call assert_equal("Xfoobar.c|10| " . s:message_tbl[enc] . " (" . enc . ")",
43 \ getline('.'))
44 lclose
45 endfor
46
47 call delete(&errorfile)
48endfunc
49
50
51" Tests for :grep and :lgrep.
52func Test_grep()
53 let &grepprg = s:python
54 set grepformat=%f(%l)\ :\ %m
55
56 " :grep
57 for enc in keys(s:message_tbl)
58 let &makeencoding = enc
59 exec "silent grep! " . s:script . " " . enc
60 copen
61 call assert_equal("Xfoobar.c|10| " . s:message_tbl[enc] . " (" . enc . ")",
62 \ getline('.'))
63 cclose
64 endfor
65
66 " :lgrep
67 for enc in keys(s:message_tbl)
68 let &makeencoding = enc
69 exec "silent lgrep! " . s:script . " " . enc
70 lopen
71 call assert_equal("Xfoobar.c|10| " . s:message_tbl[enc] . " (" . enc . ")",
72 \ getline('.'))
73 lclose
74 endfor
75endfunc
76
77
78" Tests for :make and :lmake.
79func Test_make()
80 let &makeprg = s:python
81 set errorformat=%f(%l)\ :\ %m
82
83 " :make
84 for enc in keys(s:message_tbl)
85 let &makeencoding = enc
86 exec "silent make! " . s:script . " " . enc
87 copen
88 call assert_equal("Xfoobar.c|10| " . s:message_tbl[enc] . " (" . enc . ")",
89 \ getline('.'))
90 cclose
91 endfor
92
93 " :lmake
94 for enc in keys(s:message_tbl)
95 let &makeencoding = enc
96 exec "silent lmake! " . s:script . " " . enc
97 lopen
98 call assert_equal("Xfoobar.c|10| " . s:message_tbl[enc] . " (" . enc . ")",
99 \ getline('.'))
100 lclose
101 endfor
102endfunc