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