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