summaryrefslogtreecommitdiff
path: root/test/command_callback/test_c_clangd_command_callbacks.vader
diff options
context:
space:
mode:
Diffstat (limited to 'test/command_callback/test_c_clangd_command_callbacks.vader')
-rw-r--r--test/command_callback/test_c_clangd_command_callbacks.vader31
1 files changed, 26 insertions, 5 deletions
diff --git a/test/command_callback/test_c_clangd_command_callbacks.vader b/test/command_callback/test_c_clangd_command_callbacks.vader
index dc52097d..555122f6 100644
--- a/test/command_callback/test_c_clangd_command_callbacks.vader
+++ b/test/command_callback/test_c_clangd_command_callbacks.vader
@@ -4,31 +4,52 @@ Before:
Save &filetype
let &filetype = 'c'
+ Save b:ale_c_clangd_options
+ Save b:ale_c_build_dir
+ Save b:ale_c_build_dir_names
+ Save b:ale_c_parse_compile_commands
+
+ let b:command_tail = ' -x c'
+
After:
+ unlet! b:command_tail
+
call ale#assert#TearDownLinterTest()
Execute(The language string should be correct):
AssertLSPLanguage 'c'
Execute(The default executable should be correct):
- AssertLinter 'clangd', ale#Escape('clangd')
+ AssertLinter 'clangd', ale#Escape('clangd') . b:command_tail
Execute(The project root should be detected correctly):
call ale#test#SetFilename(tempname() . '/dummy.c')
AssertLSPProject ''
- call ale#test#SetFilename('clangd_paths/dummy.c')
+ call ale#test#SetFilename('clangd_paths/with_compile_commands/dummy.c')
- AssertLSPProject ale#path#Simplify(g:dir . '/clangd_paths')
+ AssertLSPProject ale#path#Simplify(g:dir . '/clangd_paths/with_compile_commands')
Execute(The executable should be configurable):
let g:ale_c_clangd_executable = 'foobar'
- AssertLinter 'foobar', ale#Escape('foobar')
+ AssertLinter 'foobar', ale#Escape('foobar') . b:command_tail
Execute(The options should be configurable):
let b:ale_c_clangd_options = '-compile-commands-dir=foo'
- AssertLinter 'clangd', ale#Escape('clangd') . ' ' . b:ale_c_clangd_options
+ AssertLinter 'clangd', ale#Escape('clangd') . b:command_tail . ' ' . b:ale_c_clangd_options
+
+Execute(The compile command database should be detected correctly):
+ call ale#test#SetFilename('clangd_paths/with_build_dir/dummy_src/dummy.c')
+
+ let b:ale_c_clangd_options = ''
+ let b:ale_c_build_dir = ''
+ let b:ale_c_build_dir_names = ['unusual_build_dir_name']
+ let b:ale_c_parse_compile_commands = 1
+
+ AssertLinter 'clangd', ale#Escape('clangd') . b:command_tail
+ \ . ' -compile-commands-dir='
+ \ . ale#Escape(ale#path#Simplify(g:dir . '/clangd_paths/with_build_dir/unusual_build_dir_name'))