1" Tests for 'makeencoding'. 2 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 104