Skip to content

Commit

Permalink
tests: move stdin related tests to own file
Browse files Browse the repository at this point in the history
  • Loading branch information
blueyed committed Feb 22, 2018
1 parent ad3aea3 commit fecbba4
Show file tree
Hide file tree
Showing 3 changed files with 170 additions and 168 deletions.
1 change: 1 addition & 0 deletions tests/main.vader
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Include (Processing): processing.vader
Include (Serialize): serialize.vader
Include (Signs): signs.vader
Include (Statusline): statusline.vader
Include (Stdin): stdin.vader
Include (Temporary files): tempfiles.vader
Include (Toggling): toggle.vader
Include (Utils): utils.vader
Expand Down
169 changes: 169 additions & 0 deletions tests/stdin.vader
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
Include: include/setup.vader

Execute (stdin maker):
let maker = {'exe': 'cat', 'supports_stdin': 1, 'errorformat': '%f:%m'}
new
" Stdin should be used also when tempfiles are disabled.
let b:neomake_tempfile_enabled = 0
normal! ifile1.test:line1
normal! ofile1.test:line2
call neomake#Make(1, [maker])
if neomake#has_async_support()
AssertNeomakeMessage "Starting async job: ['cat', '-'].", 2
NeomakeTestsWaitForFinishedJobs
endif
AssertNeomakeMessage '\mstdout: unnamed_maker: [''file1.test:line1.*'
AssertEqual map(getloclist(0), 'v:val.text'), ['line1', 'line2']
bwipe!

Execute (stdin maker (args as string)):
let maker = {'exe': 'cat', 'args': '', 'supports_stdin': 1, 'errorformat': '%f:%m'}
new
" Stdin should be used also when tempfiles are disabled.
let b:neomake_tempfile_enabled = 0
normal! ifile1.test:line1
normal! ofile1.test:line2
call neomake#Make(1, [maker])
if neomake#has_async_support()
if has('nvim')
AssertNeomakeMessage "Starting async job: 'cat \\-'.", 2
else
let shell_argv = "'".join(split(&shell) + split(&shellcmdflag), "', '")."'"
AssertNeomakeMessage "Starting async job: [".shell_argv.", 'cat \\-'].", 2
endif
NeomakeTestsWaitForFinishedJobs
endif
AssertNeomakeMessage '\mstdout: unnamed_maker: [''file1.test:line1.*'
AssertEqual map(getloclist(0), 'v:val.text'), ['line1', 'line2']
bwipe!

Execute (stdin maker (disabled tempfiles)):
let maker = {'exe': 'cat', 'supports_stdin': 1, 'tempfile_name': '-'}
new
" Stdin should be used also when tempfiles are disabled.
let b:neomake_tempfile_enabled = 0
normal! iline1
normal! oline2
call neomake#Make(1, [maker])
AssertNeomakeMessage 'Using stdin for unnamed buffer.'
if neomake#has_async_support()
AssertNeomakeMessage "Starting async job: ['cat', '-'].", 2
NeomakeTestsWaitForFinishedJobs
else
AssertNeomakeMessage 'Starting: cat -.', 2
endif
AssertNeomakeMessage '\mstdout: unnamed_maker: [''line1.*'
AssertEqual map(getloclist(0), 'v:val.text'), ['line1', 'line2']
bwipe!

Execute (stdin maker (project mode: append_file)):
let maker = {'exe': 'cat', 'supports_stdin': 1, 'tempfile_name': '-',
\ 'append_file': 1}
new
" Stdin should be used also when tempfiles are disabled.
let b:neomake_tempfile_enabled = 0
normal! iline1
normal! oline2
call neomake#Make(0, [maker])
if neomake#has_async_support()
AssertNeomakeMessage "Starting async job: ['cat', '-'].", 2
NeomakeTestsWaitForFinishedJobs
else
AssertNeomakeMessage 'Starting: cat -.', 2
endif
AssertNeomakeMessage '\mstdout: unnamed_maker: [''line1.*'
AssertEqual map(getqflist(), 'v:val.text'), ['line1', 'line2']
bwipe!

