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