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