Execute (stdin maker (project mode: uses_filename)):
let maker = {'exe': 'cat', 'args': '$NEOMAKE_FILE', 'supports_stdin': 1,
\ 'uses_filename': 1}
new
" Stdin should be used also when tempfiles are disabled.
let b:neomake_tempfile_enabled = 0
normal! iline1
normal! oline2
call neomake#Make(0, [maker])
AssertNeomakeMessage 'Using stdin for unnamed buffer.'
if neomake#has_async_support()
if has('nvim')
AssertNeomakeMessage "Starting async job: 'cat $NEOMAKE_FILE'.", 2
else
let shell_argv = "'".join(split(&shell) + split(&shellcmdflag), "', '")."'"
AssertNeomakeMessage "Starting async job: [".shell_argv.", 'cat $NEOMAKE_FILE'].", 2
endif
NeomakeTestsWaitForFinishedJobs
else
AssertNeomakeMessage 'Starting: cat $NEOMAKE_FILE.', 2
endif
AssertNeomakeMessage '\mstdout: unnamed_maker: [''line1.*'
AssertEqual map(getqflist(), 'v:val.text'), ['line1', 'line2']
bwipe!

Execute (stdin maker: supports_stdin can be a callback adding args):
let maker = {'exe': 'printf', 'args': ['%s\n']}
function maker.supports_stdin(jobinfo)
let self.args += ['added_arg']
return 1
endfunction
new
set buftype=nofile
CallNeomake 1, [maker]
AssertNeomakeMessage 'Using stdin for unnamed buffer.'
AssertEqual map(getloclist(0), 'v:val.text'), ['added_arg', '-']
bwipe

Execute (stdin maker: supports_stdin can be a callback adding args, and setting tempfile_name):
let maker = {'exe': 'printf', 'args': ['%s\n']}
function maker.supports_stdin(jobinfo)
let self.args += ['added_arg']
let self.tempfile_name = 'custom_tempfile'
return 1
endfunction
new
set buftype=nofile
CallNeomake 1, [maker]
AssertNeomakeMessage 'Using stdin for unnamed buffer.'
AssertEqual map(getloclist(0), 'v:val.text'), ['added_arg', 'custom_tempfile']
bwipe

Execute (stdin maker: supports_stdin can be a callback returning 0):
let maker = {'exe': 'printf', 'args': ['%s\n']}
function maker.supports_stdin(jobinfo)
return 0
endfunction
new
set buftype=nofile
CallNeomake 1, [maker]
AssertNeomakeMessage '\v^Using tempfile for unnamed buffer: "(.*)".$'
let tempfile_name = g:neomake_test_matchlist[1]
AssertEqual map(getloclist(0), 'v:val.text'), [tempfile_name]
bwipe

Execute (stdin maker: supports_stdin can be a callback returning 0 and change args):
let maker = {'exe': 'printf', 'args': ['%s\n']}
function maker.supports_stdin(jobinfo)
let self.args += ['added_arg']
return 0
endfunction
new
set buftype=nofile
CallNeomake 1, [maker]
AssertNeomakeMessage '\v^Using tempfile for unnamed buffer: "(.*)".$'
let tempfile_name = g:neomake_test_matchlist[1]
AssertEqual map(getloclist(0), 'v:val.text'), ['added_arg', tempfile_name]
bwipe

