Before: Save g:ale_c_parse_makefile let g:ale_c_parse_makefile = 0 let g:get_cflags_return_value = '' runtime autoload/ale/c.vim function! ale#c#GetCFlags(buffer, output) abort return g:get_cflags_return_value endfunction call ale#assert#SetUpLinterTest('cpp', 'gcc') let b:command_tail = ' -S -x c++' \ . ' -o ' . (has('win32') ? 'nul': '/dev/null') \ . ' -iquote ' . ale#Escape(getcwd()) \ . ' -std=c++14 -Wall -' After: unlet! g:get_cflags_return_value unlet! b:command_tail runtime autoload/ale/c.vim call ale#assert#TearDownLinterTest() Execute(The executable should be configurable): AssertLinter 'gcc', ale#Escape('gcc') . b:command_tail let b:ale_cpp_gcc_executable = 'foobar' AssertLinter 'foobar', ale#Escape('foobar') . b:command_tail Execute(The -std flag should be replaced by parsed C flags): let b:command_tail = substitute(b:command_tail, 'c++14', 'c++11 ', '') let g:get_cflags_return_value = '-std=c++11' AssertLinter 'gcc', ale#Escape('gcc') . b:command_tail