summaryrefslogtreecommitdiff
path: root/test/command_callback
diff options
context:
space:
mode:
Diffstat (limited to 'test/command_callback')
-rw-r--r--test/command_callback/test_cargo_command_callbacks.vader48
-rw-r--r--test/command_callback/test_cpp_clangcheck_command_callbacks.vader9
-rw-r--r--test/command_callback/test_haskell_ghc_command_callbacks.vader23
-rw-r--r--test/command_callback/test_proto_command_callback.vader11
4 files changed, 85 insertions, 6 deletions
diff --git a/test/command_callback/test_cargo_command_callbacks.vader b/test/command_callback/test_cargo_command_callbacks.vader
index 65ea5a80..9c06f27d 100644
--- a/test/command_callback/test_cargo_command_callbacks.vader
+++ b/test/command_callback/test_cargo_command_callbacks.vader
@@ -1,9 +1,13 @@
Before:
Save g:ale_rust_cargo_use_check
Save g:ale_rust_cargo_check_all_targets
+ Save g:ale_rust_cargo_default_feature_behavior
+ Save g:ale_rust_cargo_include_features
unlet! g:ale_rust_cargo_use_check
unlet! g:ale_cargo_check_all_targets
+ unlet! g:ale_rust_cargo_default_feature_behavior
+ unlet! g:ale_rust_cargo_include_features
runtime ale_linters/rust/cargo.vim
call ale#test#SetDirectory('/testplugin/test/command_callback')
@@ -114,3 +118,47 @@ Execute(--all-targets should be used when g:ale_rust_cargo_check_all_targets is
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
+
+Execute(--no-default-features should be used when g:ale_rust_cargo_default_feature_behavior is none):
+ let g:ale_rust_cargo_default_feature_behavior = 'none'
+
+ AssertEqual
+ \ 'cargo check' . g:suffix . ' --no-default-features',
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [
+ \ 'cargo 0.22.0 (3423351a5 2017-10-06)',
+ \ ])
+
+Execute(g:ale_rust_cargo_include_features added when g:ale_rust_cargo_default_feature_behavior is none):
+ let g:ale_rust_cargo_default_feature_behavior = 'none'
+ let g:ale_rust_cargo_include_features = 'foo bar'
+
+ AssertEqual
+ \ 'cargo check' . g:suffix . ' --no-default-features --features ' .
+ \ (fnamemodify(&shell, ':t') is? 'cmd.exe' ? '"foo bar"' : "'foo bar'"),
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [
+ \ 'cargo 0.22.0 (3423351a5 2017-10-06)',
+ \ ])
+
+Execute(g:ale_rust_cargo_include_features added and escaped):
+ let g:ale_rust_cargo_default_feature_behavior = 'default'
+ let g:ale_rust_cargo_include_features = "foo bar baz"
+
+ AssertEqual
+ \ 'cargo check' . g:suffix . ' --features ' .
+ \ (fnamemodify(&shell, ':t') is? 'cmd.exe' ? '"foo bar baz"' : "'foo bar baz'"),
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [
+ \ 'cargo 0.22.0 (3423351a5 2017-10-06)',
+ \ ])
+
+Execute(--all-features should be used when g:ale_rust_cargo_default_feature_behavior is all):
+ let g:ale_rust_cargo_default_feature_behavior = 'all'
+
+ " When all features are enabled we should ignore extra features to add
+ " since it won't do anything
+ let g:ale_rust_cargo_include_features = 'foo bar'
+
+ AssertEqual
+ \ 'cargo check' . g:suffix . ' --all-features',
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [
+ \ 'cargo 0.22.0 (3423351a5 2017-10-06)',
+ \ ])
diff --git a/test/command_callback/test_cpp_clangcheck_command_callbacks.vader b/test/command_callback/test_cpp_clangcheck_command_callbacks.vader
index 34b87fc6..f708c52d 100644
--- a/test/command_callback/test_cpp_clangcheck_command_callbacks.vader
+++ b/test/command_callback/test_cpp_clangcheck_command_callbacks.vader
@@ -28,7 +28,7 @@ Execute(The executable should be used in the command):
AssertEqual
\ ale#Escape('clang-check')
\ . ' -analyze %s'
- \ . ' -extra-arg -Xanalyzer -extra-arg -analyzer-output=text',
+ \ . ' -extra-arg -Xclang -extra-arg -analyzer-output=text',
\ ale_linters#cpp#clangcheck#GetCommand(bufnr(''))
let b:ale_cpp_clangcheck_executable = 'foobar'
@@ -38,7 +38,7 @@ Execute(The executable should be used in the command):
AssertEqual
\ ale#Escape('foobar')
\ . ' -analyze %s'
- \ . ' -extra-arg -Xanalyzer -extra-arg -analyzer-output=text',
+ \ . ' -extra-arg -Xclang -extra-arg -analyzer-output=text',
\ ale_linters#cpp#clangcheck#GetCommand(bufnr(''))
Execute(The options should be configurable):
@@ -46,8 +46,9 @@ Execute(The options should be configurable):
AssertEqual
\ ale#Escape('clang-check')
- \ . ' -analyze %s --something'
- \ . ' -extra-arg -Xanalyzer -extra-arg -analyzer-output=text',
+ \ . ' -analyze %s'
+ \ . ' -extra-arg -Xclang -extra-arg -analyzer-output=text'
+ \ . ' --something',
\ ale_linters#cpp#clangcheck#GetCommand(bufnr(''))
Execute(The build directory should be used when set):
diff --git a/test/command_callback/test_haskell_ghc_command_callbacks.vader b/test/command_callback/test_haskell_ghc_command_callbacks.vader
new file mode 100644
index 00000000..edaf2b98
--- /dev/null
+++ b/test/command_callback/test_haskell_ghc_command_callbacks.vader
@@ -0,0 +1,23 @@
+Before:
+ Save g:ale_haskell_ghc_options
+
+ unlet! g:ale_haskell_ghc_options
+ unlet! b:ale_haskell_ghc_options
+
+ runtime ale_linters/haskell/ghc.vim
+
+After:
+ Restore
+ unlet! b:ale_haskell_ghc_options
+ call ale#linter#Reset()
+
+Execute(The options should be used in the command):
+ AssertEqual
+ \ 'ghc -fno-code -v0 %t',
+ \ ale_linters#haskell#ghc#GetCommand(bufnr(''))
+
+ let b:ale_haskell_ghc_options = 'foobar'
+
+ AssertEqual
+ \ 'ghc foobar %t',
+ \ ale_linters#haskell#ghc#GetCommand(bufnr(''))
diff --git a/test/command_callback/test_proto_command_callback.vader b/test/command_callback/test_proto_command_callback.vader
index 2fd7775e..76050c61 100644
--- a/test/command_callback/test_proto_command_callback.vader
+++ b/test/command_callback/test_proto_command_callback.vader
@@ -1,14 +1,21 @@
Before:
- call ale#test#SetDirectory('/testplugin/test/command_callback')
call ale#test#SetFilename('test.proto')
After:
Restore
- call ale#test#RestoreDirectory()
+ unlet! b:ale_proto_protoc_gen_lint_options
+
call ale#linter#Reset()
Execute(The default command should be correct):
AssertEqual
\ 'protoc' . ' -I ' . ale#Escape(getcwd()) . ' --lint_out=. ' . '%s',
\ ale_linters#proto#protoc_gen_lint#GetCommand(bufnr(''))
+
+Execute(The callback should include any additional options):
+ let b:ale_proto_protoc_gen_lint_options = '--some-option'
+
+ AssertEqual
+ \ 'protoc' . ' -I ' . ale#Escape(getcwd()) . ' --some-option --lint_out=. ' . '%s',
+ \ ale_linters#proto#protoc_gen_lint#GetCommand(bufnr(''))