Before:
  call ale#assert#SetUpLinterTest('verilog', 'verible_ls')

After:
  call ale#assert#TearDownLinterTest()

Execute(The default executable path and arguments should be correct):
  AssertLinter 'verible-verilog-ls', ale#Escape('verible-verilog-ls') . ' --rules_config_search'

Execute(The project root should be detected correctly in empty directory):
  AssertLSPProject '.'

Execute(The project root should be detected correctly with verible.filelist):
  call ale#test#SetFilename('../test-files/verilog/verible/module.sv')
  AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/verilog/verible')

Execute(The LSP values should be set correctly):
  call ale#test#SetFilename('../test-files/verilog/verible/module.sv')

  AssertLSPLanguage 'verilog'
  AssertLSPOptions {}
  AssertLSPConfig {}
  AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/verilog/verible')


Execute(The verible LSP callback should allow custom options):
  let g:ale_verilog_verible_ls_options = '--foo --bar'
  AssertLinter 'verible-verilog-ls', ale#Escape('verible-verilog-ls') . ' --foo --bar'


Execute(The verible LSP callback should allow custom rules):
  let g:ale_verilog_verible_ls_rules = '+foo,-bar'
  AssertLinter 'verible-verilog-ls', ale#Escape('verible-verilog-ls') . ' --rules_config_search --rules=+foo,-bar'
