1" Test the :compiler command 2 3source check.vim 4source shared.vim 5 6func Test_compiler() 7 if !executable('perl') 8 return 9 endif 10 CheckFeature quickfix 11 12 " $LANG changes the output of Perl. 13 if $LANG != '' 14 unlet $LANG 15 endif 16 17 " %:S does not work properly with 'shellslash' set 18 let save_shellslash = &shellslash 19 set noshellslash 20 21 e Xfoo.pl 22 compiler perl 23 call assert_equal('perl', b:current_compiler) 24 call assert_fails('let g:current_compiler', 'E121:') 25 26 call setline(1, ['#!/usr/bin/perl -w', 'use strict;', 'my $foo=1']) 27 w! 28 call feedkeys(":make\<CR>\<CR>", 'tx') 29 call assert_fails('clist', 'E42:') 30 31 call setline(1, ['#!/usr/bin/perl -w', 'use strict;', '$foo=1']) 32 w! 33 call feedkeys(":make\<CR>\<CR>", 'tx') 34 let a=execute('clist') 35 call assert_match('\n \d\+ Xfoo.pl:3: Global symbol "$foo" ' 36 \ . 'requires explicit package name', a) 37 38 39 let &shellslash = save_shellslash 40 call delete('Xfoo.pl') 41 bw! 42endfunc 43 44func Test_compiler_without_arg() 45 let runtime = substitute($VIMRUNTIME, '\\', '/', 'g') 46 let a = split(execute('compiler')) 47 call assert_match(runtime .. '/compiler/ant.vim$', a[0]) 48 call assert_match(runtime .. '/compiler/bcc.vim$', a[1]) 49 call assert_match(runtime .. '/compiler/xo.vim$', a[-1]) 50endfunc 51 52" Test executing :compiler from the command line, not from a script 53func Test_compiler_commandline() 54 call system(GetVimCommandClean() .. ' --not-a-term -c "compiler gcc" -c "call writefile([b:current_compiler], ''XcompilerOut'')" -c "quit"') 55 call assert_equal(0, v:shell_error) 56 call assert_equal(["gcc"], readfile('XcompilerOut')) 57 58 call delete('XcompilerOut') 59endfunc 60 61func Test_compiler_completion() 62 call feedkeys(":compiler \<C-A>\<C-B>\"\<CR>", 'tx') 63 call assert_match('^"compiler ant bcc .* xmlwf xo$', @:) 64 65 call feedkeys(":compiler p\<C-A>\<C-B>\"\<CR>", 'tx') 66 call assert_equal('"compiler pbx perl php pylint pyunit', @:) 67 68 call feedkeys(":compiler! p\<C-A>\<C-B>\"\<CR>", 'tx') 69 call assert_equal('"compiler! pbx perl php pylint pyunit', @:) 70endfunc 71 72func Test_compiler_error() 73 let g:current_compiler = 'abc' 74 call assert_fails('compiler doesnotexist', 'E666:') 75 call assert_equal('abc', g:current_compiler) 76 call assert_fails('compiler! doesnotexist', 'E666:') 77 unlet! g:current_compiler 78endfunc 79 80" vim: shiftwidth=2 sts=2 expandtab 81