Before: Save g:ale_run_synchronously Save g:ale_linters Save g:ale_history_log_output Save g:ale_cpp_gcc_options silent! cd /testplugin/test/c_tests let g:ale_run_synchronously = 1 let g:ale_linters = {'c': ['gcc'], 'cpp': ['g++']} let g:ale_history_log_output = 1 let g:ale_cpp_gcc_options = '-Wall' function! GetCommandOutput() if empty(g:ale_buffer_info[bufnr('')].history) return '' endif return join(g:ale_buffer_info[bufnr('')].history[-1].output, "\n") endfunction After: Restore delfunction GetCommandOutput call ale#linter#Reset() call ale#engine#SetResults(bufnr(''), []) call ale#cleanup#Buffer(bufnr('')) Given c (A test C file): int main() { return 0 } Execute(Basic errors should be returned for GCC for C files): call ale#Lint() AssertEqual \ [{'lnum': 3, 'col': 1}], \ map(getloclist(0), '{''lnum'': v:val.lnum, ''col'': v:val.col}') Assert match(getloclist(0)[0].text, '\v^expected .*;.* before .*\}.* token$') >= 0, \ 'Invalid error text: ' . getloclist(0)[0].text Given cpp (A test C++ file): int main() { return 0 } Execute(Basic errors should be returned for GCC for C++ files): call ale#Lint() AssertEqual \ [{'lnum': 3, 'col': 1}], \ map(getloclist(0), '{''lnum'': v:val.lnum, ''col'': v:val.col}') Assert match(getloclist(0)[0].text, '\v^expected .*;.* before .*\}.* token$') >= 0, Given c (A test C file with a header containing broken code): // Some comment line #include "broken.h" int main() { return 0 } Execute(Basic errors should be returned for GCC for C files with headers): call ale#Lint() AssertEqual \ [{'lnum': 2, 'col': 0}], \ map(getloclist(0), '{''lnum'': v:val.lnum, ''col'': v:val.col}') AssertEqual 'Problems were found in the header (See :ALEDetail)', getloclist(0)[0].text Given cpp (A test C++ file with a header containing broken code): // Some comment line #include "broken.h" int main() { return 0 } Execute(Basic errors should be returned for GCC for C++ files with headers): call ale#Lint() AssertEqual \ [{'lnum': 2, 'col': 0}], \ map(getloclist(0), '{''lnum'': v:val.lnum, ''col'': v:val.col}') AssertEqual 'Problems were found in the header (See :ALEDetail)', getloclist(0)[0].text