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