12c7292dcSBram Moolenaar" Tests for 'makeencoding'. 22c7292dcSBram Moolenaar 32c7292dcSBram Moolenaarsource shared.vim 45a4c3082SBram Moolenaarsource check.vim 52c7292dcSBram Moolenaar 65a4c3082SBram MoolenaarCheckFeature quickfix 72c7292dcSBram Moolenaarlet s:python = PythonProg() 82c7292dcSBram Moolenaarif s:python == '' 9b46fecd3SBram Moolenaar throw 'Skipped: python program missing' 102c7292dcSBram Moolenaarendif 112c7292dcSBram Moolenaar 122c7292dcSBram Moolenaarlet s:script = 'test_makeencoding.py' 132c7292dcSBram Moolenaar 142c7292dcSBram Moolenaarlet s:message_tbl = { 152c7292dcSBram Moolenaar \ 'utf-8': 'ÀÈÌÒÙ こんにちは 你好', 162c7292dcSBram Moolenaar \ 'latin1': 'ÀÈÌÒÙ', 172c7292dcSBram Moolenaar \ 'cp932': 'こんにちは', 182c7292dcSBram Moolenaar \ 'cp936': '你好', 192c7292dcSBram Moolenaar \} 202c7292dcSBram Moolenaar 212c7292dcSBram Moolenaar 222c7292dcSBram Moolenaar" Tests for :cgetfile and :lgetfile. 232c7292dcSBram Moolenaarfunc Test_getfile() 242c7292dcSBram Moolenaar set errorfile=Xerror.txt 252c7292dcSBram Moolenaar set errorformat=%f(%l)\ :\ %m 262c7292dcSBram Moolenaar 272c7292dcSBram Moolenaar " :cgetfile 282c7292dcSBram Moolenaar for enc in keys(s:message_tbl) 292c7292dcSBram Moolenaar let &makeencoding = enc 302c7292dcSBram Moolenaar exec "silent !" . s:python . " " . s:script . " " . enc . " > " . &errorfile 312c7292dcSBram Moolenaar cgetfile 322c7292dcSBram Moolenaar copen 332c7292dcSBram Moolenaar call assert_equal("Xfoobar.c|10| " . s:message_tbl[enc] . " (" . enc . ")", 342c7292dcSBram Moolenaar \ getline('.')) 352c7292dcSBram Moolenaar cclose 362c7292dcSBram Moolenaar endfor 372c7292dcSBram Moolenaar 382c7292dcSBram Moolenaar " :lgetfile 392c7292dcSBram Moolenaar for enc in keys(s:message_tbl) 402c7292dcSBram Moolenaar let &makeencoding = enc 412c7292dcSBram Moolenaar exec "silent !" . s:python . " " . s:script . " " . enc . " > " . &errorfile 422c7292dcSBram Moolenaar lgetfile 432c7292dcSBram Moolenaar lopen 442c7292dcSBram Moolenaar call assert_equal("Xfoobar.c|10| " . s:message_tbl[enc] . " (" . enc . ")", 452c7292dcSBram Moolenaar \ getline('.')) 462c7292dcSBram Moolenaar lclose 472c7292dcSBram Moolenaar endfor 482c7292dcSBram Moolenaar 492c7292dcSBram Moolenaar call delete(&errorfile) 502c7292dcSBram Moolenaarendfunc 512c7292dcSBram Moolenaar 522c7292dcSBram Moolenaar 532c7292dcSBram Moolenaar" Tests for :grep and :lgrep. 542c7292dcSBram Moolenaarfunc Test_grep() 552c7292dcSBram Moolenaar let &grepprg = s:python 562c7292dcSBram Moolenaar set grepformat=%f(%l)\ :\ %m 572c7292dcSBram Moolenaar 582c7292dcSBram Moolenaar " :grep 592c7292dcSBram Moolenaar for enc in keys(s:message_tbl) 602c7292dcSBram Moolenaar let &makeencoding = enc 612c7292dcSBram Moolenaar exec "silent grep! " . s:script . " " . enc 622c7292dcSBram Moolenaar copen 632c7292dcSBram Moolenaar call assert_equal("Xfoobar.c|10| " . s:message_tbl[enc] . " (" . enc . ")", 642c7292dcSBram Moolenaar \ getline('.')) 652c7292dcSBram Moolenaar cclose 662c7292dcSBram Moolenaar endfor 672c7292dcSBram Moolenaar 682c7292dcSBram Moolenaar " :lgrep 692c7292dcSBram Moolenaar for enc in keys(s:message_tbl) 702c7292dcSBram Moolenaar let &makeencoding = enc 712c7292dcSBram Moolenaar exec "silent lgrep! " . s:script . " " . enc 722c7292dcSBram Moolenaar lopen 732c7292dcSBram Moolenaar call assert_equal("Xfoobar.c|10| " . s:message_tbl[enc] . " (" . enc . ")", 742c7292dcSBram Moolenaar \ getline('.')) 752c7292dcSBram Moolenaar lclose 762c7292dcSBram Moolenaar endfor 772c7292dcSBram Moolenaarendfunc 782c7292dcSBram Moolenaar 792c7292dcSBram Moolenaar 802c7292dcSBram Moolenaar" Tests for :make and :lmake. 812c7292dcSBram Moolenaarfunc Test_make() 822c7292dcSBram Moolenaar let &makeprg = s:python 832c7292dcSBram Moolenaar set errorformat=%f(%l)\ :\ %m 842c7292dcSBram Moolenaar 852c7292dcSBram Moolenaar " :make 862c7292dcSBram Moolenaar for enc in keys(s:message_tbl) 872c7292dcSBram Moolenaar let &makeencoding = enc 882c7292dcSBram Moolenaar exec "silent make! " . s:script . " " . enc 892c7292dcSBram Moolenaar copen 902c7292dcSBram Moolenaar call assert_equal("Xfoobar.c|10| " . s:message_tbl[enc] . " (" . enc . ")", 912c7292dcSBram Moolenaar \ getline('.')) 922c7292dcSBram Moolenaar cclose 932c7292dcSBram Moolenaar endfor 942c7292dcSBram Moolenaar 952c7292dcSBram Moolenaar " :lmake 962c7292dcSBram Moolenaar for enc in keys(s:message_tbl) 972c7292dcSBram Moolenaar let &makeencoding = enc 982c7292dcSBram Moolenaar exec "silent lmake! " . s:script . " " . enc 992c7292dcSBram Moolenaar lopen 1002c7292dcSBram Moolenaar call assert_equal("Xfoobar.c|10| " . s:message_tbl[enc] . " (" . enc . ")", 1012c7292dcSBram Moolenaar \ getline('.')) 1022c7292dcSBram Moolenaar lclose 1032c7292dcSBram Moolenaar endfor 1042c7292dcSBram Moolenaarendfunc 105*6d91bcb4SBram Moolenaar 106*6d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 107