Execute (stdin maker: uses neomake#utils#get_buffer_lines for buffer_lines):
let maker = {'exe': 'cat', 'supports_stdin': 1}
new
set buftype=nofile
CallNeomake 1, [maker]
AssertNeomakeMessage '\v^Using tempfile for unnamed buffer: "(.*)".$'
let tempfile_name = g:neomake_test_matchlist[1]
AssertEqual map(getloclist(0), 'v:val.text'), []

normal! o
CallNeomake 1, [maker]
AssertEqual map(getloclist(0), 'v:val.text'), ['', '']
bwipe
168 changes: 0 additions & 168 deletions tests/tempfiles.vader
Original file line number Diff line number Diff line change
Expand Up @@ -479,174 +479,6 @@ Execute (unlisted buffers created for tempfiles get wiped):
bwipe!
endif

Execute (stdin maker):
let maker = {'exe': 'cat', 'supports_stdin': 1, 'errorformat': '%f:%m'}
new
" Stdin should be used also when tempfiles are disabled.
let b:neomake_tempfile_enabled = 0
normal! ifile1.test:line1
normal! ofile1.test:line2
call neomake#Make(1, [maker])
if neomake#has_async_support()
AssertNeomakeMessage "Starting async job: ['cat', '-'].", 2
NeomakeTestsWaitForFinishedJobs
endif
AssertNeomakeMessage '\mstdout: unnamed_maker: [''file1.test:line1.*'
AssertEqual map(getloclist(0), 'v:val.text'), ['line1', 'line2']
bwipe!

Execute (stdin maker (args as string)):
let maker = {'exe': 'cat', 'args': '', 'supports_stdin': 1, 'errorformat': '%f:%m'}
new
" Stdin should be used also when tempfiles are disabled.
let b:neomake_tempfile_enabled = 0
normal! ifile1.test:line1
normal! ofile1.test:line2
call neomake#Make(1, [maker])
if neomake#has_async_support()
if has('nvim')
AssertNeomakeMessage "Starting async job: 'cat \\-'.", 2
else
let shell_argv = "'".join(split(&shell) + split(&shellcmdflag), "', '")."'"
AssertNeomakeMessage "Starting async job: [".shell_argv.", 'cat \\-'].", 2
endif
NeomakeTestsWaitForFinishedJobs
endif
AssertNeomakeMessage '\mstdout: unnamed_maker: [''file1.test:line1.*'
AssertEqual map(getloclist(0), 'v:val.text'), ['line1', 'line2']
bwipe!

Execute (stdin maker (disabled tempfiles)):
let maker = {'exe': 'cat', 'supports_stdin': 1, 'tempfile_name': '-'}
new
" Stdin should be used also when tempfiles are disabled.
let b:neomake_tempfile_enabled = 0
normal! iline1
normal! oline2
call neomake#Make(1, [maker])
AssertNeomakeMessage 'Using stdin for unnamed buffer.'
if neomake#has_async_support()
AssertNeomakeMessage "Starting async job: ['cat', '-'].", 2
NeomakeTestsWaitForFinishedJobs
else
AssertNeomakeMessage 'Starting: cat -.', 2
endif
AssertNeomakeMessage '\mstdout: unnamed_maker: [''line1.*'
AssertEqual map(getloclist(0), 'v:val.text'), ['line1', 'line2']
bwipe!

Execute (stdin maker (project mode: append_file)):
let maker = {'exe': 'cat', 'supports_stdin': 1, 'tempfile_name': '-',
\ 'append_file': 1}
new
" Stdin should be used also when tempfiles are disabled.
let b:neomake_tempfile_enabled = 0
normal! iline1
normal! oline2
call neomake#Make(0, [maker])
if neomake#has_async_support()
AssertNeomakeMessage "Starting async job: ['cat', '-'].", 2
NeomakeTestsWaitForFinishedJobs
else
AssertNeomakeMessage 'Starting: cat -.', 2
endif
AssertNeomakeMessage '\mstdout: unnamed_maker: [''line1.*'
AssertEqual map(getqflist(), 'v:val.text'), ['line1', 'line2']
bwipe!

Execute (stdin maker (project mode: uses_filename)):
let maker = {'exe': 'cat', 'args': '$NEOMAKE_FILE', 'supports_stdin': 1,
\ 'uses_filename': 1}
new
" Stdin should be used also when tempfiles are disabled.
let b:neomake_tempfile_enabled = 0
normal! iline1
normal! oline2
call neomake#Make(0, [maker])
AssertNeomakeMessage 'Using stdin for unnamed buffer.'
if neomake#has_async_support()
if has('nvim')
AssertNeomakeMessage "Starting async job: 'cat $NEOMAKE_FILE'.", 2
else
let shell_argv = "'".join(split(&shell) + split(&shellcmdflag), "', '")."'"
AssertNeomakeMessage "Starting async job: [".shell_argv.", 'cat $NEOMAKE_FILE'].", 2
endif
NeomakeTestsWaitForFinishedJobs
else
AssertNeomakeMessage 'Starting: cat $NEOMAKE_FILE.', 2
endif
AssertNeomakeMessage '\mstdout: unnamed_maker: [''line1.*'
AssertEqual map(getqflist(), 'v:val.text'), ['line1', 'line2']
bwipe!

Execute (stdin maker: supports_stdin can be a callback adding args):
let maker = {'exe': 'printf', 'args': ['%s\n']}
function maker.supports_stdin(jobinfo)
let self.args += ['added_arg']
return 1
endfunction
new
set buftype=nofile
CallNeomake 1, [maker]
AssertNeomakeMessage 'Using stdin for unnamed buffer.'
AssertEqual map(getloclist(0), 'v:val.text'), ['added_arg', '-']
bwipe

Execute (stdin maker: supports_stdin can be a callback adding args, and setting tempfile_name):
let maker = {'exe': 'printf', 'args': ['%s\n']}
function maker.supports_stdin(jobinfo)
let self.args += ['added_arg']
let self.tempfile_name = 'custom_tempfile'
return 1
endfunction
new
set buftype=nofile
CallNeomake 1, [maker]
AssertNeomakeMessage 'Using stdin for unnamed buffer.'
AssertEqual map(getloclist(0), 'v:val.text'), ['added_arg', 'custom_tempfile']
bwipe

Execute (stdin maker: supports_stdin can be a callback returning 0):
let maker = {'exe': 'printf', 'args': ['%s\n']}
function maker.supports_stdin(jobinfo)
return 0
endfunction
new
set buftype=nofile
CallNeomake 1, [maker]
AssertNeomakeMessage '\v^Using tempfile for unnamed buffer: "(.*)".$'
let tempfile_name = g:neomake_test_matchlist[1]
AssertEqual map(getloclist(0), 'v:val.text'), [tempfile_name]
bwipe

Execute (stdin maker: supports_stdin can be a callback returning 0 and change args):
let maker = {'exe': 'printf', 'args': ['%s\n']}
function maker.supports_stdin(jobinfo)
let self.args += ['added_arg']
return 0
endfunction
new
set buftype=nofile
CallNeomake 1, [maker]
AssertNeomakeMessage '\v^Using tempfile for unnamed buffer: "(.*)".$'
let tempfile_name = g:neomake_test_matchlist[1]
AssertEqual map(getloclist(0), 'v:val.text'), ['added_arg', tempfile_name]
bwipe

Execute (stdin maker: uses neomake#utils#get_buffer_lines for buffer_lines):
let maker = {'exe': 'cat', 'supports_stdin': 1}
new
set buftype=nofile
CallNeomake 1, [maker]
AssertNeomakeMessage '\v^Using tempfile for unnamed buffer: "(.*)".$'
let tempfile_name = g:neomake_test_matchlist[1]
AssertEqual map(getloclist(0), 'v:val.text'), []

normal! o
CallNeomake 1, [maker]
AssertEqual map(getloclist(0), 'v:val.text'), ['', '']
bwipe

Execute (Uses temporary dir for non-writable directory):
new
file /non-writable-dir/file
Expand Down

0 comments on commit fecbba4

Please sign in to comment.