diff options
Diffstat (limited to 'test/command_callback')
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('')) |