summaryrefslogtreecommitdiff
path: root/test/command_callback
diff options
context:
space:
mode:
Diffstat (limited to 'test/command_callback')
-rw-r--r--test/command_callback/test_clang_tidy_command_callback.vader60
1 files changed, 53 insertions, 7 deletions
diff --git a/test/command_callback/test_clang_tidy_command_callback.vader b/test/command_callback/test_clang_tidy_command_callback.vader
index 46d8a3a6..dc66859a 100644
--- a/test/command_callback/test_clang_tidy_command_callback.vader
+++ b/test/command_callback/test_clang_tidy_command_callback.vader
@@ -1,31 +1,77 @@
Before:
Save g:ale_cpp_clangtidy_checks
Save g:ale_cpp_clangtidy_options
+ Save g:ale_c_build_dir
+
+ unlet! g:ale_c_build_dir
+ unlet! b:ale_c_build_dir
+ unlet! g:ale_cpp_clangtidy_checks
+ unlet! b:ale_cpp_clangtidy_checks
+ unlet! g:ale_cpp_clangtidy_options
+ unlet! b:ale_cpp_clangtidy_options
+
runtime ale_linters/cpp/clangtidy.vim
After:
+ unlet! b:ale_c_build_dir
+ unlet! b:ale_cpp_clangtidy_checks
+ unlet! b:ale_cpp_clangtidy_options
+ unlet! b:ale_cpp_clangtidy_executable
+
Restore
call ale#linter#Reset()
Execute(The clangtidy command default should be correct):
AssertEqual
- \ 'clang-tidy -checks=''*'' %s',
+ \ ale#Escape('clang-tidy')
+ \ . ' -checks=''*'' %s',
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
Execute(You should be able to remove the -checks option for clang-tidy):
- let g:ale_cpp_clangtidy_checks = []
+ let b:ale_cpp_clangtidy_checks = []
+
AssertEqual
- \ 'clang-tidy %s',
+ \ ale#Escape('clang-tidy')
+ \ . ' %s',
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
Execute(You should be able to set other checks for clang-tidy):
- let g:ale_cpp_clangtidy_checks = ['-*', 'clang-analyzer-*']
+ let b:ale_cpp_clangtidy_checks = ['-*', 'clang-analyzer-*']
+
AssertEqual
- \ 'clang-tidy -checks=''-*,clang-analyzer-*'' %s',
+ \ ale#Escape('clang-tidy')
+ \ . ' -checks=''-*,clang-analyzer-*'' %s',
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
Execute(You should be able to manually set compiler flags for clang-tidy):
- let g:ale_cpp_clangtidy_options = '-Wall'
+ let b:ale_cpp_clangtidy_options = '-Wall'
+
+ AssertEqual
+ \ ale#Escape('clang-tidy')
+ \ . ' -checks=''*'' %s -- -Wall',
+ \ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
+ \
+Execute(The build directory should be configurable):
+ let b:ale_c_build_dir = '/foo/bar'
+
+ AssertEqual
+ \ ale#Escape('clang-tidy')
+ \ . ' -checks=''*'' %s -p ' . ale#Escape('/foo/bar'),
+ \ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
+
+Execute(The build directory setting should override the options):
+ let b:ale_c_build_dir = '/foo/bar'
+ let b:ale_cpp_clangtidy_options = '-Wall'
+
+ AssertEqual
+ \ ale#Escape('clang-tidy')
+ \ . ' -checks=''*'' %s -p ' . ale#Escape('/foo/bar'),
+ \ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
+
+Execute(The executable should be configurable):
+ let b:ale_cpp_clangtidy_executable = 'foobar'
+
AssertEqual
- \ 'clang-tidy -checks=''*'' %s -- -Wall',
+ \ ale#Escape('foobar')
+ \ . ' -checks=''*'' %s',
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))