1" Tests for 'makeencoding'. 2 3source shared.vim 4 5let s:python = PythonProg() 6if s:python == '' 7 throw 'Skipped: python program missing' 8endif 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 103