Before: call ale#assert#SetUpLinterTest('vhdl', 'hdl_checker') Save g:ale_hdl_checker_executable Save g:ale_hdl_checker_config_file Save g:ale_hdl_checker_options let g:default_config_file = has('unix') ? '.hdl_checker.config' : '_hdl_checker.config' runtime autoload/ale/handlers/hdl_checker.vim After: Restore call ale#assert#TearDownLinterTest() unlet! g:default_config_file unlet! g:call_count runtime autoload/ale/handlers/hdl_checker.vim Execute(Get default initialization dict): AssertEqual \ {'project_file': g:default_config_file}, \ ale#handlers#hdl_checker#GetInitOptions(bufnr('')) Execute(Get custom initialization dict): let g:ale_hdl_checker_config_file = 'some_file_name' AssertEqual \ {'project_file': 'some_file_name'}, \ ale#handlers#hdl_checker#GetInitOptions(bufnr('')) Execute(Get the checker command without extra user parameters): AssertEqual \ ale#Escape('hdl_checker') . ' --lsp', \ ale#handlers#hdl_checker#GetCommand(bufnr('')) Execute(Get the checker command with user configured parameters): let g:ale_hdl_checker_options = '--log-level DEBUG' AssertEqual \ ale#Escape('hdl_checker') . ' --lsp --log-level DEBUG', \ ale#handlers#hdl_checker#GetCommand(bufnr('')) Execute(Customize executable): let g:ale_hdl_checker_executable = '/some/other/path' AssertEqual \ ale#Escape('/some/other/path') . ' --lsp', \ ale#handlers#hdl_checker#GetCommand(bufnr('')) Execute(Get project root based on .git): call ale#test#SetFilename('../test-files/hdl_server/with_git/files/foo.vhd') " Create .git file silent! call mkdir(g:dir . '/../test-files/hdl_server/with_git/.git') AssertNotEqual '', glob(g:dir . '/../test-files/hdl_server/with_git/.git') AssertEqual \ ale#path#Simplify(g:dir . '/../test-files/hdl_server/with_git'), \ ale#handlers#hdl_checker#GetProjectRoot(bufnr('')) Execute(Get project root based on config file): call ale#test#SetFilename('../test-files/hdl_server/with_config_file/foo.vhd') AssertEqual \ ale#path#Simplify(g:dir . '/../test-files/hdl_server/with_config_file'), \ ale#handlers#hdl_checker#GetProjectRoot(bufnr('')) Execute(Return no project root if neither .git or config file are found): let g:call_count = 0 " Mock this command to avoid the test to find ale's own .git folder function! ale#handlers#hdl_checker#IsDotGit(path) abort let g:call_count += 1 return 0 endfunction call ale#test#SetFilename('../test-files/hdl_server/foo.vhd') AssertEqual \ '', \ ale#handlers#hdl_checker#GetProjectRoot(bufnr('')) AssertEqual g:call_count, 1 unlet! g:call_count