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