mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-16 01:07:06 +08:00
Massively reduce the amount of code needed for linter tests
This commit is contained in:
@@ -1,39 +1,18 @@
|
||||
Before:
|
||||
Save g:ale_asm_gcc_executable
|
||||
Save g:ale_asm_gcc_options
|
||||
|
||||
unlet! g:ale_asm_gcc_executable
|
||||
unlet! b:ale_asm_gcc_executable
|
||||
unlet! g:ale_asm_gcc_options
|
||||
unlet! b:ale_asm_gcc_options
|
||||
|
||||
runtime ale_linters/asm/gcc.vim
|
||||
|
||||
call ale#assert#SetUpLinterTest('asm', 'gcc')
|
||||
call ale#test#SetFilename('test.cpp')
|
||||
let b:command_tail = ' -x assembler -fsyntax-only -iquote'
|
||||
\ . ' ' . ale#Escape(getcwd())
|
||||
\ . ' ' . ale#Escape(g:dir)
|
||||
\ . ' -Wall -'
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_asm_gcc_executable
|
||||
unlet! b:ale_asm_gcc_options
|
||||
call ale#linter#Reset()
|
||||
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'gcc', ale_linters#asm#gcc#GetExecutable(bufnr(''))
|
||||
AssertLinter 'gcc', ale#Escape('gcc') . b:command_tail
|
||||
|
||||
let b:ale_asm_gcc_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#asm#gcc#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('gcc') . b:command_tail,
|
||||
\ ale_linters#asm#gcc#GetCommand(bufnr(''))
|
||||
|
||||
let b:ale_asm_gcc_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . b:command_tail,
|
||||
\ ale_linters#asm#gcc#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . b:command_tail
|
||||
|
||||
@@ -1,39 +1,24 @@
|
||||
Before:
|
||||
Save g:ale_ruby_brakeman_options
|
||||
|
||||
runtime ale_linters/ruby/brakeman.vim
|
||||
|
||||
let g:ale_ruby_brakeman_options = ''
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('ruby', 'brakeman')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The brakeman command callback should detect absence of a valid Rails app):
|
||||
call ale#test#SetFilename('../ruby_fixtures/not_a_rails_app/test.rb')
|
||||
|
||||
AssertEqual
|
||||
\ '',
|
||||
\ ale_linters#ruby#brakeman#GetCommand(bufnr(''))
|
||||
AssertLinter 'brakeman', ''
|
||||
|
||||
Execute(The brakeman command callback should find a valid Rails app root):
|
||||
call ale#test#SetFilename('../ruby_fixtures/valid_rails_app/db/test.rb')
|
||||
|
||||
AssertEqual
|
||||
\ 'brakeman -f json -q -p '
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../ruby_fixtures/valid_rails_app')),
|
||||
\ ale_linters#ruby#brakeman#GetCommand(bufnr(''))
|
||||
AssertLinter 'brakeman', 'brakeman -f json -q -p '
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../ruby_fixtures/valid_rails_app'))
|
||||
|
||||
Execute(The brakeman command callback should include configured options):
|
||||
call ale#test#SetFilename('../ruby_fixtures/valid_rails_app/db/test.rb')
|
||||
|
||||
let g:ale_ruby_brakeman_options = '--combobulate'
|
||||
|
||||
AssertEqual
|
||||
\ 'brakeman -f json -q --combobulate -p '
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../ruby_fixtures/valid_rails_app')),
|
||||
\ ale_linters#ruby#brakeman#GetCommand(bufnr(''))
|
||||
AssertLinter 'brakeman', 'brakeman -f json -q --combobulate -p '
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../ruby_fixtures/valid_rails_app'))
|
||||
|
||||
@@ -1,39 +1,17 @@
|
||||
Before:
|
||||
Save g:ale_c_clang_executable
|
||||
Save g:ale_c_clang_options
|
||||
|
||||
unlet! g:ale_c_clang_executable
|
||||
unlet! b:ale_c_clang_executable
|
||||
unlet! g:ale_c_clang_options
|
||||
unlet! b:ale_c_clang_options
|
||||
|
||||
runtime ale_linters/c/clang.vim
|
||||
|
||||
call ale#assert#SetUpLinterTest('c', 'clang')
|
||||
let b:command_tail = ' -S -x c -fsyntax-only -iquote'
|
||||
\ . ' ' . ale#Escape(getcwd())
|
||||
\ . ' -std=c11 -Wall -'
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_c_clang_executable
|
||||
unlet! b:ale_c_clang_options
|
||||
call ale#linter#Reset()
|
||||
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'clang', ale_linters#c#clang#GetExecutable(bufnr(''))
|
||||
AssertLinter 'clang', ['', ale#Escape('clang') . b:command_tail]
|
||||
|
||||
let b:ale_c_clang_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#c#clang#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('clang') . b:command_tail,
|
||||
\ ale_linters#c#clang#GetCommand(bufnr(''), [])
|
||||
|
||||
let b:ale_c_clang_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . b:command_tail,
|
||||
\ ale_linters#c#clang#GetCommand(bufnr(''), [])
|
||||
AssertLinter 'foobar', ['', ale#Escape('foobar') . b:command_tail]
|
||||
|
||||
@@ -1,77 +1,49 @@
|
||||
Before:
|
||||
Save g:ale_c_clangtidy_checks
|
||||
Save g:ale_c_clangtidy_options
|
||||
Save g:ale_c_build_dir
|
||||
|
||||
unlet! g:ale_c_build_dir
|
||||
unlet! b:ale_c_build_dir
|
||||
unlet! g:ale_c_clangtidy_checks
|
||||
unlet! b:ale_c_clangtidy_checks
|
||||
unlet! g:ale_c_clangtidy_options
|
||||
unlet! b:ale_c_clangtidy_options
|
||||
|
||||
runtime ale_linters/c/clangtidy.vim
|
||||
|
||||
call ale#assert#SetUpLinterTest('c', 'clangtidy')
|
||||
call ale#test#SetFilename('test.c')
|
||||
|
||||
After:
|
||||
unlet! b:ale_c_build_dir
|
||||
unlet! b:ale_c_clangtidy_checks
|
||||
unlet! b:ale_c_clangtidy_options
|
||||
unlet! b:ale_c_clangtidy_executable
|
||||
|
||||
Restore
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The clangtidy command default should be correct):
|
||||
AssertEqual
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s',
|
||||
\ ale_linters#c#clangtidy#GetCommand(bufnr(''))
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy') . ' -checks=' . ale#Escape('*') . ' %s'
|
||||
|
||||
Execute(You should be able to remove the -checks option for clang-tidy):
|
||||
let b:ale_c_clangtidy_checks = []
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' %s',
|
||||
\ ale_linters#c#clangtidy#GetCommand(bufnr(''))
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy') . ' %s'
|
||||
|
||||
Execute(You should be able to set other checks for clang-tidy):
|
||||
let b:ale_c_clangtidy_checks = ['-*', 'clang-analyzer-*']
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('-*,clang-analyzer-*') . ' %s',
|
||||
\ ale_linters#c#clangtidy#GetCommand(bufnr(''))
|
||||
\ . ' -checks=' . ale#Escape('-*,clang-analyzer-*') . ' %s'
|
||||
|
||||
Execute(You should be able to manually set compiler flags for clang-tidy):
|
||||
let b:ale_c_clangtidy_options = '-Wall'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s'
|
||||
\ . ' -- -Wall',
|
||||
\ ale_linters#c#clangtidy#GetCommand(bufnr(''))
|
||||
\
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy') . ' -checks=' . ale#Escape('*') . ' %s -- -Wall'
|
||||
|
||||
Execute(The build directory should be configurable):
|
||||
let b:ale_c_build_dir = '/foo/bar'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s'
|
||||
\ . ' -p ' . ale#Escape('/foo/bar'),
|
||||
\ ale_linters#c#clangtidy#GetCommand(bufnr(''))
|
||||
\ . ' -p ' . ale#Escape('/foo/bar')
|
||||
|
||||
Execute(The build directory setting should override the options):
|
||||
let b:ale_c_build_dir = '/foo/bar'
|
||||
let b:ale_c_clangtidy_options = '-Wall'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s'
|
||||
\ . ' -p ' . ale#Escape('/foo/bar'),
|
||||
\ ale_linters#c#clangtidy#GetCommand(bufnr(''))
|
||||
\ . ' -p ' . ale#Escape('/foo/bar')
|
||||
|
||||
Execute(The build directory should be ignored for header files):
|
||||
call ale#test#SetFilename('test.h')
|
||||
@@ -79,24 +51,17 @@ Execute(The build directory should be ignored for header files):
|
||||
let b:ale_c_build_dir = '/foo/bar'
|
||||
let b:ale_c_clangtidy_options = '-Wall'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s'
|
||||
\ . ' -- -Wall',
|
||||
\ ale_linters#c#clangtidy#GetCommand(bufnr(''))
|
||||
\
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s -- -Wall'
|
||||
|
||||
call ale#test#SetFilename('test.h')
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s'
|
||||
\ . ' -- -Wall',
|
||||
\ ale_linters#c#clangtidy#GetCommand(bufnr(''))
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy') . ' -checks=' . ale#Escape('*') . ' %s -- -Wall'
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
let b:ale_c_clangtidy_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s',
|
||||
\ ale_linters#c#clangtidy#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar',
|
||||
\ ale#Escape('foobar') . ' -checks=' . ale#Escape('*') . ' %s'
|
||||
|
||||
@@ -1,49 +1,24 @@
|
||||
Before:
|
||||
Save g:ale_c_cppcheck_executable
|
||||
Save g:ale_c_cppcheck_options
|
||||
|
||||
unlet! g:ale_c_cppcheck_executable
|
||||
unlet! b:ale_c_cppcheck_executable
|
||||
unlet! g:ale_c_cppcheck_options
|
||||
unlet! b:ale_c_cppcheck_options
|
||||
|
||||
runtime ale_linters/c/cppcheck.vim
|
||||
call ale#assert#SetUpLinterTest('c', 'cppcheck')
|
||||
|
||||
let b:command_tail = ' -q --language=c --enable=style %t'
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
After:
|
||||
Restore
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_c_cppcheck_executable
|
||||
unlet! b:ale_c_cppcheck_options
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'cppcheck', ale_linters#c#cppcheck#GetExecutable(bufnr(''))
|
||||
AssertLinter 'cppcheck', ale#Escape('cppcheck') . b:command_tail
|
||||
|
||||
let b:ale_c_cppcheck_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#c#cppcheck#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('cppcheck') . b:command_tail,
|
||||
\ ale_linters#c#cppcheck#GetCommand(bufnr(''))
|
||||
|
||||
let b:ale_c_cppcheck_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . b:command_tail,
|
||||
\ ale_linters#c#cppcheck#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . b:command_tail
|
||||
|
||||
Execute(cppcheck for C++ should detect compile_commands.json files):
|
||||
call ale#test#SetFilename('cppcheck_paths/one/foo.cpp')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'cppcheck',
|
||||
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/cppcheck_paths/one')) . ' && '
|
||||
\ . ale#Escape('cppcheck')
|
||||
\ . ' -q --language=c --project=compile_commands.json --enable=style %t',
|
||||
\ ale_linters#c#cppcheck#GetCommand(bufnr(''))
|
||||
\ . ' -q --language=c --project=compile_commands.json --enable=style %t'
|
||||
|
||||
@@ -1,51 +1,24 @@
|
||||
Before:
|
||||
Save g:ale_c_flawfinder_executable
|
||||
Save g:ale_c_flawfinder_options
|
||||
Save g:ale_c_flawfinder_minlevel
|
||||
|
||||
unlet! g:ale_c_flawfinder_executable
|
||||
unlet! b:ale_c_flawfinder_executable
|
||||
unlet! g:ale_c_flawfinder_options
|
||||
unlet! b:ale_c_flawfinder_options
|
||||
unlet! g:ale_c_flawfinder_minlevel
|
||||
unlet! b:ale_c_flawfinder_minlevel
|
||||
|
||||
runtime ale_linters/c/flawfinder.vim
|
||||
call ale#assert#SetUpLinterTest('c', 'flawfinder')
|
||||
|
||||
After:
|
||||
unlet! b:ale_c_flawfinder_executable
|
||||
unlet! b:ale_c_flawfinder_options
|
||||
unlet! b:ale_c_flawfinder_minlevel
|
||||
|
||||
Restore
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The flawfinder command should be correct):
|
||||
AssertEqual
|
||||
\ ale#Escape('flawfinder')
|
||||
\ . ' -CDQS --minlevel=1 %t',
|
||||
\ ale_linters#c#flawfinder#GetCommand(bufnr(''))
|
||||
AssertLinter 'flawfinder', ale#Escape('flawfinder') . ' -CDQS --minlevel=1 %t'
|
||||
|
||||
Execute(The minlevel of flawfinder should be configurable):
|
||||
let b:ale_c_flawfinder_minlevel = 8
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('flawfinder')
|
||||
\ . ' -CDQS --minlevel=8 %t',
|
||||
\ ale_linters#c#flawfinder#GetCommand(bufnr(''))
|
||||
AssertLinter 'flawfinder', ale#Escape('flawfinder') . ' -CDQS --minlevel=8 %t'
|
||||
|
||||
Execute(Additional flawfinder options should be configurable):
|
||||
let b:ale_c_flawfinder_options = ' --foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('flawfinder')
|
||||
\ . ' -CDQS --foobar --minlevel=1 %t',
|
||||
\ ale_linters#c#flawfinder#GetCommand(bufnr(''))
|
||||
AssertLinter 'flawfinder',
|
||||
\ ale#Escape('flawfinder') . ' -CDQS --foobar --minlevel=1 %t'
|
||||
|
||||
Execute(The flawfinder exectable should be configurable):
|
||||
let b:ale_c_flawfinder_executable = 'foo/bar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foo/bar')
|
||||
\ . ' -CDQS --minlevel=1 %t',
|
||||
\ ale_linters#c#flawfinder#GetCommand(bufnr(''))
|
||||
AssertLinter 'foo/bar', ale#Escape('foo/bar') . ' -CDQS --minlevel=1 %t'
|
||||
|
||||
@@ -1,39 +1,18 @@
|
||||
Before:
|
||||
Save g:ale_c_gcc_executable
|
||||
Save g:ale_c_gcc_options
|
||||
|
||||
unlet! g:ale_c_gcc_executable
|
||||
unlet! b:ale_c_gcc_executable
|
||||
unlet! g:ale_c_gcc_options
|
||||
unlet! b:ale_c_gcc_options
|
||||
|
||||
runtime ale_linters/c/gcc.vim
|
||||
call ale#assert#SetUpLinterTest('c', 'gcc')
|
||||
|
||||
let b:command_tail = ' -S -x c -fsyntax-only -iquote'
|
||||
\ . ' ' . ale#Escape(getcwd())
|
||||
\ . ' -std=c11 -Wall -'
|
||||
|
||||
After:
|
||||
Restore
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_c_gcc_executable
|
||||
unlet! b:ale_c_gcc_options
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'gcc', ale_linters#c#gcc#GetExecutable(bufnr(''))
|
||||
AssertLinter 'gcc', ['', ale#Escape('gcc') . b:command_tail]
|
||||
|
||||
let b:ale_c_gcc_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#c#gcc#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('gcc') . b:command_tail,
|
||||
\ ale_linters#c#gcc#GetCommand(bufnr(''), [])
|
||||
|
||||
let b:ale_c_gcc_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . b:command_tail,
|
||||
\ ale_linters#c#gcc#GetCommand(bufnr(''), [])
|
||||
AssertLinter 'foobar', ['', ale#Escape('foobar') . b:command_tail]
|
||||
|
||||
@@ -1,223 +1,130 @@
|
||||
Before:
|
||||
Save g:ale_rust_cargo_use_check
|
||||
Save g:ale_rust_cargo_check_all_targets
|
||||
Save g:ale_rust_cargo_check_tests
|
||||
Save g:ale_rust_cargo_check_examples
|
||||
Save g:ale_rust_cargo_default_feature_behavior
|
||||
Save g:ale_rust_cargo_include_features
|
||||
Save g:ale_rust_cargo_avoid_whole_workspace
|
||||
|
||||
unlet! g:ale_rust_cargo_use_check
|
||||
unlet! g:ale_rust_cargo_check_all_targets
|
||||
unlet! g:ale_rust_cargo_check_tests
|
||||
unlet! g:ale_rust_cargo_check_examples
|
||||
unlet! g:ale_rust_cargo_default_feature_behavior
|
||||
unlet! g:ale_rust_cargo_include_features
|
||||
unlet! g:ale_rust_cargo_avoid_whole_workspace
|
||||
|
||||
runtime ale_linters/rust/cargo.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('rust', 'cargo')
|
||||
|
||||
let g:suffix = ' --frozen --message-format=json -q'
|
||||
|
||||
" Test with version 0.22.0 by default.
|
||||
WithChainResults ['cargo 0.22.0 (3423351a5 2017-10-06)']
|
||||
|
||||
After:
|
||||
Restore
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
unlet! g:suffix
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#semver#ResetVersionCache()
|
||||
Execute(The linter should not be executed when there's no Cargo.toml file):
|
||||
AssertLinterNotExecuted
|
||||
|
||||
Execute(An empty string should be returned for the cargo executable when there's no Cargo.toml file):
|
||||
AssertEqual
|
||||
\ '',
|
||||
\ ale_linters#rust#cargo#GetCargoExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be returned when there is a Cargo.toml file):
|
||||
Execute(The linter should be executed when there is a Cargo.toml file):
|
||||
call ale#test#SetFilename('cargo_paths/test.rs')
|
||||
|
||||
AssertEqual
|
||||
\ 'cargo',
|
||||
\ ale_linters#rust#cargo#GetCargoExecutable(bufnr(''))
|
||||
|
||||
Execute(The VersionCheck function should return the --version command):
|
||||
AssertEqual
|
||||
\ 'cargo --version',
|
||||
\ ale_linters#rust#cargo#VersionCheck(bufnr(''))
|
||||
WithChainResults []
|
||||
AssertLinter 'cargo',
|
||||
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/cargo_paths')) . ' && '
|
||||
\ . 'cargo build --frozen --message-format=json -q'
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual
|
||||
\ 'cargo build' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
|
||||
WithChainResults []
|
||||
AssertLinter '', ['cargo --version', 'cargo build' . g:suffix]
|
||||
|
||||
Execute(`cargo check` should be used when the version is new enough):
|
||||
AssertEqual
|
||||
\ 'cargo check' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [
|
||||
\ 'cargo 0.17.0 (3423351a5 2017-10-06)',
|
||||
\ ])
|
||||
WithChainResults ['cargo 0.17.0 (3423351a5 2017-10-06)']
|
||||
AssertLinter '', ['cargo --version', 'cargo check' . g:suffix]
|
||||
|
||||
" We should cache the version check
|
||||
AssertEqual
|
||||
\ 'cargo check' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
|
||||
|
||||
AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
|
||||
WithChainResults []
|
||||
AssertLinter '', ['', 'cargo check' . g:suffix]
|
||||
|
||||
Execute(`cargo build` should be used when cargo is too old):
|
||||
AssertEqual
|
||||
\ 'cargo build' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [
|
||||
\ 'cargo 0.16.0 (3423351a5 2017-10-06)',
|
||||
\ ])
|
||||
WithChainResults ['cargo 0.16.0 (3423351a5 2017-10-06)']
|
||||
AssertLinter '', ['cargo --version', 'cargo build' . g:suffix]
|
||||
|
||||
" We should cache the version check
|
||||
AssertEqual
|
||||
\ 'cargo build' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
|
||||
|
||||
AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
|
||||
WithChainResults []
|
||||
AssertLinter '', ['', 'cargo build' . g:suffix]
|
||||
|
||||
Execute(`cargo build` should be used when g:ale_rust_cargo_use_check is set to 0):
|
||||
let g:ale_rust_cargo_use_check = 0
|
||||
|
||||
AssertEqual
|
||||
\ 'cargo build' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [
|
||||
\ 'cargo 0.24.0 (3423351a5 2017-10-06)',
|
||||
\ ])
|
||||
WithChainResults ['cargo 0.24.0 (3423351a5 2017-10-06)']
|
||||
AssertLinter '', ['cargo --version', 'cargo build' . g:suffix]
|
||||
|
||||
" We should cache the version check
|
||||
AssertEqual
|
||||
\ 'cargo build' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
|
||||
|
||||
AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
|
||||
WithChainResults []
|
||||
AssertLinter '', ['', 'cargo build' . g:suffix]
|
||||
|
||||
Execute(`cargo check` should be used when the version is new enough):
|
||||
AssertEqual
|
||||
\ 'cargo check' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [
|
||||
\ 'cargo 0.22.0 (3423351a5 2017-10-06)',
|
||||
\ ])
|
||||
AssertLinter '', ['cargo --version', 'cargo check' . g:suffix]
|
||||
|
||||
" We should cache the version check
|
||||
AssertEqual
|
||||
\ 'cargo check' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
|
||||
|
||||
AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
|
||||
WithChainResults []
|
||||
AssertLinter '', ['', 'cargo check' . g:suffix]
|
||||
|
||||
Execute(--all-targets should be used when g:ale_rust_cargo_check_all_targets is set to 1):
|
||||
let g:ale_rust_cargo_check_all_targets = 1
|
||||
|
||||
AssertEqual
|
||||
\ 'cargo check --all-targets' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [
|
||||
\ 'cargo 0.22.0 (3423351a5 2017-10-06)',
|
||||
\ ])
|
||||
AssertLinter '', ['cargo --version', 'cargo check --all-targets' . g:suffix]
|
||||
|
||||
" We should cache the version check
|
||||
AssertEqual
|
||||
\ 'cargo check --all-targets' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
|
||||
|
||||
AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
|
||||
WithChainResults []
|
||||
AssertLinter '', ['', 'cargo check --all-targets' . g:suffix]
|
||||
|
||||
Execute(--tests should be used when g:ale_rust_cargo_check_tests is set to 1):
|
||||
let g:ale_rust_cargo_check_tests = 1
|
||||
|
||||
AssertEqual
|
||||
\ 'cargo check --tests' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [
|
||||
\ 'cargo 0.22.0 (3423351a5 2017-10-06)',
|
||||
\ ])
|
||||
AssertLinter '', ['cargo --version', 'cargo check --tests' . g:suffix]
|
||||
|
||||
" We should cache the version check
|
||||
AssertEqual
|
||||
\ 'cargo check --tests' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
|
||||
|
||||
AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
|
||||
WithChainResults []
|
||||
AssertLinter '', ['', 'cargo check --tests' . g:suffix]
|
||||
|
||||
Execute(--examples should be used when g:ale_rust_cargo_check_examples is set to 1):
|
||||
let g:ale_rust_cargo_check_examples = 1
|
||||
|
||||
AssertEqual
|
||||
\ 'cargo check --examples' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [
|
||||
\ 'cargo 0.22.0 (3423351a5 2017-10-06)',
|
||||
\ ])
|
||||
AssertLinter '', ['cargo --version', 'cargo check --examples' . g:suffix]
|
||||
|
||||
" We should cache the version check
|
||||
AssertEqual
|
||||
\ 'cargo check --examples' . g:suffix,
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
|
||||
|
||||
AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
|
||||
WithChainResults []
|
||||
AssertLinter '', ['', 'cargo check --examples' . g:suffix]
|
||||
|
||||
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'
|
||||
let b: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)',
|
||||
\ ])
|
||||
AssertLinter '', ['cargo --version', 'cargo check --frozen --message-format=json -q --no-default-features']
|
||||
|
||||
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'
|
||||
let b:ale_rust_cargo_default_feature_behavior = 'none'
|
||||
let b: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)',
|
||||
\ ])
|
||||
AssertLinter '', ['cargo --version', 'cargo check --frozen --message-format=json -q --no-default-features --features ' . ale#Escape('foo bar')]
|
||||
|
||||
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"
|
||||
let b:ale_rust_cargo_default_feature_behavior = 'default'
|
||||
let b: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)',
|
||||
\ ])
|
||||
AssertLinter '', ['cargo --version', 'cargo check --frozen --message-format=json -q --features ' . ale#Escape('foo bar baz')]
|
||||
|
||||
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'
|
||||
|
||||
let b: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'
|
||||
let b: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)',
|
||||
\ ])
|
||||
WithChainResults ['cargo 0.22.0 (3423351a5 2017-10-06)']
|
||||
AssertLinter '', ['cargo --version', 'cargo check --frozen --message-format=json -q --all-features']
|
||||
|
||||
Execute(When a crate belongs to a workspace we chdir into the crate.):
|
||||
Execute(When a crate belongs to a workspace we should cd into the crate):
|
||||
call ale#test#SetFilename('cargo_workspace_paths/subpath/test.rs')
|
||||
|
||||
if ale#Has('win32')
|
||||
let test_cdprefix = "C:\\testplugin\\test\\command_callback\\cargo_workspace_paths\\subpath"
|
||||
else
|
||||
let test_cdprefix = "'/testplugin/test/command_callback/cargo_workspace_paths/subpath'"
|
||||
endif
|
||||
|
||||
AssertEqual
|
||||
\ "cd ".test_cdprefix." && cargo build --frozen --message-format=json -q",
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
|
||||
AssertLinter 'cargo', [
|
||||
\ 'cargo --version',
|
||||
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/cargo_workspace_paths/subpath')) . ' && '
|
||||
\ . 'cargo check --frozen --message-format=json -q',
|
||||
\]
|
||||
|
||||
Execute(When a crate belongs to a workspace we chdir into the crate, unless we disabled it):
|
||||
let g:ale_rust_cargo_avoid_whole_workspace = 0
|
||||
call ale#test#SetFilename('cargo_workspace_paths/subpath/test.rs')
|
||||
|
||||
AssertEqual
|
||||
\ "cargo build --frozen --message-format=json -q",
|
||||
\ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
|
||||
AssertLinter 'cargo', [
|
||||
\ 'cargo --version',
|
||||
\ 'cargo check --frozen --message-format=json -q',
|
||||
\]
|
||||
|
||||
@@ -1,74 +1,46 @@
|
||||
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
|
||||
|
||||
call ale#assert#SetUpLinterTest('cpp', 'clangtidy')
|
||||
call ale#test#SetFilename('test.cpp')
|
||||
|
||||
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()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The clangtidy command default should be correct):
|
||||
AssertEqual
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s',
|
||||
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy') . ' -checks=' . ale#Escape('*') . ' %s'
|
||||
|
||||
Execute(You should be able to remove the -checks option for clang-tidy):
|
||||
let b:ale_cpp_clangtidy_checks = []
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' %s',
|
||||
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
|
||||
AssertLinter 'clang-tidy', ale#Escape('clang-tidy') . ' %s'
|
||||
|
||||
Execute(You should be able to set other checks for clang-tidy):
|
||||
let b:ale_cpp_clangtidy_checks = ['-*', 'clang-analyzer-*']
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('-*,clang-analyzer-*') . ' %s',
|
||||
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
|
||||
\ . ' -checks=' . ale#Escape('-*,clang-analyzer-*') . ' %s'
|
||||
|
||||
Execute(You should be able to manually set compiler flags for clang-tidy):
|
||||
let b:ale_cpp_clangtidy_options = '-Wall'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s -- -Wall',
|
||||
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy') . ' -checks=' . ale#Escape('*') . ' %s -- -Wall'
|
||||
\
|
||||
Execute(The build directory should be configurable):
|
||||
let b:ale_c_build_dir = '/foo/bar'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s -p ' . ale#Escape('/foo/bar'),
|
||||
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s -p ' . ale#Escape('/foo/bar')
|
||||
|
||||
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
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s -p ' . ale#Escape('/foo/bar'),
|
||||
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s -p ' . ale#Escape('/foo/bar')
|
||||
|
||||
Execute(The build directory should be ignored for header files):
|
||||
call ale#test#SetFilename('test.h')
|
||||
@@ -76,22 +48,16 @@ Execute(The build directory should be ignored for header files):
|
||||
let b:ale_c_build_dir = '/foo/bar'
|
||||
let b:ale_cpp_clangtidy_options = '-Wall'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s -- -Wall',
|
||||
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
|
||||
\
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy') . ' -checks=' . ale#Escape('*') . ' %s -- -Wall'
|
||||
|
||||
call ale#test#SetFilename('test.hpp')
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('clang-tidy')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s -- -Wall',
|
||||
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
|
||||
AssertLinter 'clang-tidy',
|
||||
\ ale#Escape('clang-tidy') . ' -checks=' . ale#Escape('*') . ' %s -- -Wall'
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
let b:ale_cpp_clangtidy_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar')
|
||||
\ . ' -checks=' . ale#Escape('*') . ' %s',
|
||||
\ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar',
|
||||
\ ale#Escape('foobar') . ' -checks=' . ale#Escape('*') . ' %s'
|
||||
|
||||
@@ -1,39 +1,16 @@
|
||||
Before:
|
||||
Save g:ale_cpp_clang_executable
|
||||
Save g:ale_cpp_clang_options
|
||||
|
||||
unlet! g:ale_cpp_clang_executable
|
||||
unlet! b:ale_cpp_clang_executable
|
||||
unlet! g:ale_cpp_clang_options
|
||||
unlet! b:ale_cpp_clang_options
|
||||
|
||||
runtime ale_linters/cpp/clang.vim
|
||||
|
||||
call ale#assert#SetUpLinterTest('cpp', 'clang')
|
||||
let b:command_tail = ' -S -x c++ -fsyntax-only -iquote'
|
||||
\ . ' ' . ale#Escape(getcwd())
|
||||
\ . ' -std=c++14 -Wall -'
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_cpp_clang_executable
|
||||
unlet! b:ale_cpp_clang_options
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'clang++', ale_linters#cpp#clang#GetExecutable(bufnr(''))
|
||||
AssertLinter 'clang++', ale#Escape('clang++') . b:command_tail
|
||||
|
||||
let b:ale_cpp_clang_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#cpp#clang#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('clang++') . b:command_tail,
|
||||
\ ale_linters#cpp#clang#GetCommand(bufnr(''), [])
|
||||
|
||||
let b:ale_cpp_clang_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . b:command_tail,
|
||||
\ ale_linters#cpp#clang#GetCommand(bufnr(''), [])
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . b:command_tail
|
||||
|
||||
@@ -1,63 +1,35 @@
|
||||
Before:
|
||||
Save g:ale_cpp_clangcheck_executable
|
||||
Save g:ale_cpp_clangcheck_options
|
||||
|
||||
unlet! g:ale_cpp_clangcheck_executable
|
||||
unlet! b:ale_cpp_clangcheck_executable
|
||||
unlet! g:ale_cpp_clangcheck_options
|
||||
unlet! b:ale_cpp_clangcheck_options
|
||||
|
||||
runtime ale_linters/cpp/clangcheck.vim
|
||||
call ale#assert#SetUpLinterTest('cpp', 'clangcheck')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_cpp_clangcheck_executable
|
||||
unlet! b:ale_cpp_clangcheck_options
|
||||
unlet! b:ale_c_build_dir
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'clang-check', ale_linters#cpp#clangcheck#GetExecutable(bufnr(''))
|
||||
|
||||
let b:ale_cpp_clangcheck_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#cpp#clangcheck#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
AssertLinter 'clang-check',
|
||||
\ ale#Escape('clang-check')
|
||||
\ . ' -analyze %s'
|
||||
\ . ' -extra-arg -Xclang -extra-arg -analyzer-output=text',
|
||||
\ ale_linters#cpp#clangcheck#GetCommand(bufnr(''))
|
||||
\ . ' -analyze %s -extra-arg -Xclang -extra-arg -analyzer-output=text'
|
||||
|
||||
let b:ale_cpp_clangcheck_executable = 'foobar'
|
||||
|
||||
" The extra arguments in the command are used to prevent .plist files from
|
||||
" being generated.
|
||||
AssertEqual
|
||||
AssertLinter 'foobar',
|
||||
\ ale#Escape('foobar')
|
||||
\ . ' -analyze %s'
|
||||
\ . ' -extra-arg -Xclang -extra-arg -analyzer-output=text',
|
||||
\ ale_linters#cpp#clangcheck#GetCommand(bufnr(''))
|
||||
\ . ' -analyze %s -extra-arg -Xclang -extra-arg -analyzer-output=text'
|
||||
|
||||
Execute(The options should be configurable):
|
||||
let b:ale_cpp_clangcheck_options = '--something'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'clang-check',
|
||||
\ ale#Escape('clang-check')
|
||||
\ . ' -analyze %s'
|
||||
\ . ' -extra-arg -Xclang -extra-arg -analyzer-output=text'
|
||||
\ . ' --something',
|
||||
\ ale_linters#cpp#clangcheck#GetCommand(bufnr(''))
|
||||
\ . ' --something'
|
||||
|
||||
Execute(The build directory should be used when set):
|
||||
let b:ale_cpp_clangcheck_options = '--something'
|
||||
let b:ale_c_build_dir = '/foo/bar'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'clang-check',
|
||||
\ ale#Escape('clang-check')
|
||||
\ . ' -analyze %s '
|
||||
\ . '--something -p '
|
||||
\ . ale#Escape('/foo/bar'),
|
||||
\ ale_linters#cpp#clangcheck#GetCommand(bufnr(''))
|
||||
\ . ' -analyze %s --something -p ' . ale#Escape('/foo/bar')
|
||||
|
||||
@@ -1,49 +1,22 @@
|
||||
Before:
|
||||
Save g:ale_cpp_cppcheck_executable
|
||||
Save g:ale_cpp_cppcheck_options
|
||||
|
||||
unlet! g:ale_cpp_cppcheck_executable
|
||||
unlet! b:ale_cpp_cppcheck_executable
|
||||
unlet! g:ale_cpp_cppcheck_options
|
||||
unlet! b:ale_cpp_cppcheck_options
|
||||
|
||||
runtime ale_linters/cpp/cppcheck.vim
|
||||
|
||||
call ale#assert#SetUpLinterTest('cpp', 'cppcheck')
|
||||
let b:command_tail = ' -q --language=c++ --enable=style %t'
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_cpp_cppcheck_executable
|
||||
unlet! b:ale_cpp_cppcheck_options
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'cppcheck', ale_linters#cpp#cppcheck#GetExecutable(bufnr(''))
|
||||
AssertLinter 'cppcheck', ale#Escape('cppcheck') . b:command_tail
|
||||
|
||||
let b:ale_cpp_cppcheck_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#cpp#cppcheck#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('cppcheck') . b:command_tail,
|
||||
\ ale_linters#cpp#cppcheck#GetCommand(bufnr(''))
|
||||
|
||||
let b:ale_cpp_cppcheck_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . b:command_tail,
|
||||
\ ale_linters#cpp#cppcheck#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . b:command_tail
|
||||
|
||||
Execute(cppcheck for C++ should detect compile_commands.json files):
|
||||
call ale#test#SetFilename('cppcheck_paths/one/foo.cpp')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'cppcheck',
|
||||
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/cppcheck_paths/one')) . ' && '
|
||||
\ . ale#Escape('cppcheck')
|
||||
\ . ' -q --language=c++ --project=compile_commands.json --enable=style %t',
|
||||
\ ale_linters#cpp#cppcheck#GetCommand(bufnr(''))
|
||||
\ . ' -q --language=c++ --project=compile_commands.json --enable=style %t'
|
||||
|
||||
@@ -2,47 +2,21 @@
|
||||
" Description: A language server for C++
|
||||
|
||||
Before:
|
||||
Save g:ale_cpp_cquery_executable
|
||||
Save g:ale_cpp_cquery_cache_directory
|
||||
|
||||
unlet! g:ale_cpp_cquery_executable
|
||||
unlet! b:ale_cpp_cquery_executable
|
||||
unlet! g:ale_cpp_cquery_cache_directory
|
||||
unlet! b:ale_cpp_cquery_cache_directory
|
||||
|
||||
runtime ale_linters/cpp/cquery.vim
|
||||
call ale#assert#SetUpLinterTest('cpp', 'cquery')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:ale_cpp_cquery_executable
|
||||
unlet! b:ale_cpp_cquery_cache_directory
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'cquery', ale_linters#cpp#cquery#GetExecutable(bufnr(''))
|
||||
AssertLinter 'cquery', ale#Escape('cquery')
|
||||
|
||||
let b:ale_cpp_cquery_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#cpp#cquery#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('cquery'),
|
||||
\ ale_linters#cpp#cquery#GetCommand(bufnr(''))
|
||||
|
||||
let b:ale_cpp_cquery_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar'),
|
||||
\ ale_linters#cpp#cquery#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar')
|
||||
|
||||
Execute(The cache directory should be configurable):
|
||||
AssertEqual
|
||||
\ {'cacheDirectory': expand('$HOME/.cache/cquery')},
|
||||
\ ale_linters#cpp#cquery#GetInitializationOptions(bufnr(''))
|
||||
AssertLSPOptions {'cacheDirectory': expand('$HOME/.cache/cquery')}
|
||||
|
||||
let b:ale_cpp_cquery_cache_directory = '/foo/bar'
|
||||
|
||||
AssertEqual
|
||||
\ {'cacheDirectory': '/foo/bar'},
|
||||
\ ale_linters#cpp#cquery#GetInitializationOptions(bufnr(''))
|
||||
AssertLSPOptions {'cacheDirectory': '/foo/bar'}
|
||||
|
||||
@@ -1,51 +1,26 @@
|
||||
Before:
|
||||
Save g:ale_cpp_flawfinder_executable
|
||||
Save g:ale_cpp_flawfinder_options
|
||||
Save g:ale_cpp_flawfinder_minlevel
|
||||
|
||||
unlet! g:ale_cpp_flawfinder_executable
|
||||
unlet! b:ale_cpp_flawfinder_executable
|
||||
unlet! g:ale_cpp_flawfinder_options
|
||||
unlet! b:ale_cpp_flawfinder_options
|
||||
unlet! g:ale_cpp_flawfinder_minlevel
|
||||
unlet! b:ale_cpp_flawfinder_minlevel
|
||||
|
||||
runtime ale_linters/cpp/flawfinder.vim
|
||||
call ale#assert#SetUpLinterTest('cpp', 'flawfinder')
|
||||
|
||||
After:
|
||||
unlet! b:ale_cpp_flawfinder_executable
|
||||
unlet! b:ale_cpp_flawfinder_options
|
||||
unlet! b:ale_cpp_flawfinder_minlevel
|
||||
|
||||
Restore
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The flawfinder command should be correct):
|
||||
AssertEqual
|
||||
\ ale#Escape('flawfinder')
|
||||
\ . ' -CDQS --minlevel=1 %t',
|
||||
\ ale_linters#cpp#flawfinder#GetCommand(bufnr(''))
|
||||
AssertLinter 'flawfinder',
|
||||
\ ale#Escape('flawfinder') . ' -CDQS --minlevel=1 %t'
|
||||
|
||||
Execute(The minlevel of flawfinder should be configurable):
|
||||
let b:ale_cpp_flawfinder_minlevel = 8
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('flawfinder')
|
||||
\ . ' -CDQS --minlevel=8 %t',
|
||||
\ ale_linters#cpp#flawfinder#GetCommand(bufnr(''))
|
||||
AssertLinter 'flawfinder',
|
||||
\ ale#Escape('flawfinder') . ' -CDQS --minlevel=8 %t'
|
||||
|
||||
Execute(Additional flawfinder options should be configurable):
|
||||
let b:ale_cpp_flawfinder_options = ' --foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('flawfinder')
|
||||
\ . ' -CDQS --foobar --minlevel=1 %t',
|
||||
\ ale_linters#cpp#flawfinder#GetCommand(bufnr(''))
|
||||
AssertLinter 'flawfinder',
|
||||
\ ale#Escape('flawfinder') . ' -CDQS --foobar --minlevel=1 %t'
|
||||
|
||||
Execute(The flawfinder exectable should be configurable):
|
||||
let b:ale_cpp_flawfinder_executable = 'foo/bar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foo/bar')
|
||||
\ . ' -CDQS --minlevel=1 %t',
|
||||
\ ale_linters#cpp#flawfinder#GetCommand(bufnr(''))
|
||||
AssertLinter 'foo/bar', ale#Escape('foo/bar') . ' -CDQS --minlevel=1 %t'
|
||||
|
||||
@@ -1,39 +1,16 @@
|
||||
Before:
|
||||
Save g:ale_cpp_gcc_executable
|
||||
Save g:ale_cpp_gcc_options
|
||||
|
||||
unlet! g:ale_cpp_gcc_executable
|
||||
unlet! b:ale_cpp_gcc_executable
|
||||
unlet! g:ale_cpp_gcc_options
|
||||
unlet! b:ale_cpp_gcc_options
|
||||
|
||||
runtime ale_linters/cpp/gcc.vim
|
||||
|
||||
call ale#assert#SetUpLinterTest('cpp', 'gcc')
|
||||
let b:command_tail = ' -S -x c++ -fsyntax-only -iquote'
|
||||
\ . ' ' . ale#Escape(getcwd())
|
||||
\ . ' -std=c++14 -Wall -'
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_cpp_gcc_executable
|
||||
unlet! b:ale_cpp_gcc_options
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'gcc', ale_linters#cpp#gcc#GetExecutable(bufnr(''))
|
||||
AssertLinter 'gcc', ale#Escape('gcc') . b:command_tail
|
||||
|
||||
let b:ale_cpp_gcc_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#cpp#gcc#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('gcc') . b:command_tail,
|
||||
\ ale_linters#cpp#gcc#GetCommand(bufnr(''), [])
|
||||
|
||||
let b:ale_cpp_gcc_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . b:command_tail,
|
||||
\ ale_linters#cpp#gcc#GetCommand(bufnr(''), [])
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . b:command_tail
|
||||
|
||||
@@ -1,42 +1,17 @@
|
||||
Before:
|
||||
Save g:ale_cpp_cpplint_executable
|
||||
Save g:ale_cpp_cpplint_options
|
||||
|
||||
unlet! g:ale_cpp_cpplint_executable
|
||||
unlet! b:ale_cpp_cpplint_executable
|
||||
unlet! g:ale_cpp_cpplint_options
|
||||
unlet! b:ale_cpp_cpplint_options
|
||||
|
||||
runtime ale_linters/cpp/cpplint.vim
|
||||
call ale#assert#SetUpLinterTest('cpp', 'cpplint')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_cpp_cpplint_executable
|
||||
unlet! b:ale_cpp_cpplint_options
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'cpplint', ale_linters#cpp#cpplint#GetExecutable(bufnr(''))
|
||||
AssertLinter 'cpplint', ale#Escape('cpplint') . ' %s'
|
||||
|
||||
let b:ale_cpp_cpplint_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#cpp#cpplint#GetExecutable(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' %s'
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('cpplint') . ' %s',
|
||||
\ ale_linters#cpp#cpplint#GetCommand(bufnr(''))
|
||||
|
||||
let b:ale_cpp_cpplint_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' %s',
|
||||
\ ale_linters#cpp#cpplint#GetCommand(bufnr(''))
|
||||
\
|
||||
Execute(The options should be configurable):
|
||||
let b:ale_cpp_cpplint_options = '--something'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('cpplint') . ' --something %s',
|
||||
\ ale_linters#cpp#cpplint#GetCommand(bufnr(''))
|
||||
AssertLinter 'cpplint', ale#Escape('cpplint') . ' --something %s'
|
||||
|
||||
@@ -1,34 +1,13 @@
|
||||
Before:
|
||||
Save g:ale_cs_mcs_options
|
||||
|
||||
unlet! g:ale_cs_mcs_options
|
||||
|
||||
runtime ale_linters/cs/mcs.vim
|
||||
|
||||
let b:command_tail = ' -unsafe --parse'
|
||||
call ale#assert#SetUpLinterTest('cs', 'mcs')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_cs_mcs_options
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Check for proper default command):
|
||||
|
||||
let b:command = ale_linters#cs#mcs#GetCommand(bufnr(''))
|
||||
let b:command = substitute(b:command,'\s\+',' ','g')
|
||||
|
||||
AssertEqual
|
||||
\ b:command,
|
||||
\ 'mcs -unsafe --parse %t'
|
||||
Execute(The default command should be correct):
|
||||
AssertLinter 'mcs', 'mcs -unsafe --parse %t'
|
||||
|
||||
Execute(The options should be be used in the command):
|
||||
|
||||
let b:ale_cs_mcs_options = '-pkg:dotnet'
|
||||
let b:command = ale_linters#cs#mcs#GetCommand(bufnr(''))
|
||||
let b:command = substitute(b:command,'\s\+',' ','g')
|
||||
|
||||
AssertEqual
|
||||
\ b:command,
|
||||
\ 'mcs' . b:command_tail . ' ' . b:ale_cs_mcs_options . ' %t',
|
||||
|
||||
AssertLinter 'mcs', 'mcs -unsafe --parse -pkg:dotnet %t'
|
||||
|
||||
@@ -1,93 +1,47 @@
|
||||
Before:
|
||||
Save g:ale_cs_mcsc_options
|
||||
Save g:ale_cs_mcsc_source
|
||||
Save g:ale_cs_mcsc_assembly_path
|
||||
Save g:ale_cs_mcsc_assemblies
|
||||
Save g:ale_buffer_info
|
||||
|
||||
let g:ale_buffer_info = {bufnr(''): {'temporary_file_list': []}}
|
||||
|
||||
unlet! g:ale_cs_mcsc_options
|
||||
unlet! g:ale_cs_mcsc_source
|
||||
unlet! g:ale_cs_mcsc_assembly_path
|
||||
unlet! g:ale_cs_mcsc_assemblies
|
||||
|
||||
let g:prefix = ' -out:TEMP -t:module -recurse:' . ale#Escape('*.cs')
|
||||
|
||||
function! GetCommand()
|
||||
let l:command = ale_linters#cs#mcsc#GetCommand(bufnr(''))
|
||||
let l:command = join(split(l:command))
|
||||
|
||||
return substitute(l:command, ':[^ ]\+ -t:module', ':TEMP -t:module', '')
|
||||
endfunction
|
||||
|
||||
runtime ale_linters/cs/mcsc.vim
|
||||
call ale#assert#SetUpLinterTest('cs', 'mcsc')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:ale_cs_mcsc_options
|
||||
unlet! g:ale_cs_mcsc_source
|
||||
unlet! g:ale_cs_mcsc_assembly_path
|
||||
unlet! g:ale_cs_mcsc_assemblies
|
||||
unlet! g:ale_prefix
|
||||
|
||||
delfunction GetCommand
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The mcsc linter should return the correct default command):
|
||||
AssertEqual
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . 'mcs -unsafe' . g:prefix,
|
||||
\ GetCommand()
|
||||
AssertLinter 'mcs', 'cd ' . ale#Escape(g:dir) . ' && '
|
||||
\ . 'mcs -unsafe -out:TEMP -t:module -recurse:' . ale#Escape('*.cs')
|
||||
|
||||
Execute(The options should be be used in the command):
|
||||
let g:ale_cs_mcsc_options = '-pkg:dotnet'
|
||||
|
||||
AssertEqual
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . 'mcs -unsafe -pkg:dotnet' . g:prefix,
|
||||
\ GetCommand()
|
||||
AssertLinter 'mcs', 'cd ' . ale#Escape(g:dir) . ' && '
|
||||
\ . 'mcs -unsafe -pkg:dotnet -out:TEMP -t:module -recurse:' . ale#Escape('*.cs')
|
||||
|
||||
Execute(The souce path should be be used in the command):
|
||||
let g:ale_cs_mcsc_source = '../foo/bar'
|
||||
|
||||
AssertEqual
|
||||
\ 'cd ' . ale#Escape('../foo/bar') . ' && '
|
||||
\ . 'mcs -unsafe' . g:prefix,
|
||||
\ GetCommand()
|
||||
AssertLinter 'mcs', 'cd ' . ale#Escape('../foo/bar') . ' && '
|
||||
\ . 'mcs -unsafe -out:TEMP -t:module -recurse:' . ale#Escape('*.cs')
|
||||
|
||||
Execute(The list of search pathes for assemblies should be be used in the command if not empty):
|
||||
let g:ale_cs_mcsc_assembly_path = ['/usr/lib/mono', '../foo/bar']
|
||||
|
||||
AssertEqual
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . 'mcs -unsafe'
|
||||
\ . ' -lib:' . ale#Escape('/usr/lib/mono') . ',' . ale#Escape('../foo/bar')
|
||||
\ . g:prefix,
|
||||
\ GetCommand()
|
||||
AssertLinter 'mcs', 'cd ' . ale#Escape(g:dir) . ' && '
|
||||
\ . 'mcs -unsafe'
|
||||
\ . ' -lib:' . ale#Escape('/usr/lib/mono') . ',' . ale#Escape('../foo/bar')
|
||||
\ . ' -out:TEMP -t:module -recurse:' . ale#Escape('*.cs')
|
||||
|
||||
let g:ale_cs_mcsc_assembly_path = []
|
||||
|
||||
AssertEqual
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . 'mcs -unsafe' . g:prefix,
|
||||
\ GetCommand()
|
||||
AssertLinter 'mcs', 'cd ' . ale#Escape(g:dir) . ' && '
|
||||
\ . 'mcs -unsafe -out:TEMP -t:module -recurse:' . ale#Escape('*.cs')
|
||||
|
||||
Execute(The list of assemblies should be be used in the command if not empty):
|
||||
let g:ale_cs_mcsc_assemblies = ['foo.dll', 'bar.dll']
|
||||
|
||||
AssertEqual
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . 'mcs -unsafe'
|
||||
\ . ' -r:' . ale#Escape('foo.dll') . ',' . ale#Escape('bar.dll')
|
||||
\ . g:prefix,
|
||||
\ GetCommand()
|
||||
AssertLinter 'mcs', 'cd ' . ale#Escape(g:dir) . ' && '
|
||||
\ . 'mcs -unsafe'
|
||||
\ . ' -r:' . ale#Escape('foo.dll') . ',' . ale#Escape('bar.dll')
|
||||
\ . ' -out:TEMP -t:module -recurse:' . ale#Escape('*.cs')
|
||||
|
||||
let g:ale_cs_mcsc_assemblies = []
|
||||
|
||||
AssertEqual
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . 'mcs -unsafe' . g:prefix,
|
||||
\ GetCommand()
|
||||
AssertLinter 'mcs', 'cd ' . ale#Escape(g:dir) . ' && '
|
||||
\ . 'mcs -unsafe -out:TEMP -t:module -recurse:' . ale#Escape('*.cs')
|
||||
|
||||
@@ -1,25 +1,18 @@
|
||||
Before:
|
||||
runtime ale_linters/ruby/rubocop.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/')
|
||||
call ale#assert#SetUpLinterTest('cucumber', 'cucumber')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Should require the nearest features dir, if one is found):
|
||||
call ale#test#SetFilename('cucumber_fixtures/features/cuke.feature')
|
||||
call ale#test#SetFilename('../cucumber_fixtures/features/cuke.feature')
|
||||
|
||||
AssertEqual
|
||||
\ 'cucumber --dry-run --quiet --strict --format=json '
|
||||
\ . '-r ' . ale#Escape(ale#path#Simplify(g:dir . '/cucumber_fixtures/features/')) . ' %t',
|
||||
\ ale_linters#cucumber#cucumber#GetCommand(bufnr(''))
|
||||
AssertLinter 'cucumber',
|
||||
\ 'cucumber --dry-run --quiet --strict --format=json '
|
||||
\ . '-r ' . ale#Escape(ale#path#Simplify(g:dir . '/../cucumber_fixtures/features/')) . ' %t'
|
||||
|
||||
Execute(Should require nothing if no features dir is found):
|
||||
call ale#test#SetFilename('something/without/a/features/dir')
|
||||
|
||||
AssertEqual
|
||||
\ 'cucumber --dry-run --quiet --strict --format=json '
|
||||
\ . ' %t',
|
||||
\ ale_linters#cucumber#cucumber#GetCommand(bufnr(''))
|
||||
AssertLinter 'cucumber',
|
||||
\ 'cucumber --dry-run --quiet --strict --format=json %t'
|
||||
|
||||
@@ -1,36 +1,14 @@
|
||||
Before:
|
||||
Save g:ale_cuda_nvcc_executable
|
||||
Save g:ale_cuda_nvcc_options
|
||||
|
||||
unlet! g:ale_cuda_nvcc_executable
|
||||
unlet! b:ale_cuda_nvcc_executable
|
||||
unlet! g:ale_cuda_nvcc_options
|
||||
unlet! b:ale_cuda_nvcc_options
|
||||
|
||||
runtime ale_linters/cuda/nvcc.vim
|
||||
call ale#assert#SetUpLinterTest('cuda', 'nvcc')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:ale_cuda_nvcc_executable
|
||||
unlet! b:ale_cuda_nvcc_options
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'nvcc', ale_linters#cuda#nvcc#GetExecutable(bufnr(''))
|
||||
AssertLinter 'nvcc',
|
||||
\ ale#Escape('nvcc') . ' -cuda -std=c++11 %s -o ' . g:ale#util#nul_file
|
||||
|
||||
let b:ale_cuda_nvcc_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#cuda#nvcc#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('nvcc') . ' -cuda -std=c++11 %s'
|
||||
\ . ' -o ' . g:ale#util#nul_file,
|
||||
\ ale_linters#cuda#nvcc#GetCommand(bufnr(''))
|
||||
|
||||
let b:ale_cuda_nvcc_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' -cuda -std=c++11 %s'
|
||||
\ . ' -o ' . g:ale#util#nul_file,
|
||||
\ ale_linters#cuda#nvcc#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar',
|
||||
\ ale#Escape('foobar') . ' -cuda -std=c++11 %s -o ' . g:ale#util#nul_file
|
||||
|
||||
@@ -1,40 +1,20 @@
|
||||
Before:
|
||||
Save g:ale_dart_dartanalyzer_executable
|
||||
unlet! g:ale_dart_dartanalyzer_executable
|
||||
|
||||
runtime ale_linters/dart/dartanalyzer.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('dart', 'dartanalyzer')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command and executable should be correct):
|
||||
AssertEqual
|
||||
\ 'dartanalyzer',
|
||||
\ ale_linters#dart#dartanalyzer#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('dartanalyzer') . ' %s',
|
||||
\ ale_linters#dart#dartanalyzer#GetCommand(bufnr(''))
|
||||
AssertLinter 'dartanalyzer', ale#Escape('dartanalyzer') . ' %s'
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
let g:ale_dart_dartanalyzer_executable = '/usr/lib/dart/bin/dartanalyzer'
|
||||
let g:ale_dart_dartanalyzer_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ '/usr/lib/dart/bin/dartanalyzer',
|
||||
\ ale_linters#dart#dartanalyzer#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('/usr/lib/dart/bin/dartanalyzer') . ' %s',
|
||||
\ ale_linters#dart#dartanalyzer#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' %s'
|
||||
|
||||
Execute(The .packages file should be set if detected):
|
||||
call ale#test#SetFilename('dart_paths/foo')
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('dartanalyzer')
|
||||
AssertLinter 'dartanalyzer', ale#Escape('dartanalyzer')
|
||||
\ . ' --packages ' . ale#Escape(ale#path#Simplify(g:dir . '/dart_paths/.packages'))
|
||||
\ . ' %s',
|
||||
\ ale_linters#dart#dartanalyzer#GetCommand(bufnr(''))
|
||||
\ . ' %s'
|
||||
|
||||
@@ -1,37 +1,19 @@
|
||||
Before:
|
||||
runtime ale_linters/elixir/mix.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
let g:project_root = ale#path#Simplify(g:dir . '/mix_paths/wrapped_project')
|
||||
call ale#assert#SetUpLinterTest('elixir', 'mix')
|
||||
|
||||
let g:env_prefix = has('win32')
|
||||
\ ? 'set MIX_BUILD_PATH=TEMP && '
|
||||
\ : 'MIX_BUILD_PATH=TEMP '
|
||||
|
||||
|
||||
function! GetCommand(buffer) abort
|
||||
let l:command = ale_linters#elixir#mix#GetCommand(a:buffer)
|
||||
|
||||
return substitute(l:command, 'MIX_BUILD_PATH=[^ ]\+', 'MIX_BUILD_PATH=TEMP', '')
|
||||
endfunction
|
||||
\ ? 'set MIX_BUILD_PATH=' . ale#Escape('TEMP_DIR') . ' && '
|
||||
\ : 'MIX_BUILD_PATH=' . ale#Escape('TEMP_DIR') . ' '
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! g:env_prefix
|
||||
unlet! g:project_root
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
|
||||
delfunction GetCommand
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default mix command should be correct):
|
||||
call ale#test#SetFilename('mix_paths/wrapped_project/lib/app.ex')
|
||||
|
||||
AssertEqual
|
||||
\ GetCommand(bufnr('')),
|
||||
\ ale#path#CdString(g:project_root)
|
||||
AssertLinter 'mix',
|
||||
\ ale#path#CdString(ale#path#Simplify(g:dir . '/mix_paths/wrapped_project'))
|
||||
\ . g:env_prefix
|
||||
\ . 'mix compile %s'
|
||||
|
||||
@@ -1,21 +1,16 @@
|
||||
Before:
|
||||
runtime ale_linters/eruby/erb.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('eruby', 'erb')
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Executable should not contain any filter code by default):
|
||||
call ale#test#SetFilename('../ruby_fixtures/not_a_rails_app/file.rb')
|
||||
|
||||
AssertEqual
|
||||
\ 'erb -P -T - -x %t | ruby -c',
|
||||
\ ale_linters#eruby#erb#GetCommand(bufnr(''))
|
||||
AssertLinter 'erb', 'erb -P -T - -x %t | ruby -c'
|
||||
|
||||
Execute(Executable should filter invalid eRuby when inside a Rails project):
|
||||
call ale#test#SetFilename('../ruby_fixtures/valid_rails_app/app/views/my_great_view.html.erb')
|
||||
|
||||
AssertEqual
|
||||
\ 'ruby -r erb -e ' . ale#Escape('puts ERB.new($stdin.read.gsub(%{<%=},%{<%}), nil, %{-}).src') . '< %t | ruby -c',
|
||||
\ ale_linters#eruby#erb#GetCommand(bufnr(''))
|
||||
AssertLinter 'erb',
|
||||
\ 'ruby -r erb -e ' . ale#Escape('puts ERB.new($stdin.read.gsub(%{<%=},%{<%}), nil, %{-}).src') . '< %t | ruby -c'
|
||||
|
||||
@@ -1,66 +1,45 @@
|
||||
Before:
|
||||
Save g:ale_erlang_syntaxerl_executable
|
||||
|
||||
unlet! g:ale_erlang_syntaxerl_executable
|
||||
unlet! b:ale_erlang_syntaxerl_executable
|
||||
|
||||
runtime ale_linters/erlang/syntaxerl.vim
|
||||
call ale#assert#SetUpLinterTest('erlang', 'syntaxerl')
|
||||
|
||||
After:
|
||||
Restore
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
call ale#linter#Reset()
|
||||
Execute (The default commands should be correct):
|
||||
AssertLinter 'syntaxerl', [
|
||||
\ ale#Escape('syntaxerl') . ' -h',
|
||||
\ ale#Escape('syntaxerl') . ' %t',
|
||||
\]
|
||||
|
||||
Execute (The executable should be correct):
|
||||
AssertEqual 'syntaxerl', ale_linters#erlang#syntaxerl#GetExecutable(bufnr(''))
|
||||
Execute (The executable should be configurable):
|
||||
let b:ale_erlang_syntaxerl_executable = 'foobar'
|
||||
|
||||
let g:ale_erlang_syntaxerl_executable = '/some/other/syntaxerl'
|
||||
AssertEqual '/some/other/syntaxerl', ale_linters#erlang#syntaxerl#GetExecutable(bufnr(''))
|
||||
|
||||
let b:ale_erlang_syntaxerl_executable = '/yet/another/syntaxerl'
|
||||
AssertEqual '/yet/another/syntaxerl', ale_linters#erlang#syntaxerl#GetExecutable(bufnr(''))
|
||||
|
||||
|
||||
Execute (The executable should be presented in the feature check command):
|
||||
let g:ale_erlang_syntaxerl_executable = '/some/other/syntaxerl'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('/some/other/syntaxerl') . ' -h',
|
||||
\ ale_linters#erlang#syntaxerl#FeatureCheck(bufnr(''))
|
||||
|
||||
let b:ale_erlang_syntaxerl_executable = '/yet/another/syntaxerl'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('/yet/another/syntaxerl') . ' -h',
|
||||
\ ale_linters#erlang#syntaxerl#FeatureCheck(bufnr(''))
|
||||
|
||||
Execute (The executable should be presented in the command):
|
||||
let g:ale_erlang_syntaxerl_executable = '/some/other/syntaxerl'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('/some/other/syntaxerl') . ' %t',
|
||||
\ ale_linters#erlang#syntaxerl#GetCommand(bufnr(''), [])
|
||||
|
||||
let b:ale_erlang_syntaxerl_executable = '/yet/another/syntaxerl'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('/yet/another/syntaxerl') . ' %t',
|
||||
\ ale_linters#erlang#syntaxerl#GetCommand(bufnr(''), [])
|
||||
AssertLinter 'foobar', [
|
||||
\ ale#Escape('foobar') . ' -h',
|
||||
\ ale#Escape('foobar') . ' %t',
|
||||
\]
|
||||
|
||||
Execute (The -b option should be used when available):
|
||||
AssertEqual ale#Escape('syntaxerl') . ' %t', ale_linters#erlang#syntaxerl#GetCommand(bufnr(''), [
|
||||
\ 'Syntax checker for Erlang (0.14.0)',
|
||||
\ 'Usage: syntaxerl [-d | --debug] <FILENAME>',
|
||||
\ ' syntaxerl <-h | --help>',
|
||||
\ ' -d, --debug Enable debug output',
|
||||
\ ' -h, --help Show this message',
|
||||
\ ])
|
||||
WithChainResults [
|
||||
\ 'Syntax checker for Erlang (0.14.0)',
|
||||
\ 'Usage: syntaxerl [-d | --debug] <FILENAME>',
|
||||
\ ' syntaxerl <-h | --help>',
|
||||
\ ' -d, --debug Enable debug output',
|
||||
\ ' -h, --help Show this message',
|
||||
\]
|
||||
AssertLinter 'syntaxerl', [
|
||||
\ ale#Escape('syntaxerl') . ' -h',
|
||||
\ ale#Escape('syntaxerl') . ' %t',
|
||||
\]
|
||||
|
||||
AssertEqual ale#Escape('syntaxerl') . ' -b %s %t', ale_linters#erlang#syntaxerl#GetCommand(bufnr(''), [
|
||||
\ 'Syntax checker for Erlang (0.14.0)',
|
||||
\ 'Usage: syntaxerl [-b | --base <FILENAME>] [-d | --debug] <FILENAME>',
|
||||
\ ' syntaxerl <-h | --help>',
|
||||
\ ' -b, --base Set original filename',
|
||||
\ ' -d, --debug Enable debug output',
|
||||
\ ' -h, --help Show this message',
|
||||
\ ])
|
||||
WithChainResults [
|
||||
\ 'Syntax checker for Erlang (0.14.0)',
|
||||
\ 'Usage: syntaxerl [-b | --base <FILENAME>] [-d | --debug] <FILENAME>',
|
||||
\ ' syntaxerl <-h | --help>',
|
||||
\ ' -b, --base Set original filename',
|
||||
\ ' -d, --debug Enable debug output',
|
||||
\ ' -h, --help Show this message',
|
||||
\]
|
||||
AssertLinter 'syntaxerl', [
|
||||
\ ale#Escape('syntaxerl') . ' -h',
|
||||
\ ale#Escape('syntaxerl') . ' -b %s %t',
|
||||
\]
|
||||
|
||||
@@ -1,31 +1,32 @@
|
||||
Before:
|
||||
runtime ale_linters/eruby/erubi.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('eruby', 'erubi')
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Executable should not contain any filter code by default):
|
||||
call ale#test#SetFilename('../ruby_fixtures/not_a_rails_app/file.rb')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'ruby', [
|
||||
\ 'ruby -r erubi/capture_end -e ' . ale#Escape('""'),
|
||||
\ 'ruby -r erubi/capture_end -e ' . ale#Escape('puts Erubi::CaptureEndEngine.new($stdin.read).src') . '< %t | ruby -c',
|
||||
\ ale_linters#eruby#erubi#GetCommand(bufnr(''), [])
|
||||
\]
|
||||
|
||||
Execute(Executable should filter invalid eRuby when inside a Rails project):
|
||||
call ale#test#SetFilename('../ruby_fixtures/valid_rails_app/app/views/my_great_view.html.erb')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'ruby', [
|
||||
\ 'ruby -r erubi/capture_end -e ' . ale#Escape('""'),
|
||||
\ 'ruby -r erubi/capture_end -e ' . ale#Escape('puts Erubi::CaptureEndEngine.new($stdin.read.gsub(%{<%=},%{<%}), nil, %{-}).src') . '< %t | ruby -c',
|
||||
\ ale_linters#eruby#erubi#GetCommand(bufnr(''), [])
|
||||
|
||||
Execute(Command should be blank if the first command in the chain return output):
|
||||
let output_lines = [
|
||||
\ "/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- erubi/capture_end (LoadError)",
|
||||
\ " from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'",
|
||||
\]
|
||||
|
||||
AssertEqual
|
||||
Execute(Command should be blank if the first command in the chain returns output):
|
||||
WithChainResults [
|
||||
\ "/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- erubi/capture_end (LoadError)",
|
||||
\ " from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'",
|
||||
\]
|
||||
|
||||
AssertLinter 'ruby', [
|
||||
\ 'ruby -r erubi/capture_end -e ' . ale#Escape('""'),
|
||||
\ '',
|
||||
\ ale_linters#eruby#erubi#GetCommand(bufnr(''), output_lines)
|
||||
\]
|
||||
|
||||
@@ -1,21 +1,16 @@
|
||||
Before:
|
||||
runtime ale_linters/eruby/erubis.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('eruby', 'erubis')
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Executable should not contain any filter code by default):
|
||||
call ale#test#SetFilename('../ruby_fixtures/not_a_rails_app/file.rb')
|
||||
|
||||
AssertEqual
|
||||
\ 'erubis -x %t | ruby -c',
|
||||
\ ale_linters#eruby#erubis#GetCommand(bufnr(''))
|
||||
AssertLinter 'erubis', 'erubis -x %t | ruby -c'
|
||||
|
||||
Execute(Executable should filter invalid eRuby when inside a Rails project):
|
||||
call ale#test#SetFilename('../ruby_fixtures/valid_rails_app/app/views/my_great_view.html.erb')
|
||||
|
||||
AssertEqual
|
||||
\ 'ruby -r erubis -e ' . ale#Escape('puts Erubis::Eruby.new($stdin.read.gsub(%{<%=},%{<%})).src') . '< %t | ruby -c',
|
||||
\ ale_linters#eruby#erubis#GetCommand(bufnr(''))
|
||||
AssertLinter 'erubis',
|
||||
\ 'ruby -r erubis -e ' . ale#Escape('puts Erubis::Eruby.new($stdin.read.gsub(%{<%=},%{<%})).src') . '< %t | ruby -c'
|
||||
|
||||
@@ -1,91 +1,75 @@
|
||||
Before:
|
||||
Save g:ale_python_flake8_executable
|
||||
Save g:ale_python_flake8_options
|
||||
Save g:ale_python_flake8_use_global
|
||||
Save g:ale_python_flake8_change_directory
|
||||
|
||||
unlet! g:ale_python_flake8_executable
|
||||
unlet! g:ale_python_flake8_args
|
||||
unlet! g:ale_python_flake8_options
|
||||
unlet! g:ale_python_flake8_use_global
|
||||
unlet! g:ale_python_flake8_change_directory
|
||||
|
||||
call ale#assert#SetUpLinterTest('python', 'flake8')
|
||||
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
|
||||
|
||||
runtime ale_linters/python/flake8.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
WithChainResults ['3.0.0']
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! g:ale_python_flake8_args
|
||||
|
||||
unlet! b:bin_dir
|
||||
unlet! b:executable
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#semver#ResetVersionCache()
|
||||
unlet! b:bin_dir
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The flake8 callbacks should return the correct default values):
|
||||
AssertEqual
|
||||
\ 'flake8',
|
||||
\ ale_linters#python#flake8#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'flake8', [
|
||||
\ ale#Escape('flake8') . ' --version',
|
||||
\ ale_linters#python#flake8#VersionCheck(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('flake8') . ' --format=default --stdin-display-name %s -',
|
||||
\ ale_linters#python#flake8#GetCommand(bufnr(''), ['3.0.0'])
|
||||
\]
|
||||
|
||||
" The version check should be cached.
|
||||
WithChainResults []
|
||||
AssertLinter 'flake8', [
|
||||
\ '',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('flake8') . ' --format=default --stdin-display-name %s -',
|
||||
\]
|
||||
|
||||
" Try with older versions.
|
||||
call ale#semver#ResetVersionCache()
|
||||
AssertEqual
|
||||
WithChainResults ['2.9.9']
|
||||
AssertLinter 'flake8', [
|
||||
\ ale#Escape('flake8') . ' --version',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('flake8') . ' --format=default -',
|
||||
\ ale_linters#python#flake8#GetCommand(bufnr(''), ['2.9.9'])
|
||||
\]
|
||||
|
||||
Execute(The option for disabling changing directories should work):
|
||||
let g:ale_python_flake8_change_directory = 0
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'flake8', [
|
||||
\ ale#Escape('flake8') . ' --version',
|
||||
\ ale#Escape('flake8') . ' --format=default --stdin-display-name %s -',
|
||||
\ ale_linters#python#flake8#GetCommand(bufnr(''), ['3.0.0'])
|
||||
\]
|
||||
|
||||
Execute(The flake8 command callback should let you set options):
|
||||
let g:ale_python_flake8_options = '--some-option'
|
||||
|
||||
AssertEqual
|
||||
WithChainResults ['3.0.4']
|
||||
AssertLinter 'flake8', [
|
||||
\ ale#Escape('flake8') . ' --version',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('flake8')
|
||||
\ . ' --some-option --format=default'
|
||||
\ . ' --stdin-display-name %s -',
|
||||
\ ale_linters#python#flake8#GetCommand(bufnr(''), ['3.0.4'])
|
||||
\ . ale#Escape('flake8') . ' --some-option'
|
||||
\ . ' --format=default --stdin-display-name %s -',
|
||||
\]
|
||||
|
||||
call ale#semver#ResetVersionCache()
|
||||
|
||||
AssertEqual
|
||||
WithChainResults ['2.9.9']
|
||||
AssertLinter 'flake8', [
|
||||
\ ale#Escape('flake8') . ' --version',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('flake8')
|
||||
\ . ' --some-option --format=default -',
|
||||
\ ale_linters#python#flake8#GetCommand(bufnr(''), ['2.9.9'])
|
||||
\ . ale#Escape('flake8') . ' --some-option --format=default -',
|
||||
\]
|
||||
|
||||
Execute(You should be able to set a custom executable and it should be escaped):
|
||||
let g:ale_python_flake8_executable = 'executable with spaces'
|
||||
|
||||
AssertEqual
|
||||
\ 'executable with spaces',
|
||||
\ ale_linters#python#flake8#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'executable with spaces', [
|
||||
\ ale#Escape('executable with spaces') . ' --version',
|
||||
\ ale_linters#python#flake8#VersionCheck(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('executable with spaces')
|
||||
\ . ' --format=default'
|
||||
\ . ' --stdin-display-name %s -',
|
||||
\ ale_linters#python#flake8#GetCommand(bufnr(''), ['3.0.0'])
|
||||
\]
|
||||
|
||||
Execute(The flake8 callbacks should detect virtualenv directories):
|
||||
silent execute 'file ' . fnameescape(g:dir . '/python_paths/with_virtualenv/subdir/foo/bar.py')
|
||||
@@ -94,17 +78,13 @@ Execute(The flake8 callbacks should detect virtualenv directories):
|
||||
\ g:dir . '/python_paths/with_virtualenv/env/' . b:bin_dir . '/flake8'
|
||||
\)
|
||||
|
||||
AssertEqual
|
||||
\ b:executable,
|
||||
\ ale_linters#python#flake8#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter b:executable, [
|
||||
\ ale#Escape(b:executable) . ' --version',
|
||||
\ ale_linters#python#flake8#VersionCheck(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape(b:executable)
|
||||
\ . ' --format=default --stdin-display-name %s -',
|
||||
\ ale_linters#python#flake8#GetCommand(bufnr(''), ['3.0.0'])
|
||||
\ . ale#Escape(b:executable)
|
||||
\ . ' --format=default'
|
||||
\ . ' --stdin-display-name %s -',
|
||||
\]
|
||||
|
||||
Execute(The FindProjectRoot should detect the project root directory for namespace package via Manifest.in):
|
||||
silent execute 'file ' . fnameescape(g:dir . '/python_paths/namespace_package_manifest/namespace/foo/bar.py')
|
||||
@@ -148,37 +128,32 @@ Execute(Using `python -m flake8` should be supported for running flake8):
|
||||
let g:ale_python_flake8_executable = 'python'
|
||||
let g:ale_python_flake8_options = '-m flake8 --some-option'
|
||||
|
||||
AssertEqual
|
||||
\ 'python',
|
||||
\ ale_linters#python#flake8#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
WithChainResults ['2.9.9']
|
||||
AssertLinter 'python', [
|
||||
\ ale#Escape('python') . ' -m flake8 --version',
|
||||
\ ale_linters#python#flake8#VersionCheck(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('python') . ' -m flake8 --some-option --format=default -',
|
||||
\ ale_linters#python#flake8#GetCommand(bufnr(''), ['2.9.9'])
|
||||
\ . ale#Escape('python')
|
||||
\ . ' -m flake8 --some-option --format=default -'
|
||||
\]
|
||||
|
||||
call ale#semver#ResetVersionCache()
|
||||
|
||||
" Leading spaces shouldn't matter
|
||||
let g:ale_python_flake8_options = ' -m flake8 --some-option'
|
||||
|
||||
AssertEqual
|
||||
\ 'python',
|
||||
\ ale_linters#python#flake8#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
WithChainResults ['2.9.9']
|
||||
AssertLinter 'python', [
|
||||
\ ale#Escape('python') . ' -m flake8 --version',
|
||||
\ ale_linters#python#flake8#VersionCheck(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('python') . ' -m flake8 --some-option --format=default -',
|
||||
\ ale_linters#python#flake8#GetCommand(bufnr(''), ['2.9.9'])
|
||||
\ . ale#Escape('python')
|
||||
\ . ' -m flake8 --some-option --format=default -'
|
||||
\]
|
||||
|
||||
Execute(Setting executable to 'pipenv' appends 'run flake8'):
|
||||
Execute(Setting executable to 'pipenv' should append 'run flake8'):
|
||||
let g:ale_python_flake8_executable = 'path/to/pipenv'
|
||||
|
||||
AssertEqual
|
||||
" FIXME: pipenv should check the vresion with flake8.
|
||||
WithChainResults []
|
||||
AssertLinter 'path/to/pipenv',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('path/to/pipenv') . ' run flake8 --format=default --stdin-display-name %s -',
|
||||
\ ale_linters#python#flake8#GetCommand(bufnr(''), ['3.0.0'])
|
||||
\ . ale#Escape('path/to/pipenv') . ' run flake8 --format=default -'
|
||||
|
||||
@@ -1,44 +1,18 @@
|
||||
Before:
|
||||
Save g:ale_chef_foodcritic_executable
|
||||
Save g:ale_chef_foodcritic_options
|
||||
|
||||
unlet! g:ale_chef_foodcritic_executable
|
||||
unlet! g:ale_chef_foodcritic_options
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test')
|
||||
|
||||
runtime ale_linters/chef/foodcritic.vim
|
||||
call ale#assert#SetUpLinterTest('chef', 'foodcritic')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:ale_chef_foodcritic_executable
|
||||
unlet! b:ale_chef_foodcritic_options
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual
|
||||
\ 'foodcritic',
|
||||
\ ale_linters#chef#foodcritic#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('foodcritic') . ' %s',
|
||||
\ ale_linters#chef#foodcritic#GetCommand(bufnr(''))
|
||||
AssertLinter 'foodcritic', ale#Escape('foodcritic') . ' %s'
|
||||
|
||||
Execute(Extra options should be included with escapeed tildes (~)):
|
||||
let b:ale_chef_foodcritic_options = '-t ~F011'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foodcritic') . ' -t \~F011 %s',
|
||||
\ ale_linters#chef#foodcritic#GetCommand(bufnr(''))
|
||||
AssertLinter 'foodcritic', ale#Escape('foodcritic') . ' -t \~F011 %s'
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
let b:ale_chef_foodcritic_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ 'foobar',
|
||||
\ ale_linters#chef#foodcritic#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' %s',
|
||||
\ ale_linters#chef#foodcritic#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' %s'
|
||||
|
||||
@@ -1,17 +1,13 @@
|
||||
Before:
|
||||
runtime ale_linters/scala/fsc.vim
|
||||
call ale#assert#SetUpLinterTest('scala', 'fsc')
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Given scala(An empty Scala file):
|
||||
Execute(The default executable and command should be correct):
|
||||
AssertEqual 'fsc', ale_linters#scala#fsc#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('fsc') . ' -Ystop-after:parser %t',
|
||||
\ ale_linters#scala#fsc#GetCommand(bufnr(''))
|
||||
AssertLinter 'fsc', ale#Escape('fsc') . ' -Ystop-after:parser %t'
|
||||
|
||||
Given scala.sbt(An empty SBT file):
|
||||
Execute(fsc should not be run for sbt files):
|
||||
AssertEqual '', ale_linters#scala#fsc#GetExecutable(bufnr(''))
|
||||
AssertEqual '', ale_linters#scala#fsc#GetCommand(bufnr(''))
|
||||
AssertLinter '', ''
|
||||
|
||||
@@ -1,34 +1,19 @@
|
||||
Before:
|
||||
Save g:ale_fuse_fusionlint_options
|
||||
Save g:ale_fuse_fusionlint_executable
|
||||
|
||||
unlet! g:ale_fuse_fusionlint_options
|
||||
unlet! g:ale_fuse_fusionlint_executable
|
||||
|
||||
runtime ale_linters/fuse/fusionlint.vim
|
||||
call ale#assert#SetUpLinterTest('fuse', 'fusionlint')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The fuse fusionlint command callback should return the correct default string):
|
||||
AssertEqual ale#Escape('fusion-lint') . ' --filename %s -i',
|
||||
\ join(split(ale_linters#fuse#fusionlint#GetCommand(1)))
|
||||
AssertLinter 'fusion-lint', ale#Escape('fusion-lint') . ' --filename %s -i'
|
||||
|
||||
Execute(The fuse fusionlint command callback should let you set options):
|
||||
let g:ale_fuse_fusionlint_options = '--example-option argument'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('fusion-lint')
|
||||
\ . ' --example-option argument --filename %s -i',
|
||||
\ join(split(ale_linters#fuse#fusionlint#GetCommand(1)))
|
||||
AssertLinter 'fusion-lint',
|
||||
\ ale#Escape('fusion-lint') . ' --example-option argument --filename %s -i'
|
||||
|
||||
Execute(The fusionlint executable should be configurable):
|
||||
let g:ale_fuse_fusionlint_executable = 'util/linter.fuse'
|
||||
let g:ale_fuse_fusionlint_executable = 'foobar'
|
||||
|
||||
AssertEqual 'util/linter.fuse', ale_linters#fuse#fusionlint#GetExecutable(1)
|
||||
AssertEqual
|
||||
\ ale#Escape('util/linter.fuse')
|
||||
\ . ' --filename %s -i',
|
||||
\ join(split(ale_linters#fuse#fusionlint#GetCommand(1)))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' --filename %s -i'
|
||||
|
||||
@@ -1,40 +1,25 @@
|
||||
Before:
|
||||
Save g:ale_awk_gawk_executable
|
||||
Save g:ale_awk_gawk_options
|
||||
unlet! g:ale_awk_gawk_executable
|
||||
unlet! g:ale_awk_gawk_options
|
||||
|
||||
runtime ale_linters/awk/gawk.vim
|
||||
call ale#assert#SetUpLinterTest('awk', 'gawk')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_awk_gawk_executable
|
||||
unlet! b:ale_awk_gawk_options
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ 'gawk'
|
||||
\ . " --source 'BEGIN { exit } END { exit 1 }'"
|
||||
\ . ' ' . '-f %t --lint /dev/null',
|
||||
\ ale_linters#awk#gawk#GetCommand(bufnr(''))
|
||||
Execute(The default command should be correct):
|
||||
AssertLinter 'gawk',
|
||||
\ ale#Escape('gawk') . ' --source ''BEGIN { exit } END { exit 1 }'''
|
||||
\ . ' -f %t --lint /dev/null'
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
let b:ale_awk_gawk_executable = '/other/gawk'
|
||||
|
||||
AssertEqual
|
||||
\ '/other/gawk'
|
||||
\ . " --source 'BEGIN { exit } END { exit 1 }'"
|
||||
\ . ' ' . '-f %t --lint /dev/null',
|
||||
\ ale_linters#awk#gawk#GetCommand(bufnr(''))
|
||||
AssertLinter '/other/gawk',
|
||||
\ ale#Escape('/other/gawk') . ' --source ''BEGIN { exit } END { exit 1 }'''
|
||||
\ . ' -f %t --lint /dev/null'
|
||||
|
||||
Execute(The options should be configurable):
|
||||
let b:ale_awk_gawk_executable = 'gawk'
|
||||
let b:ale_awk_gawk_options = '--something'
|
||||
|
||||
AssertEqual
|
||||
\ 'gawk'
|
||||
\ . " --source 'BEGIN { exit } END { exit 1 }'"
|
||||
\ . ' --something'
|
||||
\ . ' ' . '-f %t --lint /dev/null',
|
||||
\ ale_linters#awk#gawk#GetCommand(bufnr(''))
|
||||
AssertLinter 'gawk',
|
||||
\ ale#Escape('gawk') . ' --source ''BEGIN { exit } END { exit 1 }'''
|
||||
\ . ' --something -f %t --lint /dev/null'
|
||||
|
||||
@@ -1,31 +1,24 @@
|
||||
Before:
|
||||
runtime ale_linters/fortran/gcc.vim
|
||||
call ale#assert#SetUpLinterTest('fortran', 'gcc')
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
let g:ale_fortran_gcc_options = '-Wall'
|
||||
let g:ale_fortran_gcc_use_free_form = 1
|
||||
let g:ale_fortran_gcc_executable = 'gcc'
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The fortran gcc command callback should return the correct default string):
|
||||
AssertEqual 'gcc -S -x f95 -fsyntax-only -ffree-form -Wall -',
|
||||
\ join(split(ale_linters#fortran#gcc#GetCommand(1)))
|
||||
AssertLinter 'gcc', 'gcc -S -x f95 -fsyntax-only -ffree-form -Wall -'
|
||||
|
||||
Execute(The fortran gcc command callback should let you set options):
|
||||
let g:ale_fortran_gcc_options = '-Wotherthings'
|
||||
|
||||
AssertEqual 'gcc -S -x f95 -fsyntax-only -ffree-form -Wotherthings -',
|
||||
\ join(split(ale_linters#fortran#gcc#GetCommand(1)))
|
||||
AssertLinter 'gcc', 'gcc -S -x f95 -fsyntax-only -ffree-form -Wotherthings -'
|
||||
|
||||
Execute(The fortran gcc command callback should let you use -ffixed-form):
|
||||
let g:ale_fortran_gcc_use_free_form = 0
|
||||
|
||||
AssertEqual 'gcc -S -x f95 -fsyntax-only -ffixed-form -Wall -',
|
||||
\ join(split(ale_linters#fortran#gcc#GetCommand(1)))
|
||||
AssertLinter 'gcc', 'gcc -S -x f95 -fsyntax-only -ffixed-form -Wall -'
|
||||
|
||||
Execute(The fortran executable should be configurable):
|
||||
let g:ale_fortran_gcc_executable = 'gfortran'
|
||||
|
||||
AssertEqual 'gfortran', ale_linters#fortran#gcc#GetExecutable(1)
|
||||
AssertEqual 'gfortran -S -x f95 -fsyntax-only -ffree-form -Wall -',
|
||||
\ join(split(ale_linters#fortran#gcc#GetCommand(1)))
|
||||
AssertLinter 'gfortran',
|
||||
\ 'gfortran -S -x f95 -fsyntax-only -ffree-form -Wall -'
|
||||
|
||||
@@ -1,84 +1,43 @@
|
||||
Before:
|
||||
Save g:ale_gitcommit_gitlint_executable
|
||||
Save g:ale_gitcommit_gitlint_options
|
||||
Save g:ale_gitcommit_gitlint_use_global
|
||||
|
||||
unlet! g:ale_gitcommit_gitlint_executable
|
||||
unlet! g:ale_gitcommit_gitlint_options
|
||||
unlet! g:ale_gitcommit_gitlint_use_global
|
||||
|
||||
runtime ale_linters/gitcommit/gitlint.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('gitcommit', 'gitlint')
|
||||
|
||||
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
|
||||
let b:command_tail = ' lint'
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
|
||||
unlet! b:bin_dir
|
||||
unlet! b:executable
|
||||
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The gitlint callbacks should return the correct default values):
|
||||
AssertEqual
|
||||
\ 'gitlint',
|
||||
\ ale_linters#gitcommit#gitlint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('gitlint') . b:command_tail,
|
||||
\ ale_linters#gitcommit#gitlint#GetCommand(bufnr(''))
|
||||
AssertLinter 'gitlint', ale#Escape('gitlint') . ' lint'
|
||||
|
||||
Execute(The gitlint executable should be configurable, and escaped properly):
|
||||
let g:ale_gitcommit_gitlint_executable = 'executable with spaces'
|
||||
|
||||
AssertEqual
|
||||
\ 'executable with spaces',
|
||||
\ ale_linters#gitcommit#gitlint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('executable with spaces') . b:command_tail,
|
||||
\ ale_linters#gitcommit#gitlint#GetCommand(bufnr(''))
|
||||
AssertLinter 'executable with spaces',
|
||||
\ ale#Escape('executable with spaces') . ' lint'
|
||||
|
||||
Execute(The gitlint command callback should let you set options):
|
||||
let g:ale_gitcommit_gitlint_options = '--some-option'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('gitlint') . ' --some-option' . b:command_tail,
|
||||
\ ale_linters#gitcommit#gitlint#GetCommand(bufnr(''))
|
||||
AssertLinter 'gitlint', ale#Escape('gitlint') . ' --some-option lint'
|
||||
|
||||
Execute(The gitlint callbacks shouldn't detect virtualenv directories where they don't exist):
|
||||
silent execute 'file ' . fnameescape(g:dir . '/python_paths/no_virtualenv/subdir/foo/COMMIT_EDITMSG')
|
||||
call ale#test#SetFilename('python_paths/no_virtualenv/subdir/foo/COMMIT_EDITMSG')
|
||||
|
||||
AssertEqual
|
||||
\ 'gitlint',
|
||||
\ ale_linters#gitcommit#gitlint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('gitlint') . b:command_tail,
|
||||
\ ale_linters#gitcommit#gitlint#GetCommand(bufnr(''))
|
||||
AssertLinter 'gitlint', ale#Escape('gitlint') . ' lint'
|
||||
|
||||
Execute(The gitlint callbacks should detect virtualenv directories):
|
||||
silent execute 'file ' . fnameescape(g:dir . '/python_paths/with_virtualenv/subdir/foo/COMMIT_EDITMSG')
|
||||
|
||||
call ale#test#SetFilename('python_paths/with_virtualenv/subdir/foo/COMMIT_EDITMSG')
|
||||
let b:executable = ale#path#Simplify(
|
||||
\ g:dir . '/python_paths/with_virtualenv/env/' . b:bin_dir . '/gitlint'
|
||||
\)
|
||||
|
||||
AssertEqual
|
||||
\ b:executable,
|
||||
\ ale_linters#gitcommit#gitlint#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape(b:executable) . b:command_tail,
|
||||
\ ale_linters#gitcommit#gitlint#GetCommand(bufnr(''))
|
||||
AssertLinter b:executable, ale#Escape(b:executable) . ' lint'
|
||||
|
||||
Execute(You should able able to use the global gitlint instead):
|
||||
silent execute 'file ' . fnameescape(g:dir . '/python_paths/with_virtualenv/subdir/foo/COMMIT_EDITMSG')
|
||||
call ale#test#SetFilename('python_paths/with_virtualenv/subdir/foo/COMMIT_EDITMSG')
|
||||
let g:ale_gitcommit_gitlint_use_global = 1
|
||||
|
||||
AssertEqual
|
||||
\ 'gitlint',
|
||||
\ ale_linters#gitcommit#gitlint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('gitlint') . b:command_tail,
|
||||
\ ale_linters#gitcommit#gitlint#GetCommand(bufnr(''))
|
||||
AssertLinter 'gitlint', ale#Escape('gitlint') . ' lint'
|
||||
|
||||
@@ -1,40 +1,19 @@
|
||||
Before:
|
||||
Save g:ale_glsl_glslang_executable
|
||||
Save g:ale_glsl_glslang_options
|
||||
|
||||
unlet! g:ale_glsl_glslang_executable
|
||||
unlet! g:ale_glsl_glslang_options
|
||||
|
||||
runtime ale_linters/glsl/glslang.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('glsl', 'glslang')
|
||||
|
||||
After:
|
||||
Restore
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Executable should default to glslangValidator):
|
||||
AssertEqual
|
||||
\ 'glslangValidator',
|
||||
\ ale_linters#glsl#glslang#GetExecutable(bufnr(''))
|
||||
Execute(The default command should be correct):
|
||||
AssertLinter 'glslangValidator', ale#Escape('glslangValidator') . ' -C %t'
|
||||
|
||||
Execute(Executable should be configurable):
|
||||
let g:ale_glsl_glslang_executable = 'foobar'
|
||||
AssertEqual
|
||||
\ 'foobar',
|
||||
\ ale_linters#glsl#glslang#GetExecutable(bufnr(''))
|
||||
Execute(The executable should be configurable):
|
||||
let b:ale_glsl_glslang_executable = 'foobar'
|
||||
|
||||
Execute(Command should use executable):
|
||||
AssertEqual
|
||||
\ 'glslangValidator -C %t',
|
||||
\ ale_linters#glsl#glslang#GetCommand(bufnr(''))
|
||||
|
||||
let g:ale_glsl_glslang_executable = 'foobar'
|
||||
AssertEqual
|
||||
\ 'foobar -C %t',
|
||||
\ ale_linters#glsl#glslang#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' -C %t'
|
||||
|
||||
Execute(Options should work):
|
||||
let g:ale_glsl_glslang_options = '--test'
|
||||
AssertEqual
|
||||
\ 'glslangValidator --test -C %t',
|
||||
\ ale_linters#glsl#glslang#GetCommand(bufnr(''))
|
||||
|
||||
AssertLinter 'glslangValidator',
|
||||
\ ale#Escape('glslangValidator') . ' --test -C %t'
|
||||
|
||||
@@ -1,37 +1,19 @@
|
||||
Before:
|
||||
Save g:ale_glsl_glslls_executable
|
||||
Save g:ale_glsl_glslls_logfile
|
||||
|
||||
unlet! g:ale_glsl_glslls_executable
|
||||
unlet! g:ale_glsl_glslls_logfile
|
||||
|
||||
runtime ale_linters/glsl/glslls.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('glsl', 'glslls')
|
||||
|
||||
After:
|
||||
Restore
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Executable should default to 'glslls'):
|
||||
AssertEqual
|
||||
\ 'glslls',
|
||||
\ ale_linters#glsl#glslls#GetExecutable(bufnr(''))
|
||||
Execute(The default command should be correct):
|
||||
AssertLinter 'glslls', ale#Escape('glslls') . ' --stdin'
|
||||
|
||||
Execute(Executable should be configurable):
|
||||
let g:ale_glsl_glslls_executable = 'foobar'
|
||||
AssertEqual
|
||||
\ 'foobar',
|
||||
\ ale_linters#glsl#glslls#GetExecutable(bufnr(''))
|
||||
let b:ale_glsl_glslls_executable = 'foobar'
|
||||
|
||||
Execute(Command should use executable):
|
||||
let command1 = ale_linters#glsl#glslls#GetCommand(bufnr(''))
|
||||
AssertEqual command1, ale#Escape('glslls') . ' --stdin'
|
||||
|
||||
let g:ale_glsl_glslls_executable = 'foobar'
|
||||
let command2 = ale_linters#glsl#glslls#GetCommand(bufnr(''))
|
||||
AssertEqual command2, ale#Escape('foobar') . ' --stdin'
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' --stdin'
|
||||
|
||||
Execute(Setting logfile should work):
|
||||
let g:ale_glsl_glslls_logfile = '/tmp/test.log'
|
||||
let command = ale_linters#glsl#glslls#GetCommand(bufnr(''))
|
||||
AssertEqual command, ale#Escape('glslls') . ' --verbose -l /tmp/test.log --stdin'
|
||||
let b:ale_glsl_glslls_logfile = '/tmp/test.log'
|
||||
|
||||
AssertLinter 'glslls',
|
||||
\ ale#Escape('glslls') . ' --verbose -l /tmp/test.log --stdin'
|
||||
|
||||
@@ -1,52 +1,36 @@
|
||||
Before:
|
||||
Save g:ale_go_gobuild_options
|
||||
|
||||
unlet! g:ale_go_gobuild_options
|
||||
call ale#assert#SetUpLinterTest('go', 'gobuild')
|
||||
|
||||
let g:env_prefix = has('win32')
|
||||
\ ? 'set GOPATH=' . ale#Escape('/foo/bar') . ' && '
|
||||
\ : 'GOPATH=' . ale#Escape('/foo/bar') . ' '
|
||||
|
||||
runtime ale_linters/go/gobuild.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
call ale_linters#go#gobuild#ResetEnv()
|
||||
|
||||
WithChainResults ['/foo/bar', '/foo/baz']
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! g:env_prefix
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
|
||||
Execute(The default gobuild command should be correct):
|
||||
AssertEqual
|
||||
\ ale_linters#go#gobuild#GetCommand(bufnr(''), ['/foo/bar', '/foo/baz']),
|
||||
Execute(The default commands should be correct):
|
||||
AssertLinter 'go', [
|
||||
\ 'go env GOPATH GOROOT',
|
||||
\ g:env_prefix . 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . 'go test -c -o /dev/null ./'
|
||||
|
||||
Execute(The command for getting GOPATH should be correct):
|
||||
AssertEqual ale_linters#go#gobuild#GoEnv(bufnr('')), 'go env GOPATH GOROOT'
|
||||
|
||||
call ale_linters#go#gobuild#GetCommand(bufnr(''), ['/foo/bar', '/foo/baz'])
|
||||
\]
|
||||
|
||||
" We shouldn't run `go env` many times after we've got it.
|
||||
AssertEqual ale_linters#go#gobuild#GoEnv(bufnr('')), ''
|
||||
|
||||
Execute(The GOPATH output should be used after it has been read once):
|
||||
call ale_linters#go#gobuild#GetCommand(bufnr(''), ['/foo/bar', '/foo/baz'])
|
||||
|
||||
AssertEqual
|
||||
\ ale_linters#go#gobuild#GetCommand(bufnr(''), []),
|
||||
AssertLinter 'go', [
|
||||
\ '',
|
||||
\ g:env_prefix . 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . 'go test -c -o /dev/null ./'
|
||||
\]
|
||||
|
||||
Execute(Extra options should be supported):
|
||||
let g:ale_go_gobuild_options = '--foo-bar'
|
||||
|
||||
AssertEqual
|
||||
\ ale_linters#go#gobuild#GetCommand(bufnr(''), ['/foo/bar', '/foo/baz']),
|
||||
AssertLinter 'go', [
|
||||
\ 'go env GOPATH GOROOT',
|
||||
\ g:env_prefix . 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . 'go test --foo-bar -c -o /dev/null ./'
|
||||
\]
|
||||
|
||||
@@ -1,61 +1,38 @@
|
||||
Before:
|
||||
Save b:ale_go_gometalinter_executable
|
||||
Save b:ale_go_gometalinter_options
|
||||
Save b:ale_go_gometalinter_lint_package
|
||||
|
||||
let b:ale_go_gometalinter_executable = 'gometalinter'
|
||||
let b:ale_go_gometalinter_options = ''
|
||||
let b:ale_go_gometalinter_lint_package = 0
|
||||
|
||||
runtime ale_linters/go/gometalinter.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('go', 'gometalinter')
|
||||
call ale#test#SetFilename('test.go')
|
||||
|
||||
After:
|
||||
Restore
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(The gometalinter callback should return the right defaults):
|
||||
AssertEqual
|
||||
\ 'gometalinter',
|
||||
\ ale_linters#go#gometalinter#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
Execute(The gometalinter defaults should be correct):
|
||||
AssertLinter 'gometalinter',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ale#Escape('gometalinter')
|
||||
\ . ' --include=' . ale#Escape(ale#util#EscapePCRE(expand('%' . ':t')))
|
||||
\ . ' .',
|
||||
\ ale_linters#go#gometalinter#GetCommand(bufnr(''))
|
||||
\ . ' .'
|
||||
|
||||
Execute(The gometalinter callback should use a configured executable):
|
||||
let b:ale_go_gometalinter_executable = 'something else'
|
||||
|
||||
AssertEqual
|
||||
\ 'something else',
|
||||
\ ale_linters#go#gometalinter#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'something else',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ale#Escape('something else')
|
||||
\ . ' --include=' . ale#Escape(ale#util#EscapePCRE(expand('%' . ':t')))
|
||||
\ . ' .',
|
||||
\ ale_linters#go#gometalinter#GetCommand(bufnr(''))
|
||||
\ . ' .'
|
||||
|
||||
Execute(The gometalinter callback should use configured options):
|
||||
let b:ale_go_gometalinter_options = '--foobar'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'gometalinter',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ale#Escape('gometalinter')
|
||||
\ . ' --include=' . ale#Escape(ale#util#EscapePCRE(expand('%' . ':t')))
|
||||
\ . ' --foobar' . ' .',
|
||||
\ ale_linters#go#gometalinter#GetCommand(bufnr(''))
|
||||
\ . ' --foobar' . ' .'
|
||||
|
||||
Execute(The gometalinter `lint_package` option should use the correct command):
|
||||
let b:ale_go_gometalinter_lint_package = 1
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'gometalinter',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ale#Escape('gometalinter') . ' .',
|
||||
\ ale_linters#go#gometalinter#GetCommand(bufnr(''))
|
||||
\ . ale#Escape('gometalinter') . ' .'
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
Before:
|
||||
runtime ale_linters/go/gosimple.vim
|
||||
call ale#assert#SetUpLinterTest('go', 'gosimple')
|
||||
call ale#test#SetFilename('../go_files/testfile2.go')
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default gosimple command should be correct):
|
||||
AssertEqual 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ' gosimple .',
|
||||
\ ale_linters#go#gosimple#GetCommand(bufnr(''))
|
||||
|
||||
AssertLinter 'gosimple',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && gosimple .'
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
Before:
|
||||
runtime ale_linters/go/gotype.vim
|
||||
call ale#assert#SetUpLinterTest('go', 'gotype')
|
||||
call ale#test#SetFilename('../go_files/testfile2.go')
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default gotype command should be correct):
|
||||
AssertEqual 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ' gotype .',
|
||||
\ ale_linters#go#gotype#GetCommand(bufnr(''))
|
||||
AssertLinter 'gotype',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && gotype .'
|
||||
|
||||
Execute(The gotype callback should ignore test files):
|
||||
call ale#test#SetFilename('bla_test.go')
|
||||
AssertEqual 0, ale_linters#go#gotype#GetCommand(bufnr(''))
|
||||
|
||||
AssertLinter 'gotype', ''
|
||||
|
||||
@@ -1,16 +1,8 @@
|
||||
Before:
|
||||
runtime ale_linters/go/govet.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('go', 'govet')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ' go vet .',
|
||||
\ ale_linters#go#govet#GetCommand(bufnr(''))
|
||||
AssertLinter 'go', 'cd ' . ale#Escape(expand('%:p:h')) . ' && go vet .'
|
||||
|
||||
@@ -1,72 +1,37 @@
|
||||
Before:
|
||||
runtime ale_linters/haml/hamllint.vim
|
||||
call ale#assert#SetUpLinterTest('haml', 'hamllint')
|
||||
|
||||
let g:default_command = 'haml-lint %t'
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! g:default_command
|
||||
unlet! b:conf
|
||||
unlet! b:conf_hamllint
|
||||
unlet! b:conf_rubocop
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual g:default_command, ale_linters#haml#hamllint#GetCommand(bufnr(''))
|
||||
AssertLinter 'haml-lint', 'haml-lint %t'
|
||||
|
||||
Execute(The command should have the .rubocop.yml prepended as an env var if one exists):
|
||||
call ale#test#SetFilename('../hamllint-test-files/rubocop-yml/subdir/file.haml')
|
||||
let b:conf = ale#path#Simplify(g:dir . '/../hamllint-test-files/rubocop-yml/.rubocop.yml')
|
||||
|
||||
if has('win32')
|
||||
" Windows uses 'set var=... && command'
|
||||
AssertEqual
|
||||
\ 'set HAML_LINT_RUBOCOP_CONF='
|
||||
\ . ale#Escape(b:conf)
|
||||
\ . ' && ' . g:default_command,
|
||||
\ ale_linters#haml#hamllint#GetCommand(bufnr(''))
|
||||
else
|
||||
" Unix uses 'var=... command'
|
||||
AssertEqual
|
||||
\ 'HAML_LINT_RUBOCOP_CONF='
|
||||
\ . ale#Escape(b:conf)
|
||||
\ . ' ' . g:default_command,
|
||||
\ ale_linters#haml#hamllint#GetCommand(bufnr(''))
|
||||
endif
|
||||
AssertLinter 'haml-lint',
|
||||
\ ale#Env('HAML_LINT_RUBOCOP_CONF', b:conf) . 'haml-lint %t'
|
||||
|
||||
Execute(The command should have the nearest .haml-lint.yml set as --config if it exists):
|
||||
call ale#test#SetFilename('../hamllint-test-files/haml-lint-yml/subdir/file.haml')
|
||||
let b:conf = ale#path#Simplify(g:dir . '/../hamllint-test-files/haml-lint-yml/.haml-lint.yml')
|
||||
|
||||
AssertEqual
|
||||
\ 'haml-lint --config '
|
||||
\ . ale#Escape(b:conf)
|
||||
\ . ' %t',
|
||||
\ ale_linters#haml#hamllint#GetCommand(bufnr(''))
|
||||
AssertLinter 'haml-lint',
|
||||
\ 'haml-lint --config ' . ale#Escape(b:conf) . ' %t',
|
||||
|
||||
Execute(The command should include a .rubocop.yml and a .haml-lint if both are found):
|
||||
call ale#test#SetFilename('../hamllint-test-files/haml-lint-and-rubocop/subdir/file.haml')
|
||||
let b:conf_hamllint = ale#path#Simplify(g:dir . '/../hamllint-test-files/haml-lint-and-rubocop/.haml-lint.yml')
|
||||
let b:conf_rubocop = ale#path#Simplify(g:dir . '/../hamllint-test-files/haml-lint-and-rubocop/.rubocop.yml')
|
||||
|
||||
if has('win32')
|
||||
" Windows uses 'set var=... && command'
|
||||
AssertEqual
|
||||
\ 'set HAML_LINT_RUBOCOP_CONF='
|
||||
\ . ale#Escape(b:conf_rubocop)
|
||||
\ . ' && haml-lint --config '
|
||||
\ . ale#Escape(b:conf_hamllint)
|
||||
\ . ' %t',
|
||||
\ ale_linters#haml#hamllint#GetCommand(bufnr(''))
|
||||
else
|
||||
" Unix uses 'var=... command'
|
||||
AssertEqual
|
||||
\ 'HAML_LINT_RUBOCOP_CONF='
|
||||
\ . ale#Escape(b:conf_rubocop)
|
||||
\ . ' haml-lint --config '
|
||||
\ . ale#Escape(b:conf_hamllint)
|
||||
\ . ' %t',
|
||||
\ ale_linters#haml#hamllint#GetCommand(bufnr(''))
|
||||
endif
|
||||
AssertLinter 'haml-lint',
|
||||
\ ale#Env('HAML_LINT_RUBOCOP_CONF', b:conf_rubocop)
|
||||
\ . 'haml-lint --config ' . ale#Escape(b:conf_hamllint) . ' %t'
|
||||
|
||||
@@ -1,23 +1,12 @@
|
||||
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
|
||||
call ale#assert#SetUpLinterTest('haskell', 'ghc')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:ale_haskell_ghc_options
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The options should be used in the command):
|
||||
AssertEqual
|
||||
\ 'ghc -fno-code -v0 %t',
|
||||
\ ale_linters#haskell#ghc#GetCommand(bufnr(''))
|
||||
AssertLinter 'ghc', 'ghc -fno-code -v0 %t'
|
||||
|
||||
let b:ale_haskell_ghc_options = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ 'ghc foobar %t',
|
||||
\ ale_linters#haskell#ghc#GetCommand(bufnr(''))
|
||||
AssertLinter 'ghc', 'ghc foobar %t'
|
||||
|
||||
@@ -1,37 +1,16 @@
|
||||
Before:
|
||||
Save g:ale_haskell_hdevtools_executable
|
||||
Save g:ale_haskell_hdevtools_options
|
||||
|
||||
unlet! g:ale_haskell_hdevtools_executable
|
||||
unlet! b:ale_haskell_hdevtools_executable
|
||||
unlet! g:ale_haskell_hdevtools_options
|
||||
unlet! b:ale_haskell_hdevtools_options
|
||||
|
||||
runtime ale_linters/haskell/hdevtools.vim
|
||||
call ale#assert#SetUpLinterTest('haskell', 'hdevtools')
|
||||
|
||||
let b:command_tail = ' check -g -Wall -p %s %t'
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_haskell_hdevtools_executable
|
||||
unlet! b:ale_haskell_hdevtools_options
|
||||
call ale#linter#Reset()
|
||||
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'hdevtools', ale_linters#haskell#hdevtools#GetExecutable(bufnr(''))
|
||||
AssertLinter 'hdevtools', ale#Escape('hdevtools') . b:command_tail
|
||||
|
||||
let b:ale_haskell_hdevtools_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#haskell#hdevtools#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('hdevtools') . b:command_tail,
|
||||
\ ale_linters#haskell#hdevtools#GetCommand(bufnr(''))
|
||||
|
||||
let b:ale_haskell_hdevtools_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . b:command_tail,
|
||||
\ ale_linters#haskell#hdevtools#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . b:command_tail
|
||||
|
||||
@@ -1,71 +1,51 @@
|
||||
Before:
|
||||
Save g:ale_html_htmlhint_options
|
||||
Save g:ale_html_htmlhint_executable
|
||||
Save g:ale_html_htmlhint_use_global
|
||||
|
||||
unlet! g:ale_html_htmlhint_options
|
||||
unlet! g:ale_html_htmlhint_executable
|
||||
unlet! g:ale_html_htmlhint_use_global
|
||||
|
||||
runtime ale_linters/html/htmlhint.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('html', 'htmlhint')
|
||||
call ale#test#SetFilename('htmlhint_paths/test.html')
|
||||
|
||||
let g:node_executable = ale#path#Simplify(
|
||||
\ g:dir
|
||||
\ . '/htmlhint_paths/node_modules/.bin/htmlhint'
|
||||
\ g:dir . '/htmlhint_paths/node_modules/.bin/htmlhint'
|
||||
\)
|
||||
let g:config_path = ale#path#Simplify(
|
||||
\ g:dir
|
||||
\ . '/htmlhint_paths/with_config/.htmlhintrc'
|
||||
\ g:dir . '/htmlhint_paths/with_config/.htmlhintrc'
|
||||
\)
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! g:node_executable
|
||||
unlet! g:config_path
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual
|
||||
\ ale#Escape(g:node_executable) . ' --format=unix %t',
|
||||
\ ale_linters#html#htmlhint#GetCommand(bufnr(''))
|
||||
AssertLinter g:node_executable,
|
||||
\ ale#Escape(g:node_executable) . ' --format=unix %t'
|
||||
|
||||
Execute(The global executable should be uesd if the option is set):
|
||||
let g:ale_html_htmlhint_executable = 'foo'
|
||||
let g:ale_html_htmlhint_use_global = 1
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foo') . ' --format=unix %t',
|
||||
\ ale_linters#html#htmlhint#GetCommand(bufnr(''))
|
||||
AssertLinter 'foo', ale#Escape('foo') . ' --format=unix %t',
|
||||
|
||||
" This is so old configurations which might include this still work.
|
||||
Execute(--format=unix should be removed from the options if added):
|
||||
let g:ale_html_htmlhint_options = '--format=unix'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape(g:node_executable) . ' --format=unix %t',
|
||||
\ ale_linters#html#htmlhint#GetCommand(bufnr(''))
|
||||
AssertLinter g:node_executable,
|
||||
\ ale#Escape(g:node_executable) . ' --format=unix %t'
|
||||
|
||||
Execute(The configuration file should be automatically detected):
|
||||
call ale#test#SetFilename('htmlhint_paths/with_config/test.html')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter g:node_executable,
|
||||
\ ale#Escape(g:node_executable)
|
||||
\ . ' --config ' . ale#Escape(g:config_path)
|
||||
\ . ' --format=unix %t',
|
||||
\ ale_linters#html#htmlhint#GetCommand(bufnr(''))
|
||||
\ . ' --format=unix %t'
|
||||
|
||||
" This is so old configurations which might include the config will work.
|
||||
Execute(The configuration file should be configurable through the options variable):
|
||||
call ale#test#SetFilename('htmlhint_paths/with_config/test.html')
|
||||
let g:ale_html_htmlhint_options = '--config=/foo/bar/.htmlhintrc'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter g:node_executable,
|
||||
\ ale#Escape(g:node_executable)
|
||||
\ . ' --config=/foo/bar/.htmlhintrc'
|
||||
\ . ' --format=unix %t',
|
||||
\ ale_linters#html#htmlhint#GetCommand(bufnr(''))
|
||||
\ . ' --format=unix %t'
|
||||
|
||||
@@ -1,42 +1,21 @@
|
||||
Before:
|
||||
Save g:ale_idris_idris_executable
|
||||
Save g:ale_idris_idris_options
|
||||
|
||||
unlet! g:ale_idris_idris_executable
|
||||
unlet! b:ale_idris_idris_executable
|
||||
unlet! g:ale_idris_idris_options
|
||||
unlet! b:ale_idris_idris_options
|
||||
|
||||
runtime ale_linters/idris/idris.vim
|
||||
call ale#assert#SetUpLinterTest('idris', 'idris')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_idris_idris_executable
|
||||
unlet! b:ale_idris_idris_options
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'idris', ale_linters#idris#idris#GetExecutable(bufnr(''))
|
||||
|
||||
let b:ale_idris_idris_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#idris#idris#GetExecutable(bufnr(''))
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('idris') . ' --total --warnpartial --warnreach --warnipkg --check %s',
|
||||
\ ale_linters#idris#idris#GetCommand(bufnr(''))
|
||||
AssertLinter 'idris',
|
||||
\ ale#Escape('idris') . ' --total --warnpartial --warnreach --warnipkg --check %s'
|
||||
|
||||
let b:ale_idris_idris_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' --total --warnpartial --warnreach --warnipkg --check %s',
|
||||
\ ale_linters#idris#idris#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar',
|
||||
\ ale#Escape('foobar') . ' --total --warnpartial --warnreach --warnipkg --check %s'
|
||||
|
||||
Execute(The options should be configurable):
|
||||
let b:ale_idris_idris_options = '--something'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('idris') . ' --something --check %s',
|
||||
\ ale_linters#idris#idris#GetCommand(bufnr(''))
|
||||
AssertLinter 'idris', ale#Escape('idris') . ' --something --check %s'
|
||||
|
||||
@@ -1,24 +1,14 @@
|
||||
Before:
|
||||
Save g:ale_verilog_iverilog_options
|
||||
|
||||
unlet! g:ale_verilog_iverilog_options
|
||||
|
||||
runtime ale_linters/verilog/iverilog.vim
|
||||
call ale#assert#SetUpLinterTest('verilog', 'iverilog')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default iverilog command should be correct):
|
||||
AssertEqual
|
||||
\ 'iverilog -t null -Wall %t',
|
||||
\ ale_linters#verilog#iverilog#GetCommand(bufnr(''))
|
||||
AssertLinter 'iverilog', 'iverilog -t null -Wall %t'
|
||||
|
||||
Execute(iverilog options should be configurable):
|
||||
" Additional args for the linter
|
||||
let g:ale_verilog_iverilog_options = '-y.'
|
||||
|
||||
AssertEqual
|
||||
\ 'iverilog -t null -Wall -y. %t',
|
||||
\ ale_linters#verilog#iverilog#GetCommand(bufnr(''))
|
||||
AssertLinter 'iverilog', 'iverilog -t null -Wall -y. %t'
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
Before:
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
Save g:ale_java_javac_executable
|
||||
Save g:ale_java_javac_options
|
||||
Save g:ale_java_javac_classpath
|
||||
|
||||
unlet! g:ale_java_javac_executable
|
||||
unlet! g:ale_java_javac_options
|
||||
unlet! g:ale_java_javac_classpath
|
||||
call ale#assert#SetUpLinterTest('java', 'javac')
|
||||
call ale#test#SetFilename('dummy.java')
|
||||
|
||||
let g:cp_sep = has('unix') ? ':' : ';'
|
||||
let g:prefix = 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ale#Escape('javac') . ' -Xlint'
|
||||
|
||||
function! GetCommand(previous_output) abort
|
||||
let l:command = ale_linters#java#javac#GetCommand(
|
||||
@@ -25,69 +20,58 @@ Before:
|
||||
return join(l:split_command)
|
||||
endfunction
|
||||
|
||||
runtime ale_linters/java/javac.vim
|
||||
call ale#engine#InitBufferInfo(bufnr(''))
|
||||
|
||||
call ale#test#SetFilename('dummy.java')
|
||||
|
||||
let g:prefix = 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ale#Escape('javac') . ' -Xlint'
|
||||
|
||||
After:
|
||||
call ale#test#RestoreDirectory()
|
||||
|
||||
Restore
|
||||
|
||||
unlet! g:cp_sep
|
||||
unlet! g:prefix
|
||||
|
||||
delfunction GetCommand
|
||||
|
||||
call ale#linter#Reset()
|
||||
" We need to clean up the buffer to remove the temporary directories created
|
||||
" for the command.
|
||||
call ale#engine#Cleanup(bufnr(''))
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The javac callback should return the correct default value):
|
||||
AssertEqual g:prefix . ' -d TEMP %t', GetCommand([])
|
||||
AssertLinter 'javac', g:prefix . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||
|
||||
Execute(The javac callback should use g:ale_java_javac_classpath correctly):
|
||||
let g:ale_java_javac_classpath = 'foo.jar'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'javac',
|
||||
\ g:prefix
|
||||
\ . ' -cp ' . ale#Escape('foo.jar')
|
||||
\ . ' -d TEMP %t',
|
||||
\ GetCommand([])
|
||||
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
let g:ale_java_javac_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#java#javac#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'foobar',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ale#Escape('foobar') . ' -Xlint'
|
||||
\ . ' -d TEMP %t',
|
||||
\ GetCommand([])
|
||||
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||
|
||||
Execute(The javac callback should include discovered classpaths):
|
||||
AssertEqual
|
||||
WithChainResults [
|
||||
\ '[DEBUG] Ignore this.',
|
||||
\ '[INFO] Something we should ignore.',
|
||||
\ '/foo/bar.jar',
|
||||
\ '/xyz/abc.jar',
|
||||
\]
|
||||
|
||||
AssertLinter 'javac',
|
||||
\ g:prefix
|
||||
\ . ' -cp '
|
||||
\ . ale#Escape(join(['/foo/bar.jar', '/xyz/abc.jar'], g:cp_sep))
|
||||
\ . ' -d TEMP %t',
|
||||
\ GetCommand([
|
||||
\ '[DEBUG] Ignore this.',
|
||||
\ '[INFO] Something we should ignore.',
|
||||
\ '/foo/bar.jar',
|
||||
\ '/xyz/abc.jar',
|
||||
\ ])
|
||||
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||
|
||||
Execute(The javac callback should combine discovered classpaths and manual ones):
|
||||
let g:ale_java_javac_classpath = 'configured.jar'
|
||||
|
||||
AssertEqual
|
||||
WithChainResults [
|
||||
\ '[DEBUG] Ignore this.',
|
||||
\ '[INFO] Something we should ignore.',
|
||||
\ '/foo/bar.jar',
|
||||
\ '/xyz/abc.jar',
|
||||
\]
|
||||
|
||||
AssertLinter 'javac',
|
||||
\ g:prefix
|
||||
\ . ' -cp '
|
||||
\ . ale#Escape(join(
|
||||
@@ -98,17 +82,11 @@ Execute(The javac callback should combine discovered classpaths and manual ones)
|
||||
\ ],
|
||||
\ g:cp_sep
|
||||
\ ))
|
||||
\ . ' -d TEMP %t',
|
||||
\ GetCommand([
|
||||
\ '[DEBUG] Ignore this.',
|
||||
\ '[INFO] Something we should ignore.',
|
||||
\ '/foo/bar.jar',
|
||||
\ '/xyz/abc.jar',
|
||||
\ ])
|
||||
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||
|
||||
let g:ale_java_javac_classpath = 'configured.jar' . g:cp_sep . 'configured2.jar'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'javac',
|
||||
\ g:prefix
|
||||
\ . ' -cp '
|
||||
\ . ale#Escape(join(
|
||||
@@ -120,55 +98,46 @@ Execute(The javac callback should combine discovered classpaths and manual ones)
|
||||
\ ],
|
||||
\ g:cp_sep
|
||||
\ ))
|
||||
\ . ' -d TEMP %t',
|
||||
\ GetCommand([
|
||||
\ '[DEBUG] Ignore this.',
|
||||
\ '[INFO] Something we should ignore.',
|
||||
\ '/foo/bar.jar',
|
||||
\ '/xyz/abc.jar',
|
||||
\ ])
|
||||
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||
|
||||
Execute(The javac callback should detect source directories):
|
||||
call ale#engine#Cleanup(bufnr(''))
|
||||
noautocmd e! java_paths/src/main/java/com/something/dummy
|
||||
call ale#engine#InitBufferInfo(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'javac',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && ' . ale#Escape('javac') . ' -Xlint'
|
||||
\ . ' -sourcepath ' . ale#Escape(
|
||||
\ ale#path#Simplify(g:dir . '/java_paths/src/main/java/')
|
||||
\ )
|
||||
\ . ' -d TEMP %t',
|
||||
\ GetCommand([])
|
||||
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||
|
||||
Execute(The javac callback should combine detected source directories and classpaths):
|
||||
call ale#engine#Cleanup(bufnr(''))
|
||||
call ale#test#SetFilename('java_paths/src/main/java/com/something/dummy.java')
|
||||
call ale#engine#InitBufferInfo(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
WithChainResults [
|
||||
\ '[DEBUG] Ignore this.',
|
||||
\ '[INFO] Something we should ignore.',
|
||||
\ '/foo/bar.jar',
|
||||
\ '/xyz/abc.jar',
|
||||
\]
|
||||
AssertLinter 'javac',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && ' . ale#Escape('javac') . ' -Xlint'
|
||||
\ . ' -cp ' . ale#Escape(join(['/foo/bar.jar', '/xyz/abc.jar'], g:cp_sep))
|
||||
\ . ' -sourcepath ' . ale#Escape(
|
||||
\ ale#path#Simplify(g:dir . '/java_paths/src/main/java/')
|
||||
\ )
|
||||
\ . ' -d TEMP %t',
|
||||
\ GetCommand([
|
||||
\ '[DEBUG] Ignore this.',
|
||||
\ '[INFO] Something we should ignore.',
|
||||
\ '/foo/bar.jar',
|
||||
\ '/xyz/abc.jar',
|
||||
\ ])
|
||||
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||
|
||||
Execute(The javac callback should use g:ale_java_javac_options correctly):
|
||||
let g:ale_java_javac_options = '--anything --else'
|
||||
|
||||
let b:command = ale_linters#java#javac#GetCommand(bufnr(''), [])
|
||||
|
||||
AssertEqual
|
||||
\ g:prefix
|
||||
\ . ' -d TEMP --anything --else %t',
|
||||
\ GetCommand([])
|
||||
AssertLinter 'javac',
|
||||
\ g:prefix . ' -d ' . ale#Escape('TEMP_DIR') . ' --anything --else %t'
|
||||
|
||||
Execute(The javac callback should include src/test/java for test paths):
|
||||
call ale#engine#Cleanup(bufnr(''))
|
||||
@@ -177,25 +146,23 @@ Execute(The javac callback should include src/test/java for test paths):
|
||||
noautocmd e! java_paths/src/test/java/com/something/dummy
|
||||
call ale#engine#InitBufferInfo(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'javac',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && ' . ale#Escape('javac') . ' -Xlint'
|
||||
\ . ' -sourcepath ' . ale#Escape(join([
|
||||
\ ale#path#Simplify(g:dir . '/java_paths/src/main/java/'),
|
||||
\ ale#path#Simplify(g:dir . '/java_paths/src/test/java/'),
|
||||
\ ], g:cp_sep))
|
||||
\ . ' -d TEMP %t',
|
||||
\ GetCommand([])
|
||||
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||
|
||||
Execute(The javac callback should include src/main/jaxb when available):
|
||||
call ale#engine#Cleanup(bufnr(''))
|
||||
noautocmd e! java_paths_with_jaxb/src/main/java/com/something/dummy
|
||||
call ale#engine#InitBufferInfo(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'javac',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && ' . ale#Escape('javac') . ' -Xlint'
|
||||
\ . ' -sourcepath ' . ale#Escape(join([
|
||||
\ ale#path#Simplify(g:dir . '/java_paths_with_jaxb/src/main/java/'),
|
||||
\ ale#path#Simplify(g:dir . '/java_paths_with_jaxb/src/main/jaxb/'),
|
||||
\ ], g:cp_sep))
|
||||
\ . ' -d TEMP %t',
|
||||
\ GetCommand([])
|
||||
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||
|
||||
@@ -1,25 +1,15 @@
|
||||
Before:
|
||||
runtime ale_linters/javascript/jscs.vim
|
||||
call ale#assert#SetUpLinterTest('javascript', 'jscs')
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
let g:ale_javascript_jscs_executable = 'jscs'
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Should return the correct default values):
|
||||
AssertEqual
|
||||
\ 'jscs',
|
||||
\ ale_linters#javascript#jscs#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('jscs') . ' --reporter inline --no-colors -',
|
||||
\ ale_linters#javascript#jscs#GetCommand(bufnr(''))
|
||||
|
||||
AssertLinter 'jscs',
|
||||
\ ale#Escape('jscs') . ' --reporter inline --no-colors -'
|
||||
|
||||
Execute(Should allow using a custom executable):
|
||||
let g:ale_javascript_jscs_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ 'foobar',
|
||||
\ ale_linters#javascript#jscs#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' --reporter inline --no-colors -',
|
||||
\ ale_linters#javascript#jscs#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar',
|
||||
\ ale#Escape('foobar') . ' --reporter inline --no-colors -'
|
||||
|
||||
@@ -1,31 +1,10 @@
|
||||
Before:
|
||||
Save g:ale_less_stylelint_executable
|
||||
Save g:ale_less_stylelint_use_global
|
||||
Save g:ale_less_stylelint_options
|
||||
|
||||
call ale#assert#SetUpLinterTest('less', 'stylelint')
|
||||
unlet! b:executable
|
||||
|
||||
unlet! g:ale_less_stylelint_executable
|
||||
unlet! g:ale_less_stylelint_use_global
|
||||
unlet! g:ale_less_stylelint_options
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#test#SetFilename('testfile.less')
|
||||
|
||||
runtime ale_linters/less/stylelint.vim
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:executable
|
||||
unlet! b:ale_less_stylelint_executable
|
||||
unlet! b:ale_less_stylelint_use_global
|
||||
unlet! b:ale_less_stylelint_options
|
||||
|
||||
call ale#test#SetFilename('test.txt')
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(node_modules directories should be discovered):
|
||||
call ale#test#SetFilename('stylelint_paths/nested/testfile.less')
|
||||
@@ -35,10 +14,7 @@ Execute(node_modules directories should be discovered):
|
||||
\ . '/stylelint_paths/node_modules/.bin/stylelint'
|
||||
\)
|
||||
|
||||
AssertEqual b:executable, ale_linters#less#stylelint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape(b:executable) . ' --stdin-filename %s',
|
||||
\ ale_linters#less#stylelint#GetCommand(bufnr(''))
|
||||
AssertLinter b:executable, ale#Escape(b:executable) . ' --stdin-filename %s'
|
||||
|
||||
Execute(The global override should work):
|
||||
let b:ale_less_stylelint_executable = 'foobar'
|
||||
@@ -46,15 +22,10 @@ Execute(The global override should work):
|
||||
|
||||
call ale#test#SetFilename('stylelint_paths/nested/testfile.less')
|
||||
|
||||
AssertEqual 'foobar', ale_linters#less#stylelint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' --stdin-filename %s',
|
||||
\ ale_linters#less#stylelint#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' --stdin-filename %s'
|
||||
|
||||
Execute(Extra options should be configurable):
|
||||
let b:ale_less_stylelint_options = '--whatever'
|
||||
|
||||
AssertEqual 'stylelint', ale_linters#less#stylelint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('stylelint') . ' --whatever --stdin-filename %s',
|
||||
\ ale_linters#less#stylelint#GetCommand(bufnr(''))
|
||||
AssertLinter 'stylelint',
|
||||
\ ale#Escape('stylelint') . ' --whatever --stdin-filename %s'
|
||||
|
||||
@@ -1,31 +1,13 @@
|
||||
Before:
|
||||
Save g:ale_less_lessc_executable
|
||||
Save g:ale_less_lessc_use_global
|
||||
Save g:ale_less_lessc_options
|
||||
|
||||
unlet! b:executable
|
||||
|
||||
unlet! g:ale_less_lessc_executable
|
||||
unlet! g:ale_less_lessc_use_global
|
||||
unlet! g:ale_less_lessc_options
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('less', 'lessc')
|
||||
call ale#test#SetFilename('testfile.less')
|
||||
|
||||
runtime ale_linters/less/lessc.vim
|
||||
unlet! b:executable
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:executable
|
||||
unlet! b:ale_less_lessc_executable
|
||||
unlet! b:ale_less_lessc_use_global
|
||||
unlet! b:ale_less_lessc_options
|
||||
|
||||
call ale#test#SetFilename('test.txt')
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(node_modules directories should be discovered):
|
||||
call ale#test#SetFilename('lessc_paths/nested/testfile.less')
|
||||
@@ -35,17 +17,11 @@ Execute(node_modules directories should be discovered):
|
||||
\ . '/lessc_paths/node_modules/.bin/lessc'
|
||||
\)
|
||||
|
||||
AssertEqual
|
||||
\ b:executable,
|
||||
\ ale_linters#less#lessc#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape(b:executable)
|
||||
\ . ' --no-color --lint'
|
||||
\ . ' --include-path='
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/lessc_paths/nested'))
|
||||
\ . ' -',
|
||||
\ ale_linters#less#lessc#GetCommand(bufnr(''))
|
||||
AssertLinter b:executable, ale#Escape(b:executable)
|
||||
\ . ' --no-color --lint'
|
||||
\ . ' --include-path='
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/lessc_paths/nested'))
|
||||
\ . ' -'
|
||||
|
||||
Execute(The global override should work):
|
||||
let b:ale_less_lessc_executable = 'foobar'
|
||||
@@ -53,30 +29,18 @@ Execute(The global override should work):
|
||||
|
||||
call ale#test#SetFilename('lessc_paths/nested/testfile.less')
|
||||
|
||||
AssertEqual
|
||||
\ 'foobar',
|
||||
\ ale_linters#less#lessc#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar')
|
||||
\ . ' --no-color --lint'
|
||||
\ . ' --include-path='
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/lessc_paths/nested'))
|
||||
\ . ' -',
|
||||
\ ale_linters#less#lessc#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar')
|
||||
\ . ' --no-color --lint'
|
||||
\ . ' --include-path='
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/lessc_paths/nested'))
|
||||
\ . ' -'
|
||||
|
||||
Execute(Extra options should be configurable):
|
||||
let b:ale_less_lessc_options = '--whatever'
|
||||
|
||||
AssertEqual
|
||||
\ 'lessc',
|
||||
\ ale_linters#less#lessc#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('lessc')
|
||||
\ . ' --no-color --lint'
|
||||
\ . ' --include-path='
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir))
|
||||
\ . ' --whatever'
|
||||
\ . ' -',
|
||||
\ ale_linters#less#lessc#GetCommand(bufnr(''))
|
||||
AssertLinter 'lessc', ale#Escape('lessc')
|
||||
\ . ' --no-color --lint'
|
||||
\ . ' --include-path='
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir))
|
||||
\ . ' --whatever'
|
||||
\ . ' -'
|
||||
|
||||
@@ -1,48 +1,36 @@
|
||||
Before:
|
||||
Save g:ale_r_lintr_options
|
||||
|
||||
unlet! g:ale_r_lintr_options
|
||||
unlet! b:ale_r_lintr_options
|
||||
|
||||
runtime ale_linters/r/lintr.vim
|
||||
call ale#assert#SetUpLinterTest('r', 'lintr')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:ale_r_lintr_options
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default lintr command should be correct):
|
||||
AssertEqual
|
||||
AssertLinter 'Rscript',
|
||||
\ 'cd ' . ale#Escape(getcwd()) . ' && '
|
||||
\ . 'Rscript --vanilla -e '
|
||||
\ . ale#Escape('suppressPackageStartupMessages(library(lintr));'
|
||||
\ . 'lint(cache = FALSE, commandArgs(TRUE), '
|
||||
\ . 'with_defaults())')
|
||||
\ . ' %t',
|
||||
\ ale_linters#r#lintr#GetCommand(bufnr(''))
|
||||
\ . 'lint(cache = FALSE, commandArgs(TRUE), '
|
||||
\ . 'with_defaults())')
|
||||
\ . ' %t'
|
||||
|
||||
Execute(The lintr options should be configurable):
|
||||
let b:ale_r_lintr_options = 'with_defaults(object_usage_linter = NULL)'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'Rscript',
|
||||
\ 'cd ' . ale#Escape(getcwd()) . ' && '
|
||||
\ . 'Rscript --vanilla -e '
|
||||
\ . ale#Escape('suppressPackageStartupMessages(library(lintr));'
|
||||
\ . 'lint(cache = FALSE, commandArgs(TRUE), '
|
||||
\ . 'with_defaults(object_usage_linter = NULL))')
|
||||
\ . ' %t',
|
||||
\ ale_linters#r#lintr#GetCommand(bufnr(''))
|
||||
\ . 'lint(cache = FALSE, commandArgs(TRUE), '
|
||||
\ . 'with_defaults(object_usage_linter = NULL))')
|
||||
\ . ' %t'
|
||||
|
||||
Execute(If the lint_package flag is set, lintr::lint_package should be called):
|
||||
let b:ale_r_lintr_lint_package = 1
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'Rscript',
|
||||
\ 'cd ' . ale#Escape(getcwd()) . ' && '
|
||||
\ . 'Rscript --vanilla -e '
|
||||
\ . ale#Escape('suppressPackageStartupMessages(library(lintr));'
|
||||
\ . 'lint_package(cache = FALSE, '
|
||||
\ . 'linters = with_defaults())')
|
||||
\ . ' %t',
|
||||
\ ale_linters#r#lintr#GetCommand(bufnr(''))
|
||||
\ . 'lint_package(cache = FALSE, '
|
||||
\ . 'linters = with_defaults())')
|
||||
\ . ' %t'
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
Before:
|
||||
Save g:ale_llvm_llc_executable
|
||||
|
||||
unlet! g:ale_llvm_llc_executable
|
||||
unlet! b:ale_llvm_llc_executable
|
||||
|
||||
runtime ale_linters/llvm/llc.vim
|
||||
call ale#assert#SetUpLinterTest('llvm', 'llc')
|
||||
|
||||
function! AssertHasPrefix(str, prefix) abort
|
||||
let msg = printf("'%s' is expected to be prefixed with '%s'", a:str, a:prefix)
|
||||
@@ -12,28 +7,15 @@ Before:
|
||||
endfunction
|
||||
|
||||
After:
|
||||
unlet! g:ale_llvm_llc_executable
|
||||
unlet! b:ale_llvm_llc_executable
|
||||
delfunction AssertHasPrefix
|
||||
Restore
|
||||
|
||||
Execute(llc command is customizable):
|
||||
let cmd = ale_linters#llvm#llc#GetCommand(bufnr(''))
|
||||
call AssertHasPrefix(cmd, ale#Escape('llc'))
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The llc command should be customizable):
|
||||
AssertLinter 'llc',
|
||||
\ ale#Escape('llc') . ' -filetype=null -o=' . g:ale#util#nul_file
|
||||
|
||||
let g:ale_llvm_llc_executable = 'llc-5.0'
|
||||
let cmd = ale_linters#llvm#llc#GetCommand(bufnr(''))
|
||||
call AssertHasPrefix(cmd, ale#Escape('llc-5.0'))
|
||||
|
||||
let b:ale_llvm_llc_executable = 'llc-4.0'
|
||||
let cmd = ale_linters#llvm#llc#GetCommand(bufnr(''))
|
||||
call AssertHasPrefix(cmd, ale#Escape('llc-4.0'))
|
||||
|
||||
Execute(GetCommand() escapes the returned path):
|
||||
let b:ale_llvm_llc_executable = '/path/space contained/llc'
|
||||
let cmd = ale_linters#llvm#llc#GetCommand(bufnr(''))
|
||||
call AssertHasPrefix(cmd, ale#Escape('/path/space contained/llc'))
|
||||
|
||||
Execute(GetExecutable() does not escape the returned path):
|
||||
let b:ale_llvm_llc_executable = '/path/space contained/llc'
|
||||
AssertEqual ale_linters#llvm#llc#GetExecutable(bufnr('')), '/path/space contained/llc'
|
||||
AssertLinter 'llc-5.0',
|
||||
\ ale#Escape('llc-5.0') . ' -filetype=null -o=' . g:ale#util#nul_file
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
Before:
|
||||
runtime ale_linters/lua/luac.vim
|
||||
call ale#assert#SetUpLinterTest('lua', 'luac')
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual ale#Escape('luac') . ' -p -',
|
||||
\ join(split(ale_linters#lua#luac#GetCommand(1)))
|
||||
AssertLinter 'luac', ale#Escape('luac') . ' -p - '
|
||||
|
||||
Execute(The luac executable should be configurable):
|
||||
let g:ale_lua_luac_executable = 'luac.sh'
|
||||
|
||||
AssertEqual 'luac.sh', ale_linters#lua#luac#GetExecutable(1)
|
||||
AssertEqual ale#Escape('luac.sh') . ' -p -',
|
||||
\ join(split(ale_linters#lua#luac#GetCommand(1)))
|
||||
AssertLinter 'luac.sh', ale#Escape('luac.sh') . ' -p - '
|
||||
|
||||
@@ -1,24 +1,23 @@
|
||||
Before:
|
||||
runtime ale_linters/lua/luacheck.vim
|
||||
call ale#assert#SetUpLinterTest('lua', 'luacheck')
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
let g:ale_lua_luacheck_options = ''
|
||||
let g:ale_lua_luacheck_executable = 'luacheck'
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The lua luacheck command callback should return the correct default string):
|
||||
AssertEqual ale#Escape('luacheck') . ' --formatter plain --codes --filename %s -',
|
||||
\ join(split(ale_linters#lua#luacheck#GetCommand(1)))
|
||||
AssertLinter 'luacheck',
|
||||
\ ale#Escape('luacheck') . ' --formatter plain --codes --filename %s -'
|
||||
|
||||
Execute(The lua luacheck command callback should let you set options):
|
||||
let g:ale_lua_luacheck_options = '--config filename'
|
||||
|
||||
AssertEqual ale#Escape('luacheck') . ' --config filename --formatter plain --codes --filename %s -',
|
||||
\ join(split(ale_linters#lua#luacheck#GetCommand(1)))
|
||||
AssertLinter 'luacheck',
|
||||
\ ale#Escape('luacheck')
|
||||
\ . ' --config filename'
|
||||
\ . ' --formatter plain --codes --filename %s -'
|
||||
|
||||
Execute(The luacheck executable should be configurable):
|
||||
let g:ale_lua_luacheck_executable = 'luacheck.sh'
|
||||
|
||||
AssertEqual 'luacheck.sh', ale_linters#lua#luacheck#GetExecutable(1)
|
||||
AssertEqual ale#Escape('luacheck.sh') . ' --formatter plain --codes --filename %s -',
|
||||
\ join(split(ale_linters#lua#luacheck#GetCommand(1)))
|
||||
AssertLinter 'luacheck.sh',
|
||||
\ ale#Escape('luacheck.sh') . ' --formatter plain --codes --filename %s -'
|
||||
|
||||
@@ -1,35 +1,19 @@
|
||||
Before:
|
||||
Save g:ale_markdown_mdl_executable
|
||||
Save g:ale_markdown_mdl_options
|
||||
|
||||
unlet! g:ale_markdown_mdl_executable
|
||||
unlet! g:ale_markdown_mdl_options
|
||||
|
||||
runtime ale_linters/markdown/mdl.vim
|
||||
call ale#assert#SetUpLinterTest('markdown', 'mdl')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual ale_linters#markdown#mdl#GetExecutable(bufnr('')), 'mdl'
|
||||
AssertEqual
|
||||
\ ale_linters#markdown#mdl#GetCommand(bufnr('')),
|
||||
\ ale#Escape('mdl')
|
||||
AssertLinter 'mdl', ale#Escape('mdl')
|
||||
|
||||
Execute(The executable and options should be configurable):
|
||||
let g:ale_markdown_mdl_executable = 'foo bar'
|
||||
let g:ale_markdown_mdl_options = '--wat'
|
||||
|
||||
AssertEqual ale_linters#markdown#mdl#GetExecutable(bufnr('')), 'foo bar'
|
||||
AssertEqual
|
||||
\ ale_linters#markdown#mdl#GetCommand(bufnr('')),
|
||||
\ ale#Escape('foo bar') . ' --wat'
|
||||
AssertLinter 'foo bar', ale#Escape('foo bar') . ' --wat'
|
||||
|
||||
Execute(Setting bundle appends 'exec mdl'):
|
||||
let g:ale_markdown_mdl_executable = 'path to/bundle'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('path to/bundle') . ' exec mdl',
|
||||
\ ale_linters#markdown#mdl#GetCommand(bufnr(''))
|
||||
AssertLinter 'path to/bundle', ale#Escape('path to/bundle') . ' exec mdl'
|
||||
|
||||
@@ -1,42 +1,25 @@
|
||||
Before:
|
||||
Save g:ale_mercury_mmc_executable
|
||||
Save g:ale_mercury_mmc_options
|
||||
|
||||
unlet! g:ale_mercury_mmc_executable
|
||||
unlet! b:ale_mercury_mmc_executable
|
||||
unlet! g:ale_mercury_mmc_options
|
||||
unlet! b:ale_mercury_mmc_options
|
||||
|
||||
runtime ale_linters/mercury/mmc.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('mercury', 'mmc')
|
||||
call ale#test#SetFilename('dummy')
|
||||
|
||||
After:
|
||||
unlet! b:ale_mercury_mmc_executable
|
||||
unlet! b:ale_mercury_mmc_options
|
||||
|
||||
Restore
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual
|
||||
AssertLinter 'mmc',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . 'mmc --errorcheck-only --make --output-compile-error-lines 100 dummy',
|
||||
\
|
||||
\ ale_linters#mercury#mmc#GetCommand(bufnr(''))
|
||||
\ . 'mmc --errorcheck-only --make --output-compile-error-lines 100 dummy'
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
let b:ale_mercury_mmc_executable = 'foo'
|
||||
AssertEqual
|
||||
|
||||
AssertLinter 'foo',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . 'foo --errorcheck-only --make --output-compile-error-lines 100 dummy',
|
||||
\
|
||||
\ ale_linters#mercury#mmc#GetCommand(bufnr(''))
|
||||
\ . 'foo --errorcheck-only --make --output-compile-error-lines 100 dummy'
|
||||
|
||||
Execute(The options should be configurable):
|
||||
let b:ale_mercury_mmc_options = '--bar'
|
||||
AssertEqual
|
||||
|
||||
AssertLinter 'mmc',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . 'mmc --errorcheck-only --bar dummy',
|
||||
\
|
||||
\ ale_linters#mercury#mmc#GetCommand(bufnr(''))
|
||||
\ . 'mmc --errorcheck-only --bar dummy'
|
||||
|
||||
@@ -1,106 +1,71 @@
|
||||
Before:
|
||||
Save g:ale_python_mypy_executable
|
||||
Save g:ale_python_mypy_options
|
||||
Save g:ale_python_mypy_use_global
|
||||
|
||||
unlet! g:ale_python_mypy_executable
|
||||
unlet! g:ale_python_mypy_options
|
||||
unlet! g:ale_python_mypy_use_global
|
||||
call ale#assert#SetUpLinterTest('python', 'mypy')
|
||||
call ale#test#SetFilename('test.py')
|
||||
|
||||
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
|
||||
|
||||
runtime ale_linters/python/mypy.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#test#SetFilename('test.py')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:bin_dir
|
||||
unlet! b:executable
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The mypy callbacks should return the correct default values):
|
||||
AssertEqual
|
||||
\ 'mypy',
|
||||
\ ale_linters#python#mypy#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'mypy',
|
||||
\ 'cd ' . ale#Escape(g:dir) . ' && ' . ale#Escape('mypy')
|
||||
\ . ' --show-column-numbers '
|
||||
\ . '--shadow-file %s %t %s',
|
||||
\ ale_linters#python#mypy#GetCommand(bufnr(''))
|
||||
\ . '--shadow-file %s %t %s'
|
||||
|
||||
Execute(The mypy executable should be configurable, and escaped properly):
|
||||
let g:ale_python_mypy_executable = 'executable with spaces'
|
||||
|
||||
AssertEqual
|
||||
\ 'executable with spaces',
|
||||
\ ale_linters#python#mypy#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'executable with spaces',
|
||||
\ 'cd ' . ale#Escape(g:dir) . ' && ' . ale#Escape('executable with spaces')
|
||||
\ . ' --show-column-numbers '
|
||||
\ . '--shadow-file %s %t %s',
|
||||
\ ale_linters#python#mypy#GetCommand(bufnr(''))
|
||||
\ . '--shadow-file %s %t %s'
|
||||
|
||||
Execute(The mypy command callback should let you set options):
|
||||
let g:ale_python_mypy_options = '--some-option'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'mypy',
|
||||
\ 'cd ' . ale#Escape(g:dir) . ' && ' . ale#Escape('mypy')
|
||||
\ . ' --show-column-numbers --some-option '
|
||||
\ . '--shadow-file %s %t %s',
|
||||
\ ale_linters#python#mypy#GetCommand(bufnr(''))
|
||||
\ . '--shadow-file %s %t %s'
|
||||
|
||||
Execute(The mypy command should switch directories to the detected project root):
|
||||
silent execute 'file ' . fnameescape(g:dir . '/python_paths/no_virtualenv/subdir/foo/bar.py')
|
||||
|
||||
AssertEqual
|
||||
\ 'mypy',
|
||||
\ ale_linters#python#mypy#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'mypy',
|
||||
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/python_paths/no_virtualenv/subdir'))
|
||||
\ . ' && ' . ale#Escape('mypy')
|
||||
\ . ' --show-column-numbers '
|
||||
\ . '--shadow-file %s %t %s',
|
||||
\ ale_linters#python#mypy#GetCommand(bufnr(''))
|
||||
\ . '--shadow-file %s %t %s'
|
||||
|
||||
Execute(The mypy callbacks should detect virtualenv directories and switch to the project root):
|
||||
silent execute 'file ' . fnameescape(g:dir . '/python_paths/with_virtualenv/subdir/foo/bar.py')
|
||||
|
||||
let b:executable = ale#path#Simplify(g:dir . '/python_paths/with_virtualenv/env/' . b:bin_dir . '/mypy')
|
||||
|
||||
AssertEqual
|
||||
\ b:executable,
|
||||
\ ale_linters#python#mypy#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter b:executable,
|
||||
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/python_paths/with_virtualenv/subdir'))
|
||||
\ . ' && ' . ale#Escape(b:executable)
|
||||
\ . ' --show-column-numbers '
|
||||
\ . '--shadow-file %s %t %s',
|
||||
\ ale_linters#python#mypy#GetCommand(bufnr(''))
|
||||
\ . '--shadow-file %s %t %s'
|
||||
|
||||
Execute(You should able able to use the global mypy instead):
|
||||
silent execute 'file ' . fnameescape(g:dir . '/python_paths/with_virtualenv/subdir/foo/bar.py')
|
||||
let g:ale_python_mypy_use_global = 1
|
||||
|
||||
AssertEqual
|
||||
\ 'mypy',
|
||||
\ ale_linters#python#mypy#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'mypy',
|
||||
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/python_paths/with_virtualenv/subdir'))
|
||||
\ . ' && ' . ale#Escape('mypy')
|
||||
\ . ' --show-column-numbers '
|
||||
\ . '--shadow-file %s %t %s',
|
||||
\ ale_linters#python#mypy#GetCommand(bufnr(''))
|
||||
\ . '--shadow-file %s %t %s'
|
||||
|
||||
Execute(Setting executable to 'pipenv' appends 'run mypy'):
|
||||
let g:ale_python_mypy_executable = 'path/to/pipenv'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'path/to/pipenv',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('path/to/pipenv') . ' run mypy'
|
||||
\ . ' --show-column-numbers --shadow-file %s %t %s',
|
||||
\ ale_linters#python#mypy#GetCommand(bufnr(''))
|
||||
\ . ' --show-column-numbers --shadow-file %s %t %s'
|
||||
|
||||
@@ -1,42 +1,19 @@
|
||||
Before:
|
||||
Save g:ale_tcl_nagelfar_executable
|
||||
Save g:ale_tcl_nagelfar_options
|
||||
|
||||
unlet! g:ale_tcl_nagelfar_executable
|
||||
unlet! b:ale_tcl_nagelfar_executable
|
||||
unlet! g:ale_tcl_nagelfar_options
|
||||
unlet! b:ale_tcl_nagelfar_options
|
||||
|
||||
runtime ale_linters/tcl/nagelfar.vim
|
||||
call ale#assert#SetUpLinterTest('tcl', 'nagelfar')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_tcl_nagelfar_executable
|
||||
unlet! b:ale_tcl_nagelfar_options
|
||||
call ale#linter#Reset()
|
||||
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'nagelfar.tcl', ale_linters#tcl#nagelfar#GetExecutable(bufnr(''))
|
||||
AssertLinter 'nagelfar.tcl', ale#Escape('nagelfar.tcl') . ' %s'
|
||||
|
||||
let b:ale_tcl_nagelfar_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#tcl#nagelfar#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('nagelfar.tcl') . ' %s',
|
||||
\ ale_linters#tcl#nagelfar#GetCommand(bufnr(''))
|
||||
|
||||
let b:ale_tcl_nagelfar_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' %s',
|
||||
\ ale_linters#tcl#nagelfar#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' %s'
|
||||
|
||||
Execute(The options should be configurable):
|
||||
let b:ale_tcl_nagelfar_options = '--something'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('nagelfar.tcl') . ' --something %s',
|
||||
\ ale_linters#tcl#nagelfar#GetCommand(bufnr(''))
|
||||
AssertLinter 'nagelfar.tcl', ale#Escape('nagelfar.tcl') . ' --something %s'
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
Before:
|
||||
Save g:ale_nasm_nasm_executable
|
||||
Save g:ale_nasm_nasm_options
|
||||
|
||||
unlet! g:ale_nasm_nasm_executable
|
||||
unlet! b:ale_nasm_nasm_executable
|
||||
unlet! g:ale_nasm_nasm_options
|
||||
unlet! b:ale_nasm_nasm_options
|
||||
|
||||
runtime ale_linters/nasm/nasm.vim
|
||||
call ale#assert#SetUpLinterTest('nasm', 'nasm')
|
||||
|
||||
let b:command_tail =
|
||||
\ ' -X gnu -I ' . ale#Escape(getcwd() . (has('win32') ? '\' : '/')) . ' %s'
|
||||
@@ -15,38 +7,25 @@ Before:
|
||||
\ ' -X gnu -I ' . ale#Escape(getcwd() . (has('win32') ? '\' : '/')) . ' -w+orphan-labels %s'
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:command_tail_opt
|
||||
unlet! b:ale_nasm_nasm_executable
|
||||
unlet! b:ale_nasm_nasm_options
|
||||
call ale#linter#Reset()
|
||||
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'nasm', ale_linters#nasm#nasm#GetExecutable(bufnr(''))
|
||||
|
||||
let b:ale_nasm_nasm_executable = '/opt/nasm/nasm'
|
||||
|
||||
AssertEqual '/opt/nasm/nasm', ale_linters#nasm#nasm#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('nasm') . b:command_tail,
|
||||
\ ale_linters#nasm#nasm#GetCommand(bufnr(''))
|
||||
AssertLinter 'nasm', ale#Escape('nasm') . b:command_tail,
|
||||
|
||||
let b:ale_nasm_nasm_executable = '~/nasm'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('~/nasm') . b:command_tail,
|
||||
\ ale_linters#nasm#nasm#GetCommand(bufnr(''))
|
||||
AssertLinter '~/nasm', ale#Escape('~/nasm') . b:command_tail
|
||||
|
||||
Execute(The options should be configurable):
|
||||
AssertEqual '', ale_linters#nasm#nasm#GetOptions(bufnr(''))
|
||||
let b:ale_nasm_nasm_options = '-w-macro-params'
|
||||
AssertEqual '-w-macro-params', ale_linters#nasm#nasm#GetOptions(bufnr(''))
|
||||
|
||||
AssertLinter 'nasm', ale#Escape('nasm')
|
||||
\ . ' -X gnu -I ' . ale#Escape(getcwd() . (has('win32') ? '\' : '/')) . ' -w-macro-params %s'
|
||||
|
||||
Execute(The options should be used in command):
|
||||
let b:ale_nasm_nasm_options = '-w+orphan-labels'
|
||||
AssertEqual
|
||||
\ ale#Escape('nasm') . b:command_tail_opt,
|
||||
\ ale_linters#nasm#nasm#GetCommand(bufnr(''))
|
||||
let b:ale_nasm_nasm_options = '-w+orphan-labels'
|
||||
|
||||
AssertLinter 'nasm', ale#Escape('nasm') . b:command_tail_opt
|
||||
|
||||
@@ -1,54 +1,40 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('ocaml', 'ols')
|
||||
|
||||
Save &filetype
|
||||
Save g:ale_ocaml_ols_executable
|
||||
Save g:ale_ocaml_ols_use_global
|
||||
|
||||
let &filetype = 'ocaml'
|
||||
unlet! g:ale_ocaml_ols_executable
|
||||
unlet! g:ale_ocaml_ols_use_global
|
||||
|
||||
runtime ale_linters/ocaml/ols.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The language string should be correct):
|
||||
AssertEqual 'ocaml', ale#handlers#ols#GetLanguage(bufnr(''))
|
||||
AssertLSPLanguage 'ocaml'
|
||||
|
||||
Execute(The default executable should be correct):
|
||||
AssertEqual 'ocaml-language-server', ale#handlers#ols#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('ocaml-language-server') . ' --stdio',
|
||||
\ ale#handlers#ols#GetCommand(bufnr(''))
|
||||
AssertLinter 'ocaml-language-server',
|
||||
\ ale#Escape('ocaml-language-server') . ' --stdio'
|
||||
|
||||
Execute(The project root should be detected correctly):
|
||||
AssertEqual '', ale#handlers#ols#GetProjectRoot(bufnr(''))
|
||||
AssertLSPProject ''
|
||||
|
||||
call ale#test#SetFilename('ols_paths/file.ml')
|
||||
|
||||
AssertEqual
|
||||
\ ale#path#Simplify(g:dir . '/ols_paths'),
|
||||
\ ale#handlers#ols#GetProjectRoot(bufnr(''))
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/ols_paths')
|
||||
|
||||
Execute(The local executable should be used when available):
|
||||
call ale#test#SetFilename('ols_paths/file.ml')
|
||||
|
||||
AssertEqual
|
||||
\ ale#path#Simplify(g:dir . '/ols_paths/node_modules/.bin/ocaml-language-server'),
|
||||
\ ale#handlers#ols#GetExecutable(bufnr(''))
|
||||
AssertLinter ale#path#Simplify(g:dir . '/ols_paths/node_modules/.bin/ocaml-language-server'),
|
||||
\ ale#Escape(ale#path#Simplify(g:dir . '/ols_paths/node_modules/.bin/ocaml-language-server')) . ' --stdio'
|
||||
|
||||
Execute(The gloabl executable should always be used when use_global is set):
|
||||
let g:ale_ocaml_ols_use_global = 1
|
||||
call ale#test#SetFilename('ols_paths/file.ml')
|
||||
|
||||
AssertEqual 'ocaml-language-server', ale#handlers#ols#GetExecutable(bufnr(''))
|
||||
AssertLinter 'ocaml-language-server',
|
||||
\ ale#Escape('ocaml-language-server') . ' --stdio'
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
let g:ale_ocaml_ols_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale#handlers#ols#GetExecutable(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' --stdio'
|
||||
|
||||
@@ -1,37 +1,14 @@
|
||||
Before:
|
||||
Save g:ale_perl_perl_executable
|
||||
Save g:ale_perl_perl_options
|
||||
|
||||
unlet! g:ale_perl_perl_executable
|
||||
unlet! g:ale_perl_perl_options
|
||||
|
||||
runtime ale_linters/perl/perl.vim
|
||||
call ale#assert#SetUpLinterTest('perl', 'perl')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:ale_perl_perl_executable
|
||||
unlet! b:ale_perl_perl_options
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default Perl command callback should be correct):
|
||||
AssertEqual
|
||||
\ 'perl',
|
||||
\ ale_linters#perl#perl#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('perl') . ' -c -Mwarnings -Ilib %t',
|
||||
\ ale_linters#perl#perl#GetCommand(bufnr(''))
|
||||
AssertLinter 'perl', ale#Escape('perl') . ' -c -Mwarnings -Ilib %t'
|
||||
|
||||
Execute(Overriding the executable and command should work):
|
||||
let b:ale_perl_perl_executable = 'foobar'
|
||||
let b:ale_perl_perl_options = '-w'
|
||||
|
||||
AssertEqual
|
||||
\ 'foobar',
|
||||
\ ale_linters#perl#perl#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' -w %t',
|
||||
\ ale_linters#perl#perl#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' -w %t'
|
||||
|
||||
@@ -1,67 +1,36 @@
|
||||
Before:
|
||||
Save g:ale_perl_perlcritic_profile
|
||||
Save g:ale_perl_perlcritic_options
|
||||
Save g:ale_perl_perlcritic_executable
|
||||
Save g:ale_perl_perlcritic_showrules
|
||||
|
||||
unlet! g:ale_perl_perlcritic_options
|
||||
unlet! g:ale_perl_perlcritic_executable
|
||||
unlet! g:ale_perl_perlcritic_showrules
|
||||
call ale#assert#SetUpLinterTest('perl', 'perlcritic')
|
||||
call ale#test#SetFilename('test.pl')
|
||||
let g:ale_perl_perlcritic_profile = ''
|
||||
|
||||
runtime ale_linters/perl/perlcritic.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#test#SetFilename('test.pl')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:ale_perl_perlcritic_profile
|
||||
unlet! b:ale_perl_perlcritic_options
|
||||
unlet! b:ale_perl_perlcritic_executable
|
||||
unlet! b:ale_perl_perlcritic_showrules
|
||||
unlet! b:readme_path
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The command should be correct with g:ale_perl_perlcritic_showrules off):
|
||||
let b:ale_perl_perlcritic_showrules = 0
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('perlcritic')
|
||||
\ . ' --verbose ' . ale#Escape('%l:%c %m\n')
|
||||
\ . ' --nocolor',
|
||||
\ ale_linters#perl#perlcritic#GetCommand(bufnr(''))
|
||||
AssertLinter 'perlcritic', ale#Escape('perlcritic')
|
||||
\ . ' --verbose ' . ale#Escape('%l:%c %m\n') . ' --nocolor'
|
||||
|
||||
Execute(The command should be correct with g:ale_perl_perlcritic_showrules on):
|
||||
let b:ale_perl_perlcritic_showrules = 1
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('perlcritic')
|
||||
\ . ' --verbose ' . ale#Escape('%l:%c %m [%p]\n')
|
||||
\ . ' --nocolor',
|
||||
\ ale_linters#perl#perlcritic#GetCommand(bufnr(''))
|
||||
AssertLinter 'perlcritic', ale#Escape('perlcritic')
|
||||
\ . ' --verbose ' . ale#Escape('%l:%c %m [%p]\n') . ' --nocolor'
|
||||
|
||||
Execute(The command search for the profile file when set):
|
||||
let b:ale_perl_perlcritic_profile = 'README.md'
|
||||
|
||||
let b:readme_path = ale#path#Simplify(expand('%:p:h:h:h') . '/README.md')
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('perlcritic')
|
||||
\ . ' --verbose ' . ale#Escape('%l:%c %m\n')
|
||||
\ . ' --nocolor'
|
||||
\ . ' --profile ' . ale#Escape(b:readme_path),
|
||||
\ ale_linters#perl#perlcritic#GetCommand(bufnr(''))
|
||||
AssertLinter 'perlcritic', ale#Escape('perlcritic')
|
||||
\ . ' --verbose ' . ale#Escape('%l:%c %m\n') . ' --nocolor'
|
||||
\ . ' --profile ' . ale#Escape(b:readme_path)
|
||||
|
||||
Execute(Extra options should be set appropriately):
|
||||
let b:ale_perl_perlcritic_options = 'beep boop'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('perlcritic')
|
||||
\ . ' --verbose ' . ale#Escape('%l:%c %m\n')
|
||||
\ . ' --nocolor'
|
||||
\ . ' beep boop',
|
||||
\ ale_linters#perl#perlcritic#GetCommand(bufnr(''))
|
||||
AssertLinter 'perlcritic', ale#Escape('perlcritic')
|
||||
\ . ' --verbose ' . ale#Escape('%l:%c %m\n') . ' --nocolor'
|
||||
\ . ' beep boop'
|
||||
|
||||
@@ -1,49 +1,29 @@
|
||||
Before:
|
||||
Save g:ale_php_langserver_executable
|
||||
Save g:ale_php_langserver_config_path
|
||||
Save g:ale_php_langserver_use_global
|
||||
|
||||
unlet! g:ale_php_langserver_executable
|
||||
unlet! g:ale_php_langserver_config_path
|
||||
unlet! g:ale_php_langserver_use_global
|
||||
|
||||
runtime ale_linters/php/langserver.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('php', 'langserver')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
if isdirectory(g:dir . '/.git')
|
||||
call delete(g:dir . '/.git', 'd')
|
||||
endif
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default executable path should be correct):
|
||||
AssertEqual
|
||||
\ 'php-language-server.php',
|
||||
\ ale_linters#php#langserver#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ 'php ' . ale#Escape('php-language-server.php'),
|
||||
\ ale_linters#php#langserver#GetCommand(bufnr(''))
|
||||
AssertLinter 'php-language-server.php',
|
||||
\ 'php ' . ale#Escape('php-language-server.php')
|
||||
|
||||
Execute(Vendor executables should be detected):
|
||||
call ale#test#SetFilename('php-langserver-project/test.php')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter
|
||||
\ ale#path#Simplify(g:dir . '/php-langserver-project/vendor/bin/php-language-server.php'),
|
||||
\ ale_linters#php#langserver#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ 'php ' . ale#Escape(ale#path#Simplify(
|
||||
\ g:dir
|
||||
\ . '/php-langserver-project/vendor/bin/php-language-server.php'
|
||||
\ )),
|
||||
\ ale_linters#php#langserver#GetCommand(bufnr(''))
|
||||
\ ))
|
||||
|
||||
Execute(The project path should be correct for .git directories):
|
||||
call ale#test#SetFilename('php-langserver-project/test.php')
|
||||
call mkdir(g:dir . '/.git')
|
||||
|
||||
AssertEqual g:dir, ale_linters#php#langserver#GetProjectRoot(bufnr(''))
|
||||
AssertLSPProject g:dir
|
||||
|
||||
@@ -1,20 +1,12 @@
|
||||
Before:
|
||||
Save g:ale_php_phpmd_executable
|
||||
|
||||
unlet! g:ale_php_phpmd_executable
|
||||
|
||||
runtime ale_linters/php/phpmd.vim
|
||||
call ale#assert#SetUpLinterTest('php', 'phpmd')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Custom executables should be used for the executable and command):
|
||||
let g:ale_php_phpmd_executable = 'phpmd_test'
|
||||
|
||||
AssertEqual 'phpmd_test', ale_linters#php#phpmd#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'phpmd_test',
|
||||
\ ale#Escape('phpmd_test')
|
||||
\ . ' %s text cleancode,codesize,controversial,design,naming,unusedcode --ignore-violations-on-exit %t',
|
||||
\ ale_linters#php#phpmd#GetCommand(bufnr(''))
|
||||
\ . ' %s text cleancode,codesize,controversial,design,naming,unusedcode --ignore-violations-on-exit %t'
|
||||
|
||||
@@ -1,38 +1,24 @@
|
||||
Before:
|
||||
Save g:ale_php_phpstan_executable
|
||||
Save g:ale_php_phpstan_level
|
||||
Save g:ale_php_phpstan_configuration
|
||||
|
||||
unlet! g:ale_php_phpstan_executable
|
||||
unlet! g:ale_php_phpstan_level
|
||||
unlet! g:ale_php_phpstan_configuration
|
||||
|
||||
runtime ale_linters/php/phpstan.vim
|
||||
call ale#assert#SetUpLinterTest('php', 'phpstan')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Custom executables should be used for the executable and command):
|
||||
let g:ale_php_phpstan_executable = 'phpstan_test'
|
||||
|
||||
AssertEqual 'phpstan_test', ale_linters#php#phpstan#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('phpstan_test') . ' analyze -l4 --errorFormat raw %s',
|
||||
\ ale_linters#php#phpstan#GetCommand(bufnr(''))
|
||||
AssertLinter 'phpstan_test',
|
||||
\ ale#Escape('phpstan_test') . ' analyze -l4 --errorFormat raw %s'
|
||||
|
||||
Execute(project with level set to 3):
|
||||
call ale#test#SetFilename('phpstan-test-files/foo/test.php')
|
||||
let g:ale_php_phpstan_level = 3
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('phpstan') . ' analyze -l3 --errorFormat raw %s',
|
||||
\ ale_linters#php#phpstan#GetCommand(bufnr(''))
|
||||
AssertLinter 'phpstan',
|
||||
\ ale#Escape('phpstan') . ' analyze -l3 --errorFormat raw %s'
|
||||
|
||||
Execute(Custom phpstan configuration file):
|
||||
let g:ale_php_phpstan_configuration = 'phpstan_config'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('phpstan') . ' analyze -l4 --errorFormat raw -c phpstan_config %s',
|
||||
\ ale_linters#php#phpstan#GetCommand(bufnr(''))
|
||||
AssertLinter 'phpstan',
|
||||
\ ale#Escape('phpstan') . ' analyze -l4 --errorFormat raw -c phpstan_config %s'
|
||||
|
||||
@@ -1,23 +1,12 @@
|
||||
Before:
|
||||
Save g:ale_pony_ponyc_options
|
||||
|
||||
unlet! g:ale_pony_ponyc_options
|
||||
unlet! b:ale_pony_ponyc_options
|
||||
|
||||
runtime ale_linters/pony/ponyc.vim
|
||||
call ale#assert#SetUpLinterTest('pony', 'ponyc')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:ale_pony_ponyc_options
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The options should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('ponyc') . ' --pass paint',
|
||||
\ ale_linters#pony#ponyc#GetCommand(bufnr(''))
|
||||
AssertLinter 'ponyc', ale#Escape('ponyc') . ' --pass paint'
|
||||
|
||||
let b:ale_pony_ponyc_options = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('ponyc') . ' foobar',
|
||||
\ ale_linters#pony#ponyc#GetCommand(bufnr(''))
|
||||
AssertLinter 'ponyc', ale#Escape('ponyc') . ' foobar'
|
||||
|
||||
@@ -1,23 +1,12 @@
|
||||
Before:
|
||||
Save g:ale_python_mypy_executable
|
||||
Save g:ale_python_mypy_options
|
||||
|
||||
unlet! g:ale_python_mypy_executable
|
||||
unlet! g:ale_python_mypy_options
|
||||
|
||||
runtime ale_linters/python/prospector.vim
|
||||
call ale#assert#SetUpLinterTest('python', 'prospector')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:executable
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Setting executable to 'pipenv' appends 'run prospector'):
|
||||
let g:ale_python_prospector_executable = 'path/to/pipenv'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'path/to/pipenv',
|
||||
\ ale#Escape('path/to/pipenv') . ' run prospector'
|
||||
\ . ' --messages-only --absolute-paths --zero-exit --output-format json %s',
|
||||
\ ale_linters#python#prospector#GetCommand(bufnr(''))
|
||||
\ . ' --messages-only --absolute-paths --zero-exit --output-format json %s'
|
||||
|
||||
@@ -1,21 +1,16 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('proto', 'protoc_gen_lint')
|
||||
call ale#test#SetFilename('test.proto')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:ale_proto_protoc_gen_lint_options
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual
|
||||
\ 'protoc' . ' -I ' . ale#Escape(getcwd()) . ' --lint_out=. ' . '%s',
|
||||
\ ale_linters#proto#protoc_gen_lint#GetCommand(bufnr(''))
|
||||
AssertLinter 'protoc',
|
||||
\ 'protoc' . ' -I ' . ale#Escape(getcwd()) . ' --lint_out=. ' . '%s'
|
||||
|
||||
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(''))
|
||||
AssertLinter 'protoc',
|
||||
\ 'protoc' . ' -I ' . ale#Escape(getcwd()) . ' --some-option --lint_out=. ' . '%s'
|
||||
|
||||
@@ -1,71 +1,48 @@
|
||||
Before:
|
||||
Save g:ale_pug_puglint_options
|
||||
Save g:ale_pug_puglint_executable
|
||||
Save g:ale_pug_puglint_use_global
|
||||
|
||||
let g:ale_pug_puglint_options = ''
|
||||
let g:ale_pug_puglint_executable = 'pug-lint'
|
||||
let g:ale_pug_puglint_use_global = 0
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
runtime ale_linters/pug/puglint.vim
|
||||
call ale#assert#SetUpLinterTest('pug', 'puglint')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(puglint should detect local executables and package.json):
|
||||
call ale#test#SetFilename('puglint_project/test.pug')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter
|
||||
\ ale#path#Simplify(g:dir . '/puglint_project/node_modules/.bin/pug-lint'),
|
||||
\ ale_linters#pug#puglint#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape(ale#path#Simplify(g:dir . '/puglint_project/node_modules/.bin/pug-lint'))
|
||||
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/puglint_project/package.json'))
|
||||
\ . ' -r inline %t',
|
||||
\ ale_linters#pug#puglint#GetCommand(bufnr(''))
|
||||
\ . ' -r inline %t'
|
||||
|
||||
Execute(puglint should use global executables if configured):
|
||||
let g:ale_pug_puglint_use_global = 1
|
||||
|
||||
call ale#test#SetFilename('puglint_project/test.pug')
|
||||
|
||||
AssertEqual 'pug-lint', ale_linters#pug#puglint#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'pug-lint',
|
||||
\ ale#Escape('pug-lint')
|
||||
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/puglint_project/package.json'))
|
||||
\ . ' -r inline %t',
|
||||
\ ale_linters#pug#puglint#GetCommand(bufnr(''))
|
||||
\ . ' -r inline %t'
|
||||
|
||||
Execute(puglint should detect .pug-lintrc):
|
||||
call ale#test#SetFilename('puglint_project/puglint_rc_dir/subdir/test.pug')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter ale#path#Simplify(g:dir . '/puglint_project/node_modules/.bin/pug-lint'),
|
||||
\ ale#Escape(ale#path#Simplify(g:dir . '/puglint_project/node_modules/.bin/pug-lint'))
|
||||
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/puglint_project/puglint_rc_dir/.pug-lintrc'))
|
||||
\ . ' -r inline %t',
|
||||
\ ale_linters#pug#puglint#GetCommand(bufnr(''))
|
||||
\ . ' -r inline %t'
|
||||
|
||||
Execute(puglint should detect .pug-lintrc.js):
|
||||
call ale#test#SetFilename('puglint_project/puglint_rc_js_dir/subdir/test.pug')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter ale#path#Simplify(g:dir . '/puglint_project/node_modules/.bin/pug-lint'),
|
||||
\ ale#Escape(ale#path#Simplify(g:dir . '/puglint_project/node_modules/.bin/pug-lint'))
|
||||
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/puglint_project/puglint_rc_js_dir/.pug-lintrc.js'))
|
||||
\ . ' -r inline %t',
|
||||
\ ale_linters#pug#puglint#GetCommand(bufnr(''))
|
||||
\ . ' -r inline %t'
|
||||
|
||||
Execute(puglint should detect .pug-lintrc.json):
|
||||
call ale#test#SetFilename('puglint_project/puglint_rc_json_dir/subdir/test.pug')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter ale#path#Simplify(g:dir . '/puglint_project/node_modules/.bin/pug-lint'),
|
||||
\ ale#Escape(ale#path#Simplify(g:dir . '/puglint_project/node_modules/.bin/pug-lint'))
|
||||
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/puglint_project/puglint_rc_json_dir/.pug-lintrc.json'))
|
||||
\ . ' -r inline %t',
|
||||
\ ale_linters#pug#puglint#GetCommand(bufnr(''))
|
||||
\ . ' -r inline %t'
|
||||
|
||||
@@ -1,34 +1,26 @@
|
||||
Before:
|
||||
Save g:ale_python_pycodestyle_executable
|
||||
Save g:ale_python_pycodestyle_options
|
||||
Save g:ale_python_pycodestyle_use_global
|
||||
|
||||
runtime ale_linters/python/pycodestyle.vim
|
||||
call ale#assert#SetUpLinterTest('python', 'pycodestyle')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The pycodestyle command callback should return default string):
|
||||
AssertEqual ale#Escape('pycodestyle') . ' -',
|
||||
\ ale_linters#python#pycodestyle#GetCommand(bufnr(''))
|
||||
AssertLinter 'pycodestyle', ale#Escape('pycodestyle') . ' -'
|
||||
|
||||
Execute(The pycodestyle command callback should allow options):
|
||||
let g:ale_python_pycodestyle_options = '--exclude=test*.py'
|
||||
|
||||
AssertEqual ale#Escape('pycodestyle') . ' --exclude=test*.py -',
|
||||
\ ale_linters#python#pycodestyle#GetCommand(bufnr(''))
|
||||
AssertLinter 'pycodestyle',
|
||||
\ ale#Escape('pycodestyle') . ' --exclude=test*.py -'
|
||||
|
||||
Execute(The pycodestyle executable should be configurable):
|
||||
let g:ale_python_pycodestyle_executable = '~/.local/bin/pycodestyle'
|
||||
|
||||
AssertEqual ale#Escape('~/.local/bin/pycodestyle') . ' -',
|
||||
\ ale_linters#python#pycodestyle#GetCommand(bufnr(''))
|
||||
AssertLinter '~/.local/bin/pycodestyle',
|
||||
\ ale#Escape('~/.local/bin/pycodestyle') . ' -'
|
||||
|
||||
Execute(Setting executable to 'pipenv' appends 'run pycodestyle'):
|
||||
let g:ale_python_pycodestyle_executable = 'path/to/pipenv'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('path/to/pipenv') . ' run pycodestyle -',
|
||||
\ ale_linters#python#pycodestyle#GetCommand(bufnr(''))
|
||||
AssertLinter 'path/to/pipenv',
|
||||
\ ale#Escape('path/to/pipenv') . ' run pycodestyle -'
|
||||
|
||||
@@ -1,34 +1,20 @@
|
||||
Before:
|
||||
Save g:ale_python_pyflakes_executable
|
||||
Save g:ale_python_pyflakes_use_global
|
||||
|
||||
unlet! g:ale_python_pyflakes_executable
|
||||
unlet! g:ale_python_pyflakes_use_global
|
||||
|
||||
call ale#assert#SetUpLinterTest('python', 'pyflakes')
|
||||
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
runtime ale_linters/python/pyflakes.vim
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:bin_dir
|
||||
unlet! b:executable
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The pyflakes command callback should return default string):
|
||||
AssertEqual ale#Escape('pyflakes') . ' %t',
|
||||
\ ale_linters#python#pyflakes#GetCommand(bufnr(''))
|
||||
AssertLinter 'pyflakes', ale#Escape('pyflakes') . ' %t'
|
||||
|
||||
Execute(The pyflakes executable should be configurable):
|
||||
let g:ale_python_pyflakes_executable = '~/.local/bin/pyflakes'
|
||||
|
||||
AssertEqual ale#Escape('~/.local/bin/pyflakes') . ' %t',
|
||||
\ ale_linters#python#pyflakes#GetCommand(bufnr(''))
|
||||
AssertLinter '~/.local/bin/pyflakes',
|
||||
\ ale#Escape('~/.local/bin/pyflakes') . ' %t'
|
||||
|
||||
Execute(The pyflakes executable should be run from the virtualenv path):
|
||||
call ale#test#SetFilename('python_paths/with_virtualenv/subdir/foo/bar.py')
|
||||
@@ -37,20 +23,17 @@ Execute(The pyflakes executable should be run from the virtualenv path):
|
||||
\ g:dir . '/python_paths/with_virtualenv/env/' . b:bin_dir . '/pyflakes'
|
||||
\)
|
||||
|
||||
AssertEqual ale#Escape(b:executable) . ' %t',
|
||||
\ ale_linters#python#pyflakes#GetCommand(bufnr(''))
|
||||
AssertLinter b:executable, ale#Escape(b:executable) . ' %t'
|
||||
|
||||
Execute(You should be able to override the pyflakes virtualenv lookup):
|
||||
call ale#test#SetFilename('python_paths/with_virtualenv/subdir/foo/bar.py')
|
||||
|
||||
let g:ale_python_pyflakes_use_global = 1
|
||||
|
||||
AssertEqual ale#Escape('pyflakes') . ' %t',
|
||||
\ ale_linters#python#pyflakes#GetCommand(bufnr(''))
|
||||
AssertLinter 'pyflakes', ale#Escape('pyflakes') . ' %t'
|
||||
|
||||
Execute(Setting executable to 'pipenv' appends 'run pyflakes'):
|
||||
let g:ale_python_pyflakes_executable = 'path/to/pipenv'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'path/to/pipenv',
|
||||
\ ale#Escape('path/to/pipenv') . ' run pyflakes %t',
|
||||
\ ale_linters#python#pyflakes#GetCommand(bufnr(''))
|
||||
|
||||
@@ -1,79 +1,46 @@
|
||||
Before:
|
||||
Save g:ale_python_pylint_executable
|
||||
Save g:ale_python_pylint_options
|
||||
Save g:ale_python_pylint_use_global
|
||||
Save g:ale_python_pylint_change_directory
|
||||
|
||||
unlet! g:ale_python_pylint_executable
|
||||
unlet! g:ale_python_pylint_options
|
||||
unlet! g:ale_python_pylint_use_global
|
||||
unlet! g:ale_python_pylint_change_directory
|
||||
|
||||
runtime ale_linters/python/pylint.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('python', 'pylint')
|
||||
|
||||
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
|
||||
|
||||
let b:command_tail = ' --output-format text --msg-template="{path}:{line}:{column}: {msg_id} ({symbol}) {msg}" --reports n %s'
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
|
||||
unlet! b:bin_dir
|
||||
unlet! b:executable
|
||||
unlet! b:command_tail
|
||||
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The pylint callbacks should return the correct default values):
|
||||
AssertEqual
|
||||
\ 'pylint',
|
||||
\ ale_linters#python#pylint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'pylint',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('pylint') . ' ' . b:command_tail,
|
||||
\ ale_linters#python#pylint#GetCommand(bufnr(''))
|
||||
\ . ale#Escape('pylint') . ' ' . b:command_tail
|
||||
|
||||
Execute(The option for disabling changing directories should work):
|
||||
let g:ale_python_pylint_change_directory = 0
|
||||
|
||||
AssertEqual
|
||||
\ 'pylint',
|
||||
\ ale_linters#python#pylint#GetExecutable(bufnr(''))
|
||||
\
|
||||
AssertEqual
|
||||
\ ale#Escape('pylint') . ' ' . b:command_tail,
|
||||
\ ale_linters#python#pylint#GetCommand(bufnr(''))
|
||||
AssertLinter 'pylint', ale#Escape('pylint') . ' ' . b:command_tail
|
||||
|
||||
Execute(The pylint executable should be configurable, and escaped properly):
|
||||
let g:ale_python_pylint_executable = 'executable with spaces'
|
||||
|
||||
AssertEqual
|
||||
\ 'executable with spaces',
|
||||
\ ale_linters#python#pylint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'executable with spaces',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('executable with spaces') . ' ' . b:command_tail,
|
||||
\ ale_linters#python#pylint#GetCommand(bufnr(''))
|
||||
\ . ale#Escape('executable with spaces') . ' ' . b:command_tail
|
||||
|
||||
Execute(The pylint command callback should let you set options):
|
||||
let g:ale_python_pylint_options = '--some-option'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'pylint',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('pylint') . ' --some-option' . b:command_tail,
|
||||
\ ale_linters#python#pylint#GetCommand(bufnr(''))
|
||||
\ . ale#Escape('pylint') . ' --some-option' . b:command_tail
|
||||
|
||||
Execute(The pylint callbacks shouldn't detect virtualenv directories where they don't exist):
|
||||
silent execute 'file ' . fnameescape(g:dir . '/python_paths/no_virtualenv/subdir/foo/bar.py')
|
||||
|
||||
AssertEqual
|
||||
\ 'pylint',
|
||||
\ ale_linters#python#pylint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'pylint',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('pylint') . ' ' . b:command_tail,
|
||||
\ ale_linters#python#pylint#GetCommand(bufnr(''))
|
||||
\ . ale#Escape('pylint') . ' ' . b:command_tail
|
||||
|
||||
Execute(The pylint callbacks should detect virtualenv directories):
|
||||
silent execute 'file ' . fnameescape(g:dir . '/python_paths/with_virtualenv/subdir/foo/bar.py')
|
||||
@@ -82,32 +49,22 @@ Execute(The pylint callbacks should detect virtualenv directories):
|
||||
\ g:dir . '/python_paths/with_virtualenv/env/' . b:bin_dir . '/pylint'
|
||||
\)
|
||||
|
||||
AssertEqual
|
||||
\ b:executable,
|
||||
\ ale_linters#python#pylint#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
AssertLinter b:executable,
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape(b:executable) . ' ' . b:command_tail,
|
||||
\ ale_linters#python#pylint#GetCommand(bufnr(''))
|
||||
\ . ale#Escape(b:executable) . ' ' . b:command_tail
|
||||
|
||||
Execute(You should able able to use the global pylint instead):
|
||||
silent execute 'file ' . fnameescape(g:dir . '/python_paths/with_virtualenv/subdir/foo/bar.py')
|
||||
let g:ale_python_pylint_use_global = 1
|
||||
|
||||
AssertEqual
|
||||
\ 'pylint',
|
||||
\ ale_linters#python#pylint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'pylint',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('pylint') . ' ' . b:command_tail,
|
||||
\ ale_linters#python#pylint#GetCommand(bufnr(''))
|
||||
\ . ale#Escape('pylint') . ' ' . b:command_tail
|
||||
|
||||
Execute(Setting executable to 'pipenv' appends 'run pylint'):
|
||||
let g:ale_python_pylint_executable = 'path/to/pipenv'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'path/to/pipenv',
|
||||
\ ale#path#BufferCdString(bufnr(''))
|
||||
\ . ale#Escape('path/to/pipenv') . ' run pylint'
|
||||
\ . ' --output-format text --msg-template="{path}:{line}:{column}: {msg_id} ({symbol}) {msg}" --reports n %s',
|
||||
\ ale_linters#python#pylint#GetCommand(bufnr(''))
|
||||
\ . ' --output-format text --msg-template="{path}:{line}:{column}: {msg_id} ({symbol}) {msg}" --reports n %s'
|
||||
|
||||
@@ -1,34 +1,21 @@
|
||||
Before:
|
||||
Save g:ale_python_pyls_executable
|
||||
Save g:ale_python_pyls_use_global
|
||||
|
||||
unlet! g:ale_python_pyls_executable
|
||||
unlet! g:ale_python_pyls_use_global
|
||||
call ale#assert#SetUpLinterTest('python', 'pyls')
|
||||
|
||||
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
runtime ale_linters/python/pyls.vim
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:bin_dir
|
||||
unlet! b:executable
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The pyls command callback should return default string):
|
||||
AssertEqual ale#Escape('pyls'),
|
||||
\ ale_linters#python#pyls#GetCommand(bufnr(''))
|
||||
AssertLinter 'pyls', ale#Escape('pyls')
|
||||
|
||||
Execute(The pyls executable should be configurable):
|
||||
let g:ale_python_pyls_executable = '~/.local/bin/pyls'
|
||||
|
||||
AssertEqual ale#Escape('~/.local/bin/pyls'),
|
||||
\ ale_linters#python#pyls#GetCommand(bufnr(''))
|
||||
AssertLinter '~/.local/bin/pyls' , ale#Escape('~/.local/bin/pyls')
|
||||
|
||||
Execute(The pyls executable should be run from the virtualenv path):
|
||||
call ale#test#SetFilename('python_paths/with_virtualenv/subdir/foo/bar.py')
|
||||
@@ -45,12 +32,9 @@ Execute(You should be able to override the pyls virtualenv lookup):
|
||||
|
||||
let g:ale_python_pyls_use_global = 1
|
||||
|
||||
AssertEqual ale#Escape('pyls'),
|
||||
\ ale_linters#python#pyls#GetCommand(bufnr(''))
|
||||
AssertLinter 'pyls', ale#Escape('pyls')
|
||||
|
||||
Execute(Setting executable to 'pipenv' appends 'run pyls'):
|
||||
let g:ale_python_pyls_executable = 'path/to/pipenv'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('path/to/pipenv') . ' run pyls',
|
||||
\ ale_linters#python#pyls#GetCommand(bufnr(''))
|
||||
AssertLinter 'path/to/pipenv', ale#Escape('path/to/pipenv') . ' run pyls'
|
||||
|
||||
@@ -1,34 +1,20 @@
|
||||
Before:
|
||||
Save g:ale_python_pyre_executable
|
||||
Save g:ale_python_pyre_use_global
|
||||
|
||||
unlet! g:ale_python_pyre_executable
|
||||
unlet! g:ale_python_pyre_use_global
|
||||
|
||||
call ale#assert#SetUpLinterTest('python', 'pyre')
|
||||
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
runtime ale_linters/python/pyre.vim
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:bin_dir
|
||||
unlet! b:executable
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The pyre command callback should return default string):
|
||||
AssertEqual ale#Escape('pyre') . ' persistent',
|
||||
\ ale_linters#python#pyre#GetCommand(bufnr(''))
|
||||
AssertLinter 'pyre', ale#Escape('pyre') . ' persistent'
|
||||
|
||||
Execute(The pyre executable should be configurable):
|
||||
let g:ale_python_pyre_executable = '~/.local/bin/pyre'
|
||||
|
||||
AssertEqual ale#Escape('~/.local/bin/pyre') . ' persistent',
|
||||
\ ale_linters#python#pyre#GetCommand(bufnr(''))
|
||||
AssertLinter '~/.local/bin/pyre',
|
||||
\ ale#Escape('~/.local/bin/pyre') . ' persistent'
|
||||
|
||||
Execute(The pyre executable should be run from the virtualenv path):
|
||||
call ale#test#SetFilename('python_paths/with_virtualenv/subdir/foo/bar.py')
|
||||
@@ -37,20 +23,17 @@ Execute(The pyre executable should be run from the virtualenv path):
|
||||
\ g:dir . '/python_paths/with_virtualenv/env/' . b:bin_dir . '/pyre'
|
||||
\)
|
||||
|
||||
AssertEqual ale#Escape(b:executable) . ' persistent',
|
||||
\ ale_linters#python#pyre#GetCommand(bufnr(''))
|
||||
AssertLinter b:executable, ale#Escape(b:executable) . ' persistent'
|
||||
|
||||
Execute(You should be able to override the pyre virtualenv lookup):
|
||||
call ale#test#SetFilename('python_paths/with_virtualenv/subdir/foo/bar.py')
|
||||
|
||||
let g:ale_python_pyre_use_global = 1
|
||||
|
||||
AssertEqual ale#Escape('pyre') . ' persistent',
|
||||
\ ale_linters#python#pyre#GetCommand(bufnr(''))
|
||||
AssertLinter 'pyre', ale#Escape('pyre') . ' persistent'
|
||||
|
||||
Execute(Setting executable to 'pipenv' appends 'run pyre'):
|
||||
let g:ale_python_pyre_executable = 'path/to/pipenv'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('path/to/pipenv') . ' run pyre persistent',
|
||||
\ ale_linters#python#pyre#GetCommand(bufnr(''))
|
||||
AssertLinter 'path/to/pipenv',
|
||||
\ ale#Escape('path/to/pipenv') . ' run pyre persistent'
|
||||
|
||||
@@ -1,50 +1,30 @@
|
||||
Before:
|
||||
Save g:ale_pyrex_cython_executable
|
||||
Save g:ale_pyrex_cython_options
|
||||
|
||||
unlet! g:ale_pyrex_cython_executable
|
||||
unlet! b:ale_pyrex_cython_executable
|
||||
unlet! g:ale_pyrex_cython_options
|
||||
unlet! b:ale_pyrex_cython_options
|
||||
|
||||
runtime ale_linters/pyrex/cython.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('pyrex', 'cython')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:ale_pyrex_cython_options
|
||||
unlet! b:ale_pyrex_cython_executable
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default cython command should be correct):
|
||||
AssertEqual
|
||||
\ ale#Escape('cython')
|
||||
AssertLinter 'cython', ale#Escape('cython')
|
||||
\ . ' --working ' . ale#Escape(g:dir)
|
||||
\ . ' --include-dir ' . ale#Escape(g:dir)
|
||||
\ . ' --warning-extra'
|
||||
\ . ' --output-file ' . g:ale#util#nul_file . ' %t',
|
||||
\ ale_linters#pyrex#cython#GetCommand(bufnr(''))
|
||||
\ . ' --output-file ' . g:ale#util#nul_file . ' %t'
|
||||
|
||||
Execute(The cython executable should be configurable):
|
||||
let b:ale_pyrex_cython_executable = 'cython_foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('cython_foobar')
|
||||
AssertLinter 'cython_foobar', ale#Escape('cython_foobar')
|
||||
\ . ' --working ' . ale#Escape(g:dir)
|
||||
\ . ' --include-dir ' . ale#Escape(g:dir)
|
||||
\ . ' --warning-extra'
|
||||
\ . ' --output-file ' . g:ale#util#nul_file . ' %t',
|
||||
\ ale_linters#pyrex#cython#GetCommand(bufnr(''))
|
||||
\ . ' --output-file ' . g:ale#util#nul_file . ' %t'
|
||||
|
||||
Execute(Additional cython options should be configurable):
|
||||
let b:ale_pyrex_cython_options = '--foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('cython')
|
||||
AssertLinter 'cython', ale#Escape('cython')
|
||||
\ . ' --working ' . ale#Escape(g:dir)
|
||||
\ . ' --include-dir ' . ale#Escape(g:dir)
|
||||
\ . ' --foobar'
|
||||
\ . ' --output-file ' . g:ale#util#nul_file . ' %t',
|
||||
\ ale_linters#pyrex#cython#GetCommand(bufnr(''))
|
||||
\ . ' --output-file ' . g:ale#util#nul_file . ' %t'
|
||||
|
||||
@@ -1,18 +1,13 @@
|
||||
Before:
|
||||
runtime ale_linters/qml/qmlfmt.vim
|
||||
call ale#assert#SetUpLinterTest('qml', 'qmlfmt')
|
||||
|
||||
After:
|
||||
let g:ale_qml_qmlfmt_executable = 'qmlfmt'
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The qml qmlfmt command callback should return the correct default string):
|
||||
AssertEqual ale#Escape('qmlfmt') . ' -e',
|
||||
\ join(split(ale_linters#qml#qmlfmt#GetCommand(1)))
|
||||
AssertLinter 'qmlfmt', ale#Escape('qmlfmt') . ' -e',
|
||||
|
||||
Execute(The qmlfmt executable should be configurable):
|
||||
let g:ale_qml_qmlfmt_executable = '~/.local/bin/qmlfmt'
|
||||
|
||||
AssertEqual '~/.local/bin/qmlfmt', ale_linters#qml#qmlfmt#GetExecutable(1)
|
||||
AssertEqual ale#Escape('~/.local/bin/qmlfmt') . ' -e',
|
||||
\ join(split(ale_linters#qml#qmlfmt#GetCommand(1)))
|
||||
AssertLinter '~/.local/bin/qmlfmt', ale#Escape('~/.local/bin/qmlfmt') . ' -e'
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
Before:
|
||||
Save g:ale_ruby_rails_best_practices_executable
|
||||
|
||||
let g:ale_ruby_rails_best_practices_executable = 'rails_best_practices'
|
||||
|
||||
runtime ale_linters/ruby/rails_best_practices.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('ruby', 'rails_best_practices')
|
||||
call ale#test#SetFilename('../ruby_fixtures/valid_rails_app/db/test.rb')
|
||||
|
||||
let b:args = '--silent -f json'
|
||||
@@ -13,45 +8,35 @@ Before:
|
||||
let b:suffix = has('win32') ? '; type %t' : ''
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:args
|
||||
unlet! b:app_path
|
||||
unlet! b:suffix
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Executable should default to rails_best_practices):
|
||||
AssertEqual
|
||||
\ ale#Escape('rails_best_practices')
|
||||
AssertLinter 'rails_best_practices', ale#Escape('rails_best_practices')
|
||||
\ . ' ' . b:args
|
||||
\ . ' ' . ale#Escape(b:app_path)
|
||||
\ . b:suffix,
|
||||
\ ale_linters#ruby#rails_best_practices#GetCommand(bufnr(''))
|
||||
\ . b:suffix
|
||||
|
||||
Execute(Should be able to set a custom executable):
|
||||
let g:ale_ruby_rails_best_practices_executable = 'bin/rails_best_practices'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('bin/rails_best_practices')
|
||||
AssertLinter 'bin/rails_best_practices', ale#Escape('bin/rails_best_practices')
|
||||
\ . ' ' . b:args
|
||||
\ . ' ' . ale#Escape(b:app_path)
|
||||
\ . b:suffix,
|
||||
\ ale_linters#ruby#rails_best_practices#GetCommand(bufnr(''))
|
||||
\ . b:suffix
|
||||
|
||||
Execute(Setting bundle appends 'exec rails_best_practices'):
|
||||
let g:ale_ruby_rails_best_practices_executable = 'path to/bundle'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('path to/bundle') . ' exec rails_best_practices'
|
||||
AssertLinter 'path to/bundle', ale#Escape('path to/bundle')
|
||||
\ . ' exec rails_best_practices'
|
||||
\ . ' ' . b:args
|
||||
\ . ' ' . ale#Escape(b:app_path)
|
||||
\ . b:suffix,
|
||||
\ ale_linters#ruby#rails_best_practices#GetCommand(bufnr(''))
|
||||
\ . b:suffix
|
||||
|
||||
Execute(Command callback should be empty when not in a valid Rails app):
|
||||
call ale#test#SetFilename('../ruby_fixtures/not_a_rails_app/test.rb')
|
||||
|
||||
AssertEqual
|
||||
\ '',
|
||||
\ ale_linters#ruby#rails_best_practices#GetCommand(bufnr(''))
|
||||
AssertLinter 'rails_best_practices', ''
|
||||
|
||||
@@ -1,54 +1,41 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('reason', 'ols')
|
||||
|
||||
Save &filetype
|
||||
Save g:ale_reason_ols_executable
|
||||
Save g:ale_reason_ols_use_global
|
||||
|
||||
let &filetype = 'reason'
|
||||
unlet! g:ale_reason_ols_executable
|
||||
unlet! g:ale_reason_ols_use_global
|
||||
|
||||
runtime ale_linters/reason/ols.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The language string should be correct):
|
||||
AssertEqual 'reason', ale#handlers#ols#GetLanguage(bufnr(''))
|
||||
AssertLSPLanguage 'reason'
|
||||
|
||||
Execute(The default executable should be correct):
|
||||
AssertEqual 'ocaml-language-server', ale#handlers#ols#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('ocaml-language-server') . ' --stdio',
|
||||
\ ale#handlers#ols#GetCommand(bufnr(''))
|
||||
AssertLinter 'ocaml-language-server',
|
||||
\ ale#Escape('ocaml-language-server') . ' --stdio'
|
||||
|
||||
Execute(The project root should be detected correctly):
|
||||
AssertEqual '', ale#handlers#ols#GetProjectRoot(bufnr(''))
|
||||
AssertLSPProject ''
|
||||
|
||||
call ale#test#SetFilename('ols_paths/file.re')
|
||||
|
||||
AssertEqual
|
||||
\ ale#path#Simplify(g:dir . '/ols_paths'),
|
||||
\ ale#handlers#ols#GetProjectRoot(bufnr(''))
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/ols_paths')
|
||||
|
||||
Execute(The local executable should be used when available):
|
||||
call ale#test#SetFilename('ols_paths/file.re')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter
|
||||
\ ale#path#Simplify(g:dir . '/ols_paths/node_modules/.bin/ocaml-language-server'),
|
||||
\ ale#handlers#ols#GetExecutable(bufnr(''))
|
||||
\ ale#Escape(ale#path#Simplify(g:dir . '/ols_paths/node_modules/.bin/ocaml-language-server')) . ' --stdio'
|
||||
|
||||
Execute(The gloabl executable should always be used when use_global is set):
|
||||
let g:ale_reason_ols_use_global = 1
|
||||
call ale#test#SetFilename('ols_paths/file.re')
|
||||
|
||||
AssertEqual 'ocaml-language-server', ale#handlers#ols#GetExecutable(bufnr(''))
|
||||
AssertLinter 'ocaml-language-server',
|
||||
\ ale#Escape('ocaml-language-server') . ' --stdio'
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
let g:ale_reason_ols_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale#handlers#ols#GetExecutable(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' --stdio'
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
Before:
|
||||
runtime ale_linters/ruby/reek.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('ruby', 'reek')
|
||||
|
||||
After:
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#semver#ResetVersionCache()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The reek callbacks should return the correct default values):
|
||||
AssertEqual
|
||||
WithChainResults ['reek 5.0.0']
|
||||
AssertLinter 'reek', [
|
||||
\ 'reek --version',
|
||||
\ ale_linters#ruby#reek#VersionCheck(bufnr(''))
|
||||
AssertEqual
|
||||
\ 'reek -f json --no-progress --no-color --stdin-filename %s',
|
||||
\ ale_linters#ruby#reek#GetCommand(bufnr(''), ['reek 5.0.0'])
|
||||
\]
|
||||
|
||||
" Try with older versions.
|
||||
call ale#semver#ResetVersionCache()
|
||||
AssertEqual
|
||||
|
||||
WithChainResults ['reek 4.8.2']
|
||||
AssertLinter 'reek', [
|
||||
\ 'reek --version',
|
||||
\ 'reek -f json --no-progress --no-color',
|
||||
\ ale_linters#ruby#reek#GetCommand(bufnr(''), ['reek 4.8.2'])
|
||||
\]
|
||||
|
||||
Execute(The reek version check should be cached):
|
||||
AssertEqual
|
||||
WithChainResults ['reek 5.0.0']
|
||||
AssertLinter 'reek', [
|
||||
\ 'reek --version',
|
||||
\ 'reek -f json --no-progress --no-color --stdin-filename %s',
|
||||
\ ale_linters#ruby#reek#GetCommand(bufnr(''), ['reek 5.0.0'])
|
||||
\]
|
||||
|
||||
AssertEqual
|
||||
WithChainResults []
|
||||
AssertLinter 'reek', [
|
||||
\ '',
|
||||
\ ale_linters#ruby#reek#VersionCheck(bufnr(''))
|
||||
AssertEqual
|
||||
\ 'reek -f json --no-progress --no-color --stdin-filename %s',
|
||||
\ ale_linters#ruby#reek#GetCommand(bufnr(''), [])
|
||||
\]
|
||||
|
||||
@@ -1,39 +1,29 @@
|
||||
Before:
|
||||
Save g:ale_ruby_rubocop_executable
|
||||
|
||||
let g:ale_ruby_rubocop_executable = 'rubocop'
|
||||
|
||||
runtime ale_linters/ruby/rubocop.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('ruby', 'rubocop')
|
||||
call ale#test#SetFilename('dummy.rb')
|
||||
|
||||
After:
|
||||
Restore
|
||||
let g:ale_ruby_rubocop_executable = 'rubocop'
|
||||
let g:ale_ruby_rubocop_options = ''
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
After:
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Executable should default to rubocop):
|
||||
AssertEqual
|
||||
\ ale#Escape('rubocop')
|
||||
AssertLinter 'rubocop', ale#Escape('rubocop')
|
||||
\ . ' --format json --force-exclusion --stdin '
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/dummy.rb')),
|
||||
\ ale_linters#ruby#rubocop#GetCommand(bufnr(''))
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/dummy.rb'))
|
||||
|
||||
Execute(Should be able to set a custom executable):
|
||||
let g:ale_ruby_rubocop_executable = 'bin/rubocop'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('bin/rubocop')
|
||||
AssertLinter 'bin/rubocop' , ale#Escape('bin/rubocop')
|
||||
\ . ' --format json --force-exclusion --stdin '
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/dummy.rb')),
|
||||
\ ale_linters#ruby#rubocop#GetCommand(bufnr(''))
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/dummy.rb'))
|
||||
|
||||
Execute(Setting bundle appends 'exec rubocop'):
|
||||
let g:ale_ruby_rubocop_executable = 'path to/bundle'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('path to/bundle') . ' exec rubocop'
|
||||
AssertLinter 'path to/bundle', ale#Escape('path to/bundle')
|
||||
\ . ' exec rubocop'
|
||||
\ . ' --format json --force-exclusion --stdin '
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/dummy.rb')),
|
||||
\ ale_linters#ruby#rubocop#GetCommand(bufnr(''))
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/dummy.rb'))
|
||||
|
||||
@@ -1,25 +1,13 @@
|
||||
Before:
|
||||
Save g:ale_ruby_ruby_executable
|
||||
|
||||
unlet! g:ale_ruby_ruby_executable
|
||||
|
||||
runtime ale_linters/ruby/ruby.vim
|
||||
call ale#assert#SetUpLinterTest('ruby', 'ruby')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual 'ruby', ale_linters#ruby#ruby#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('ruby') . ' -w -c -T1 %t',
|
||||
\ ale_linters#ruby#ruby#GetCommand(bufnr(''))
|
||||
AssertLinter 'ruby', ale#Escape('ruby') . ' -w -c -T1 %t'
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
let g:ale_ruby_ruby_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#ruby#ruby#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' -w -c -T1 %t',
|
||||
\ ale_linters#ruby#ruby#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' -w -c -T1 %t'
|
||||
|
||||
@@ -1,45 +1,25 @@
|
||||
Before:
|
||||
Save g:ale_rust_rls_executable
|
||||
Save g:ale_rust_rls_toolchain
|
||||
|
||||
unlet! g:ale_rust_rls_executable
|
||||
unlet! g:ale_rust_rls_toolchain
|
||||
|
||||
runtime ale_linters/rust/rls.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('rust', 'rls')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default executable path should be correct):
|
||||
AssertEqual 'rls', ale_linters#rust#rls#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('rls') . ' +' . ale#Escape('nightly'),
|
||||
\ ale_linters#rust#rls#GetCommand(bufnr(''))
|
||||
AssertLinter 'rls', ale#Escape('rls') . ' +' . ale#Escape('nightly')
|
||||
|
||||
Execute(The toolchain should be configurable):
|
||||
let g:ale_rust_rls_toolchain = 'stable'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('rls') . ' +' . ale#Escape('stable'),
|
||||
\ ale_linters#rust#rls#GetCommand(bufnr(''))
|
||||
AssertLinter 'rls', ale#Escape('rls') . ' +' . ale#Escape('stable')
|
||||
|
||||
Execute(The toolchain should be ommitted if not given):
|
||||
let g:ale_rust_rls_toolchain = ''
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('rls'),
|
||||
\ ale_linters#rust#rls#GetCommand(bufnr(''))
|
||||
AssertLinter 'rls', ale#Escape('rls')
|
||||
|
||||
Execute(The project root should be detected correctly):
|
||||
AssertEqual '', ale_linters#rust#rls#GetProjectRoot(bufnr(''))
|
||||
AssertLSPProject ''
|
||||
|
||||
call ale#test#SetFilename('rust-rls-project/test.rs')
|
||||
|
||||
AssertEqual
|
||||
\ ale#path#Simplify(g:dir . '/rust-rls-project'),
|
||||
\ ale_linters#rust#rls#GetProjectRoot(bufnr(''))
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/rust-rls-project')
|
||||
|
||||
@@ -1,37 +1,21 @@
|
||||
Before:
|
||||
Save g:ale_rust_rustc_options
|
||||
|
||||
unlet! g:ale_rust_rustc_options
|
||||
|
||||
runtime ale_linters/rust/rustc.vim
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('rust', 'rustc')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:ale_rust_rustc_options
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual
|
||||
\ 'rustc --error-format=json -Z no-trans -',
|
||||
\ ale_linters#rust#rustc#RustcCommand(bufnr(''))
|
||||
AssertLinter 'rustc', 'rustc --error-format=json -Z no-trans -'
|
||||
|
||||
Execute(The options should be configurable):
|
||||
let b:ale_rust_rustc_options = '--foo'
|
||||
|
||||
AssertEqual
|
||||
\ 'rustc --error-format=json --foo -',
|
||||
\ ale_linters#rust#rustc#RustcCommand(bufnr(''))
|
||||
AssertLinter 'rustc', 'rustc --error-format=json --foo -'
|
||||
|
||||
Execute(Some default paths should be included when the project is a Cargo project):
|
||||
call ale#test#SetFilename('cargo_paths/test.rs')
|
||||
|
||||
AssertEqual
|
||||
\ 'rustc --error-format=json -Z no-trans'
|
||||
AssertLinter 'rustc', 'rustc --error-format=json -Z no-trans'
|
||||
\ . ' -L ' . ale#Escape(ale#path#GetAbsPath(g:dir, 'cargo_paths/target/debug/deps'))
|
||||
\ . ' -L ' . ale#Escape(ale#path#GetAbsPath(g:dir, 'cargo_paths/target/release/deps'))
|
||||
\ . ' -',
|
||||
\ ale_linters#rust#rustc#RustcCommand(bufnr(''))
|
||||
\ . ' -'
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
Before:
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('sass', 'sasslint')
|
||||
call ale#test#SetFilename('test.sass')
|
||||
|
||||
After:
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default sasslint command should be correct):
|
||||
AssertEqual
|
||||
AssertLinter 'sass-lint',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ale#Escape('sass-lint') . ' -v -q -f compact %t',
|
||||
\ ale#handlers#sasslint#GetCommand(bufnr(''))
|
||||
\ . ale#Escape('sass-lint') . ' -v -q -f compact %t'
|
||||
|
||||
@@ -1,17 +1,13 @@
|
||||
Before:
|
||||
runtime ale_linters/scala/scalac.vim
|
||||
call ale#assert#SetUpLinterTest('scala', 'scalac')
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Given scala(An empty Scala file):
|
||||
Execute(The default executable and command should be correct):
|
||||
AssertEqual 'scalac', ale_linters#scala#scalac#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('scalac') . ' -Ystop-after:parser %t',
|
||||
\ ale_linters#scala#scalac#GetCommand(bufnr(''))
|
||||
AssertLinter 'scalac', ale#Escape('scalac') . ' -Ystop-after:parser %t'
|
||||
|
||||
Given scala.sbt(An empty SBT file):
|
||||
Execute(scalac should not be run for sbt files):
|
||||
AssertEqual '', ale_linters#scala#scalac#GetExecutable(bufnr(''))
|
||||
AssertEqual '', ale_linters#scala#scalac#GetCommand(bufnr(''))
|
||||
AssertLinter '', ''
|
||||
|
||||
@@ -1,36 +1,34 @@
|
||||
Before:
|
||||
Save g:ale_scala_scalastyle_options
|
||||
Save g:ale_scalastyle_config_loc
|
||||
|
||||
unlet! g:ale_scala_scalastyle_options
|
||||
unlet! g:ale_scalastyle_config_loc
|
||||
|
||||
runtime ale_linters/scala/scalastyle.vim
|
||||
call ale#assert#SetUpLinterTest('scala', 'scalastyle')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! g:ale_scalastyle_config_loc
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(Should return the correct default command):
|
||||
AssertEqual
|
||||
\ 'scalastyle %t',
|
||||
\ ale_linters#scala#scalastyle#GetCommand(bufnr(''))
|
||||
AssertLinter 'scalastyle', 'scalastyle %t'
|
||||
|
||||
Execute(Should allow using a custom config file):
|
||||
let b:ale_scala_scalastyle_config = '/dooper/config.xml'
|
||||
|
||||
AssertLinter 'scalastyle', 'scalastyle'
|
||||
\ . ' --config ' . ale#Escape('/dooper/config.xml')
|
||||
\ . ' %t'
|
||||
|
||||
Execute(Should support a legacy option for the scalastyle config):
|
||||
unlet! g:ale_scala_scalastyle_config
|
||||
let g:ale_scalastyle_config_loc = '/dooper/config.xml'
|
||||
|
||||
AssertEqual
|
||||
\ 'scalastyle'
|
||||
\ . ' --config ' . ale#Escape('/dooper/config.xml')
|
||||
\ . ' %t',
|
||||
\ ale_linters#scala#scalastyle#GetCommand(bufnr(''))
|
||||
call ale#linter#Reset()
|
||||
runtime ale_linters/scala/scalastyle.vim
|
||||
|
||||
AssertLinter 'scalastyle', 'scalastyle'
|
||||
\ . ' --config ' . ale#Escape('/dooper/config.xml')
|
||||
\ . ' %t'
|
||||
|
||||
Execute(Should allow using custom options):
|
||||
let g:ale_scala_scalastyle_options = '--warnings false --quiet true'
|
||||
let b:ale_scala_scalastyle_options = '--warnings false --quiet true'
|
||||
|
||||
AssertEqual
|
||||
\ 'scalastyle'
|
||||
AssertLinter 'scalastyle', 'scalastyle'
|
||||
\ . ' --warnings false --quiet true'
|
||||
\ . ' %t',
|
||||
\ ale_linters#scala#scalastyle#GetCommand(bufnr(''))
|
||||
\ . ' %t'
|
||||
|
||||
@@ -1,129 +1,95 @@
|
||||
Before:
|
||||
Save g:ale_sh_shellcheck_exclusions
|
||||
Save g:ale_sh_shellcheck_executable
|
||||
Save g:ale_sh_shellcheck_options
|
||||
|
||||
unlet! g:ale_sh_shellcheck_exclusions
|
||||
unlet! g:ale_sh_shellcheck_executable
|
||||
unlet! g:ale_sh_shellcheck_options
|
||||
|
||||
runtime ale_linters/sh/shellcheck.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('sh', 'shellcheck')
|
||||
call ale#test#SetFilename('test.sh')
|
||||
|
||||
let b:prefix = 'cd ' . ale#Escape(ale#path#Simplify(g:dir)) . ' && '
|
||||
let b:suffix = ' -f gcc -'
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:ale_sh_shellcheck_exclusions
|
||||
unlet! b:ale_sh_shellcheck_executable
|
||||
unlet! b:ale_sh_shellcheck_options
|
||||
unlet! b:is_bash
|
||||
unlet! b:prefix
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
|
||||
call ale#linter#Reset()
|
||||
unlet! b:suffix
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default shellcheck command should be correct):
|
||||
AssertEqual
|
||||
\ b:prefix . ale#Escape('shellcheck') . b:suffix,
|
||||
\ ale_linters#sh#shellcheck#GetCommand(bufnr(''), [])
|
||||
AssertLinter 'shellcheck', b:prefix . ale#Escape('shellcheck') . b:suffix
|
||||
|
||||
Execute(The shellcheck command should accept options):
|
||||
let b:ale_sh_shellcheck_options = '--foobar'
|
||||
|
||||
AssertEqual
|
||||
\ b:prefix . ale#Escape('shellcheck') . ' --foobar' . b:suffix,
|
||||
\ ale_linters#sh#shellcheck#GetCommand(bufnr(''), [])
|
||||
AssertLinter 'shellcheck',
|
||||
\ b:prefix . ale#Escape('shellcheck') . ' --foobar' . b:suffix
|
||||
|
||||
Execute(The shellcheck command should accept options and exclusions):
|
||||
let b:ale_sh_shellcheck_options = '--foobar'
|
||||
let b:ale_sh_shellcheck_exclusions = 'foo,bar'
|
||||
|
||||
AssertEqual
|
||||
\ b:prefix . ale#Escape('shellcheck') . ' --foobar -e foo,bar' . b:suffix,
|
||||
\ ale_linters#sh#shellcheck#GetCommand(bufnr(''), [])
|
||||
AssertLinter 'shellcheck',
|
||||
\ b:prefix . ale#Escape('shellcheck') . ' --foobar -e foo,bar' . b:suffix
|
||||
|
||||
Execute(The shellcheck command should include the dialect):
|
||||
let b:is_bash = 1
|
||||
|
||||
AssertEqual
|
||||
\ b:prefix . ale#Escape('shellcheck') . ' -s bash' . b:suffix,
|
||||
\ ale_linters#sh#shellcheck#GetCommand(bufnr(''), [])
|
||||
AssertLinter 'shellcheck',
|
||||
\ b:prefix . ale#Escape('shellcheck') . ' -s bash' . b:suffix
|
||||
|
||||
Execute(The shellcheck command should include the dialect before options and exclusions):
|
||||
let b:is_bash = 1
|
||||
let b:ale_sh_shellcheck_options = '--foobar'
|
||||
let b:ale_sh_shellcheck_exclusions = 'foo,bar'
|
||||
|
||||
AssertEqual
|
||||
\ b:prefix
|
||||
\ . ale#Escape('shellcheck')
|
||||
AssertLinter 'shellcheck', b:prefix . ale#Escape('shellcheck')
|
||||
\ . ' -s bash --foobar -e foo,bar'
|
||||
\ . b:suffix,
|
||||
\ ale_linters#sh#shellcheck#GetCommand(bufnr(''), [])
|
||||
|
||||
Execute(The VersionCheck function should return the --version command):
|
||||
AssertEqual
|
||||
\ ale#Escape('shellcheck') . ' --version',
|
||||
\ ale_linters#sh#shellcheck#VersionCheck(bufnr(''))
|
||||
|
||||
let g:ale_sh_shellcheck_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' --version',
|
||||
\ ale_linters#sh#shellcheck#VersionCheck(bufnr(''))
|
||||
\ . b:suffix
|
||||
|
||||
Execute(The -x option should be added when the version is new enough):
|
||||
AssertEqual
|
||||
\ b:prefix . ale#Escape('shellcheck') . ' -x' . b:suffix,
|
||||
\ ale_linters#sh#shellcheck#GetCommand(bufnr(''), [
|
||||
\ 'ShellCheck - shell script analysis tool',
|
||||
\ 'version: 0.4.4',
|
||||
\ 'license: GNU General Public License, version 3',
|
||||
\ 'website: http://www.shellcheck.net',
|
||||
\ ])
|
||||
AssertLinter 'shellcheck', [
|
||||
\ ale#Escape('shellcheck') . ' --version',
|
||||
\ b:prefix . ale#Escape('shellcheck') . b:suffix,
|
||||
\]
|
||||
|
||||
" We should cache the version check
|
||||
AssertEqual
|
||||
\ b:prefix . ale#Escape('shellcheck') . ' -x' . b:suffix,
|
||||
\ ale_linters#sh#shellcheck#GetCommand(bufnr(''), [])
|
||||
|
||||
AssertEqual '', ale_linters#sh#shellcheck#VersionCheck(bufnr(''))
|
||||
|
||||
Execute(The version check shouldn't be run again for new versions):
|
||||
call ale_linters#sh#shellcheck#GetCommand(bufnr(''), [
|
||||
WithChainResults [
|
||||
\ 'ShellCheck - shell script analysis tool',
|
||||
\ 'version: 0.4.4',
|
||||
\ 'license: GNU General Public License, version 3',
|
||||
\ 'website: http://www.shellcheck.net',
|
||||
\])
|
||||
|
||||
Execute(The -x option should not be added when the version is too old):
|
||||
AssertEqual
|
||||
\ b:prefix . ale#Escape('shellcheck') . b:suffix,
|
||||
\ ale_linters#sh#shellcheck#GetCommand(bufnr(''), [
|
||||
\ 'ShellCheck - shell script analysis tool',
|
||||
\ 'version: 0.3.9',
|
||||
\ 'license: GNU General Public License, version 3',
|
||||
\ 'website: http://www.shellcheck.net',
|
||||
\ ])
|
||||
\]
|
||||
AssertLinter 'shellcheck', [
|
||||
\ ale#Escape('shellcheck') . ' --version',
|
||||
\ b:prefix . ale#Escape('shellcheck') . ' -x' . b:suffix,
|
||||
\]
|
||||
|
||||
" We should cache the version check
|
||||
AssertEqual
|
||||
\ b:prefix . ale#Escape('shellcheck') . b:suffix,
|
||||
\ ale_linters#sh#shellcheck#GetCommand(bufnr(''), [])
|
||||
WithChainResults []
|
||||
AssertLinter 'shellcheck', [
|
||||
\ '',
|
||||
\ b:prefix . ale#Escape('shellcheck') . ' -x' . b:suffix,
|
||||
\]
|
||||
|
||||
Execute(The version check shouldn't be run again for old versions):
|
||||
call ale_linters#sh#shellcheck#GetCommand(bufnr(''), [
|
||||
Execute(The -x option should not be added when the version is too old):
|
||||
WithChainResults [
|
||||
\ 'ShellCheck - shell script analysis tool',
|
||||
\ 'version: 0.3.9',
|
||||
\ 'license: GNU General Public License, version 3',
|
||||
\ 'website: http://www.shellcheck.net',
|
||||
\])
|
||||
\]
|
||||
AssertLinter 'shellcheck', [
|
||||
\ ale#Escape('shellcheck') . ' --version',
|
||||
\ b:prefix . ale#Escape('shellcheck') . b:suffix,
|
||||
\]
|
||||
|
||||
AssertEqual '', ale_linters#sh#shellcheck#VersionCheck(bufnr(''))
|
||||
Execute(The version check shouldn't be run again for old versions):
|
||||
WithChainResults [
|
||||
\ 'ShellCheck - shell script analysis tool',
|
||||
\ 'version: 0.3.9',
|
||||
\ 'license: GNU General Public License, version 3',
|
||||
\ 'website: http://www.shellcheck.net',
|
||||
\]
|
||||
AssertLinter 'shellcheck', [
|
||||
\ ale#Escape('shellcheck') . ' --version',
|
||||
\ b:prefix . ale#Escape('shellcheck') . b:suffix,
|
||||
\]
|
||||
AssertLinter 'shellcheck', [
|
||||
\ '',
|
||||
\ b:prefix . ale#Escape('shellcheck') . b:suffix,
|
||||
\]
|
||||
|
||||
@@ -1,39 +1,19 @@
|
||||
Before:
|
||||
runtime ale_linters/slim/slimlint.vim
|
||||
|
||||
call ale#assert#SetUpLinterTest('slim', 'slimlint')
|
||||
let g:default_command = 'slim-lint %t'
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! g:default_command
|
||||
unlet! b:conf
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual g:default_command, ale_linters#slim#slimlint#GetCommand(bufnr(''))
|
||||
AssertLinter 'slim-lint', 'slim-lint %t'
|
||||
|
||||
Execute(The command should have the .rubocop.yml prepended as an env var if one exists):
|
||||
call ale#test#SetFilename('../slimlint-test-files/subdir/file.slim')
|
||||
|
||||
let b:conf = ale#path#Simplify(g:dir . '/../slimlint-test-files/.rubocop.yml')
|
||||
|
||||
if has('win32')
|
||||
" Windows uses 'set var=... && command'
|
||||
AssertEqual
|
||||
\ 'set SLIM_LINT_RUBOCOP_CONF='
|
||||
\ . ale#Escape(b:conf)
|
||||
\ . ' && ' . g:default_command,
|
||||
\ ale_linters#slim#slimlint#GetCommand(bufnr(''))
|
||||
else
|
||||
" Unix uses 'var=... command'
|
||||
AssertEqual
|
||||
\ 'SLIM_LINT_RUBOCOP_CONF='
|
||||
\ . ale#Escape(b:conf)
|
||||
\ . ' ' . g:default_command,
|
||||
\ ale_linters#slim#slimlint#GetCommand(bufnr(''))
|
||||
endif
|
||||
AssertLinter 'slim-lint',
|
||||
\ ale#Env(
|
||||
\ 'SLIM_LINT_RUBOCOP_CONF',
|
||||
\ ale#path#Simplify(g:dir . '/../slimlint-test-files/.rubocop.yml')
|
||||
\ )
|
||||
\ . 'slim-lint %t'
|
||||
|
||||
@@ -1,28 +1,10 @@
|
||||
Before:
|
||||
Save g:ale_javascript_standard_executable
|
||||
Save g:ale_javascript_standard_use_global
|
||||
Save g:ale_javascript_standard_options
|
||||
|
||||
unlet! b:executable
|
||||
unlet! g:ale_javascript_standard_executable
|
||||
unlet! b:ale_javascript_standard_executable
|
||||
unlet! g:ale_javascript_standard_use_global
|
||||
unlet! g:ale_javascript_standard_options
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('javascript', 'standard')
|
||||
call ale#test#SetFilename('testfile.js')
|
||||
|
||||
runtime ale_linters/javascript/standard.vim
|
||||
unlet! b:executable
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:executable
|
||||
|
||||
call ale#test#SetFilename('test.txt')
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(bin/cmd.js paths should be preferred):
|
||||
call ale#test#SetFilename('standard-test-files/with-cmd/testfile.js')
|
||||
@@ -32,15 +14,10 @@ Execute(bin/cmd.js paths should be preferred):
|
||||
\ . '/standard-test-files/with-cmd/node_modules/standard/bin/cmd.js'
|
||||
\)
|
||||
|
||||
AssertEqual
|
||||
\ b:executable,
|
||||
\ ale_linters#javascript#standard#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
AssertLinter b:executable,
|
||||
\ (has('win32') ? 'node.exe ' : '')
|
||||
\ . ale#Escape(b:executable)
|
||||
\ . ' --stdin %s',
|
||||
\ ale_linters#javascript#standard#GetCommand(bufnr(''))
|
||||
\ . ' --stdin %s'
|
||||
|
||||
Execute(.bin directories should be used too):
|
||||
call ale#test#SetFilename('standard-test-files/with-bin/testfile.js')
|
||||
@@ -50,38 +27,17 @@ Execute(.bin directories should be used too):
|
||||
\ . '/standard-test-files/with-bin/node_modules/.bin/standard'
|
||||
\)
|
||||
|
||||
AssertEqual
|
||||
\ b:executable,
|
||||
\ ale_linters#javascript#standard#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape(b:executable)
|
||||
\ . ' --stdin %s',
|
||||
\ ale_linters#javascript#standard#GetCommand(bufnr(''))
|
||||
AssertLinter b:executable, ale#Escape(b:executable) . ' --stdin %s'
|
||||
|
||||
Execute(The global executable should be used otherwise):
|
||||
AssertEqual
|
||||
\ 'standard',
|
||||
\ ale_linters#javascript#standard#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('standard') . ' --stdin %s',
|
||||
\ ale_linters#javascript#standard#GetCommand(bufnr(''))
|
||||
AssertLinter 'standard', ale#Escape('standard') . ' --stdin %s'
|
||||
|
||||
Execute(The global executable should be configurable):
|
||||
let b:ale_javascript_standard_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ 'foobar',
|
||||
\ ale_linters#javascript#standard#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' --stdin %s',
|
||||
\ ale_linters#javascript#standard#GetCommand(bufnr(''))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' --stdin %s'
|
||||
|
||||
Execute(The options should be configurable):
|
||||
let b:ale_javascript_standard_options = '--wat'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('standard') . ' --wat --stdin %s',
|
||||
\ ale_linters#javascript#standard#GetCommand(bufnr(''))
|
||||
AssertLinter 'standard', ale#Escape('standard') . ' --wat --stdin %s'
|
||||
|
||||
@@ -1,41 +1,26 @@
|
||||
Before:
|
||||
Save b:ale_go_staticcheck_options
|
||||
Save b:ale_go_staticcheck_lint_package
|
||||
|
||||
let b:ale_go_staticcheck_options = ''
|
||||
let b:ale_go_staticcheck_lint_package = 0
|
||||
|
||||
runtime ale_linters/go/staticcheck.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('go', 'staticcheck')
|
||||
call ale#test#SetFilename('test.go')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The staticcheck callback should return the right defaults):
|
||||
AssertEqual
|
||||
AssertLinter 'staticcheck',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . 'staticcheck '
|
||||
\ . ale#Escape(expand('%' . ':t')),
|
||||
\ ale_linters#go#staticcheck#GetCommand(bufnr(''))
|
||||
\ . ale#Escape(expand('%' . ':t'))
|
||||
|
||||
Execute(The staticcheck callback should use configured options):
|
||||
let b:ale_go_staticcheck_options = '-test'
|
||||
|
||||
AssertEqual
|
||||
AssertLinter 'staticcheck',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . 'staticcheck '
|
||||
\ . '-test ' . ale#Escape(expand('%' . ':t')),
|
||||
\ ale_linters#go#staticcheck#GetCommand(bufnr(''))
|
||||
\ . '-test ' . ale#Escape(expand('%' . ':t'))
|
||||
|
||||
Execute(The staticcheck `lint_package` option should use the correct command):
|
||||
let b:ale_go_staticcheck_lint_package = 1
|
||||
|
||||
AssertEqual
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . 'staticcheck .',
|
||||
\ ale_linters#go#staticcheck#GetCommand(bufnr(''))
|
||||
AssertLinter 'staticcheck',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && staticcheck .',
|
||||
|
||||
@@ -1,43 +1,29 @@
|
||||
Before:
|
||||
runtime ale_linters/yaml/swaglint.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('yaml', 'swaglint')
|
||||
|
||||
After:
|
||||
let g:ale_yaml_swaglint_executable = 'swaglint'
|
||||
let g:ale_yaml_swaglint_use_global = 0
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The yaml swaglint command callback should return the correct default string):
|
||||
AssertEqual 'swaglint',
|
||||
\ ale_linters#yaml#swaglint#GetExecutable(bufnr(''))
|
||||
AssertEqual 'swaglint -r compact --stdin',
|
||||
\ ale_linters#yaml#swaglint#GetCommand(bufnr(''))
|
||||
AssertLinter 'swaglint', 'swaglint -r compact --stdin'
|
||||
|
||||
Execute(The yaml swaglint command callback should be configurable):
|
||||
let g:ale_yaml_swaglint_executable = '~/.local/bin/swaglint'
|
||||
AssertEqual '~/.local/bin/swaglint',
|
||||
\ ale_linters#yaml#swaglint#GetExecutable(bufnr(''))
|
||||
AssertEqual '~/.local/bin/swaglint -r compact --stdin',
|
||||
\ ale_linters#yaml#swaglint#GetCommand(bufnr(''))
|
||||
|
||||
AssertLinter '~/.local/bin/swaglint',
|
||||
\ '~/.local/bin/swaglint -r compact --stdin'
|
||||
|
||||
Execute(The yaml swaglint command callback should allow a global installation to be used):
|
||||
let g:ale_yaml_swaglint_executable = '/usr/local/bin/swaglint'
|
||||
let g:ale_yaml_swaglint_use_global = 1
|
||||
AssertEqual '/usr/local/bin/swaglint',
|
||||
\ ale_linters#yaml#swaglint#GetExecutable(bufnr(''))
|
||||
AssertEqual '/usr/local/bin/swaglint -r compact --stdin',
|
||||
\ ale_linters#yaml#swaglint#GetCommand(bufnr(''))
|
||||
|
||||
AssertLinter '/usr/local/bin/swaglint',
|
||||
\ '/usr/local/bin/swaglint -r compact --stdin'
|
||||
|
||||
Execute(The yaml swaglint command callback should allow a local installation to be used):
|
||||
call ale#test#SetFilename('swaglint_paths/docs/swagger.yaml')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter
|
||||
\ ale#path#Simplify(g:dir . '/swaglint_paths/node_modules/.bin/swaglint'),
|
||||
\ ale_linters#yaml#swaglint#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
\ ale#path#Simplify(g:dir . '/swaglint_paths/node_modules/.bin/swaglint')
|
||||
\ . ' -r compact --stdin',
|
||||
\ ale_linters#yaml#swaglint#GetCommand(bufnr(''))
|
||||
\ . ' -r compact --stdin'
|
||||
|
||||
@@ -1,30 +1,19 @@
|
||||
Before:
|
||||
Save g:ale_terraform_tflint_executable
|
||||
Save g:ale_terraform_tflint_options
|
||||
|
||||
runtime ale_linters/terraform/tflint.vim
|
||||
call ale#assert#SetUpLinterTest('terraform', 'tflint')
|
||||
|
||||
After:
|
||||
Restore
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
call ale#linter#Reset()
|
||||
Execute(The default command should be correct):
|
||||
AssertLinter 'tflint', ale#Escape('tflint') . ' -f json %t'
|
||||
|
||||
Execute(The default executable should be configurable):
|
||||
AssertEqual 'tflint', ale_linters#terraform#tflint#GetExecutable(bufnr(''))
|
||||
let b:ale_terraform_tflint_executable = 'asdf'
|
||||
|
||||
let g:ale_terraform_tflint_executable = 'asdf'
|
||||
AssertLinter 'asdf', ale#Escape('asdf') . ' -f json %t'
|
||||
|
||||
AssertEqual 'asdf', ale_linters#terraform#tflint#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The default command should be good):
|
||||
let g:ale_terraform_tflint_executable = 'tflint'
|
||||
AssertEqual
|
||||
\ ale#Escape('tflint') . ' -f json %t',
|
||||
\ ale_linters#terraform#tflint#GetCommand(bufnr(''))
|
||||
|
||||
Execute(Overriding things should work):
|
||||
Execute(Overriding options should work):
|
||||
let g:ale_terraform_tflint_executable = 'fnord'
|
||||
let g:ale_terraform_tflint_options = '--whatever'
|
||||
AssertEqual
|
||||
\ ale#Escape('fnord') . ' --whatever -f json %t',
|
||||
\ ale_linters#terraform#tflint#GetCommand(bufnr(''))
|
||||
|
||||
AssertLinter 'fnord', ale#Escape('fnord') . ' --whatever -f json %t'
|
||||
|
||||
@@ -1,85 +1,65 @@
|
||||
" Author: januswel, w0rp
|
||||
|
||||
Before:
|
||||
" This is just one language for the linter.
|
||||
call ale#assert#SetUpLinterTest('markdown', 'textlint')
|
||||
|
||||
" The configuration is shared between many languages.
|
||||
Save g:ale_textlint_executable
|
||||
Save g:ale_textlint_use_global
|
||||
Save g:ale_textlint_options
|
||||
|
||||
unlet! g:ale_textlint_executable
|
||||
let g:ale_textlint_executable = 'textlint'
|
||||
let g:ale_textlint_use_global = 0
|
||||
let g:ale_textlint_options = ''
|
||||
|
||||
unlet! b:ale_textlint_executable
|
||||
unlet! g:ale_textlint_use_global
|
||||
unlet! b:ale_textlint_use_global
|
||||
unlet! g:ale_textlint_options
|
||||
unlet! b:ale_textlint_options
|
||||
|
||||
runtime autoload/ale/handlers/textlint.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:command_tail
|
||||
unlet! b:ale_textlint_executable
|
||||
unlet! b:ale_textlint_use_global
|
||||
unlet! b:ale_textlint_options
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertLinter 'textlint',
|
||||
\ ale#Escape('textlint') . ' -f json --stdin --stdin-filename %s'
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'textlint', ale#handlers#textlint#GetExecutable(bufnr(''))
|
||||
|
||||
let b:ale_textlint_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale#handlers#textlint#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('textlint') . ' -f json --stdin --stdin-filename %s',
|
||||
\ ale#handlers#textlint#GetCommand(bufnr(''))
|
||||
|
||||
let b:ale_textlint_executable = 'foobar'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' -f json --stdin --stdin-filename %s',
|
||||
\ ale#handlers#textlint#GetCommand(bufnr(''))
|
||||
\
|
||||
AssertLinter 'foobar',
|
||||
\ ale#Escape('foobar') . ' -f json --stdin --stdin-filename %s'
|
||||
|
||||
Execute(The options should be configurable):
|
||||
let b:ale_textlint_options = '--something'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('textlint') . ' --something -f json --stdin --stdin-filename %s',
|
||||
\ ale#handlers#textlint#GetCommand(bufnr(''))
|
||||
AssertLinter 'textlint',
|
||||
\ ale#Escape('textlint') . ' --something -f json --stdin --stdin-filename %s'
|
||||
|
||||
Execute(The local executable from .bin should be used if available):
|
||||
call ale#test#SetFilename('textlint_paths/with_bin_path/foo.txt')
|
||||
|
||||
AssertEqual
|
||||
AssertLinter
|
||||
\ ale#path#Simplify(g:dir . '/textlint_paths/with_bin_path/node_modules/.bin/textlint'),
|
||||
\ ale#handlers#textlint#GetExecutable(bufnr(''))
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape(ale#path#Simplify(g:dir . '/textlint_paths/with_bin_path/node_modules/.bin/textlint'))
|
||||
\ . ' -f json --stdin --stdin-filename %s',
|
||||
\ ale#handlers#textlint#GetCommand(bufnr(''))
|
||||
\ . ' -f json --stdin --stdin-filename %s'
|
||||
|
||||
Execute(The local executable from textlint/bin should be used if available):
|
||||
call ale#test#SetFilename('textlint_paths/with_textlint_bin_path/foo.txt')
|
||||
|
||||
AssertEqual
|
||||
\ ale#path#Simplify(g:dir . '/textlint_paths/with_textlint_bin_path/node_modules/textlint/bin/textlint.js'),
|
||||
\ ale#handlers#textlint#GetExecutable(bufnr(''))
|
||||
|
||||
if has('win32')
|
||||
AssertEqual
|
||||
AssertLinter
|
||||
\ ale#path#Simplify(g:dir . '/textlint_paths/with_textlint_bin_path/node_modules/textlint/bin/textlint.js'),
|
||||
\ ale#Escape('node.exe') . ' ' . ale#Escape(ale#path#Simplify(g:dir . '/textlint_paths/with_textlint_bin_path/node_modules/textlint/bin/textlint.js'))
|
||||
\ . ' -f json --stdin --stdin-filename %s',
|
||||
\ ale#handlers#textlint#GetCommand(bufnr(''))
|
||||
\ . ' -f json --stdin --stdin-filename %s'
|
||||
else
|
||||
AssertEqual
|
||||
AssertLinter
|
||||
\ ale#path#Simplify(g:dir . '/textlint_paths/with_textlint_bin_path/node_modules/textlint/bin/textlint.js'),
|
||||
\ ale#Escape(ale#path#Simplify(g:dir . '/textlint_paths/with_textlint_bin_path/node_modules/textlint/bin/textlint.js'))
|
||||
\ . ' -f json --stdin --stdin-filename %s',
|
||||
\ ale#handlers#textlint#GetCommand(bufnr(''))
|
||||
\ . ' -f json --stdin --stdin-filename %s'
|
||||
endif
|
||||
|
||||
@@ -1,13 +1,6 @@
|
||||
Before:
|
||||
Save g:ale_thrift_thrift_executable
|
||||
Save g:ale_thrift_thrift_generators
|
||||
Save g:ale_thrift_thrift_includes
|
||||
Save g:ale_thrift_thrift_options
|
||||
|
||||
unlet! b:ale_thrift_thrift_executable
|
||||
unlet! b:ale_thrift_thrift_generators
|
||||
unlet! b:ale_thrift_thrift_includes
|
||||
unlet! b:ale_thrift_thrift_options
|
||||
call ale#assert#SetUpLinterTest('thrift', 'thrift')
|
||||
let b:suffix = ' -out ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||
|
||||
function! GetCommand(buffer) abort
|
||||
call ale#engine#InitBufferInfo(a:buffer)
|
||||
@@ -24,62 +17,37 @@ Before:
|
||||
return join(l:split_command)
|
||||
endfunction
|
||||
|
||||
runtime ale_linters/thrift/thrift.vim
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:suffix
|
||||
delfunction GetCommand
|
||||
unlet! b:ale_thrift_thrift_executable
|
||||
unlet! b:ale_thrift_thrift_generators
|
||||
unlet! b:ale_thrift_thrift_includes
|
||||
unlet! b:ale_thrift_thrift_options
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertLinter 'thrift', ale#Escape('thrift') . ' --gen cpp -strict' . b:suffix
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'thrift', ale_linters#thrift#thrift#GetExecutable(bufnr(''))
|
||||
|
||||
let b:ale_thrift_thrift_executable = 'foobar'
|
||||
AssertEqual 'foobar', ale_linters#thrift#thrift#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('thrift') . ' --gen cpp -strict -out TEMP %t',
|
||||
\ GetCommand(bufnr('%'))
|
||||
|
||||
let b:ale_thrift_thrift_executable = 'foobar'
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') . ' --gen cpp -strict -out TEMP %t',
|
||||
\ GetCommand(bufnr('%'))
|
||||
AssertLinter 'foobar', ale#Escape('foobar') . ' --gen cpp -strict' . b:suffix
|
||||
|
||||
Execute(The list of generators should be configurable):
|
||||
let b:ale_thrift_thrift_generators = ['java', 'py:dynamic']
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('thrift') . ' --gen java --gen py:dynamic -strict -out TEMP %t',
|
||||
\ GetCommand(bufnr('%'))
|
||||
AssertLinter 'thrift', ale#Escape('thrift')
|
||||
\ . ' --gen java --gen py:dynamic -strict' . b:suffix
|
||||
|
||||
let b:ale_thrift_thrift_generators = []
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('thrift') . ' --gen cpp -strict -out TEMP %t',
|
||||
\ GetCommand(bufnr('%'))
|
||||
AssertLinter 'thrift', ale#Escape('thrift') . ' --gen cpp -strict' . b:suffix
|
||||
|
||||
Execute(The list of include paths should be configurable):
|
||||
let b:ale_thrift_thrift_includes = ['included/path']
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('thrift')
|
||||
\ . ' --gen cpp'
|
||||
\ . ' -I included/path'
|
||||
\ . ' -strict -out TEMP %t',
|
||||
\ GetCommand(bufnr('%'))
|
||||
AssertLinter 'thrift', ale#Escape('thrift')
|
||||
\ . ' --gen cpp -I included/path -strict' . b:suffix
|
||||
|
||||
Execute(The string of compiler options should be configurable):
|
||||
let b:ale_thrift_thrift_options = '-strict --allow-64bit-consts'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('thrift')
|
||||
\ . ' --gen cpp -strict --allow-64bit-consts'
|
||||
\ . ' -out TEMP %t',
|
||||
\ GetCommand(bufnr('%'))
|
||||
AssertLinter 'thrift', ale#Escape('thrift')
|
||||
\ . ' --gen cpp -strict --allow-64bit-consts' . b:suffix
|
||||
|
||||
@@ -1,43 +1,19 @@
|
||||
Before:
|
||||
call ale#assert#Init()
|
||||
|
||||
Save g:ale_typescript_tslint_executable
|
||||
Save g:ale_typescript_tslint_config_path
|
||||
Save g:ale_typescript_tslint_rules_dir
|
||||
Save g:ale_typescript_tslint_use_global
|
||||
|
||||
unlet! g:ale_typescript_tslint_executable
|
||||
unlet! g:ale_typescript_tslint_config_path
|
||||
unlet! g:ale_typescript_tslint_rules_dir
|
||||
unlet! g:ale_typescript_tslint_use_global
|
||||
|
||||
runtime ale_linters/typescript/tslint.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#assert#SetUpLinterTest('typescript', 'tslint')
|
||||
call ale#test#SetFilename('test.ts')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:ale_typescript_tslint_executable
|
||||
unlet! b:ale_typescript_tslint_config_path
|
||||
unlet! b:ale_typescript_tslint_rules_dir
|
||||
unlet! b:ale_typescript_tslint_use_global
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default tslint command should be correct):
|
||||
AssertLinter
|
||||
\ 'tslint',
|
||||
AssertLinter 'tslint',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ale#Escape('tslint') . ' --format json %t'
|
||||
|
||||
Execute(The rules directory option should be included if set):
|
||||
let b:ale_typescript_tslint_rules_dir = '/foo/bar'
|
||||
|
||||
AssertLinter
|
||||
\ 'tslint',
|
||||
AssertLinter 'tslint',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ale#Escape('tslint') . ' --format json'
|
||||
\ . ' -r ' . ale#Escape('/foo/bar')
|
||||
@@ -46,7 +22,6 @@ Execute(The rules directory option should be included if set):
|
||||
Execute(The executable should be configurable and escaped):
|
||||
let b:ale_typescript_tslint_executable = 'foo bar'
|
||||
|
||||
AssertLinter
|
||||
\ 'foo bar',
|
||||
AssertLinter 'foo bar',
|
||||
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
|
||||
\ . ale#Escape('foo bar') . ' --format json %t'
|
||||
|
||||
@@ -1,39 +1,23 @@
|
||||
Before:
|
||||
Save g:ale_vim_vint_executable
|
||||
|
||||
unlet! g:ale_vim_vint_executable
|
||||
|
||||
runtime ale_linters/vim/vint.vim
|
||||
|
||||
call ale#assert#SetUpLinterTest('vim', 'vint')
|
||||
let b:command_tail = (has('nvim') ? ' --enable-neovim' : '')
|
||||
\ . ' -f "{file_path}:{line_number}:{column_number}: {severity}: {description} (see {reference})" %t'
|
||||
call ale#semver#ResetVersionCache()
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#semver#ResetVersionCache()
|
||||
|
||||
unlet! b:bin_dir
|
||||
unlet! b:executable
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct):
|
||||
AssertEqual 'vint', ale_linters#vim#vint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'vint', [
|
||||
\ ale#Escape('vint') .' --version',
|
||||
\ ale_linters#vim#vint#VersionCommand(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('vint') .' -s --no-color' . b:command_tail,
|
||||
\ ale_linters#vim#vint#GetCommand(bufnr(''), [])
|
||||
\]
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
let g:ale_vim_vint_executable = 'foobar'
|
||||
|
||||
AssertEqual 'foobar', ale_linters#vim#vint#GetExecutable(bufnr(''))
|
||||
AssertEqual
|
||||
AssertLinter 'foobar', [
|
||||
\ ale#Escape('foobar') .' --version',
|
||||
\ ale_linters#vim#vint#VersionCommand(bufnr(''))
|
||||
AssertEqual
|
||||
\ ale#Escape('foobar') .' -s --no-color' . b:command_tail,
|
||||
\ ale_linters#vim#vint#GetCommand(bufnr(''), [])
|
||||
\]
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
Before:
|
||||
call ale#assert#Init()
|
||||
" This is just one example of a language using the linter.
|
||||
call ale#assert#SetUpLinterTest('markdown', 'writegood')
|
||||
|
||||
" The options are shared between many languages.
|
||||
Save g:ale_writegood_options
|
||||
Save g:ale_writegood_executable
|
||||
Save g:ale_writegood_use_global
|
||||
@@ -9,18 +11,11 @@ Before:
|
||||
unlet! g:ale_writegood_executable
|
||||
unlet! g:ale_writegood_use_global
|
||||
|
||||
runtime ale_linters/markdown/write-good.vim
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
call ale#test#SetFilename('testfile.txt')
|
||||
|
||||
call ale#handlers#writegood#ResetOptions()
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The global executable should be used when the local one cannot be found):
|
||||
AssertLinter
|
||||
|
||||
@@ -1,25 +1,20 @@
|
||||
Before:
|
||||
runtime ale_linters/xml/xmllint.vim
|
||||
call ale#assert#SetUpLinterTest('xml', 'xmllint')
|
||||
|
||||
After:
|
||||
let g:ale_xml_xmllint_options = ''
|
||||
let g:ale_xml_xmllint_executable = 'xmllint'
|
||||
|
||||
call ale#linter#Reset()
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The xml xmllint command callback should return the correct default string):
|
||||
AssertEqual ale#Escape('xmllint') . ' --noout -',
|
||||
\ join(split(ale_linters#xml#xmllint#GetCommand(1)))
|
||||
AssertLinter 'xmllint', ale#Escape('xmllint') . ' --noout -'
|
||||
|
||||
Execute(The xml xmllint command callback should let you set options):
|
||||
let g:ale_xml_xmllint_options = '--xinclude --postvalid'
|
||||
|
||||
AssertEqual ale#Escape('xmllint') . ' --xinclude --postvalid --noout -',
|
||||
\ join(split(ale_linters#xml#xmllint#GetCommand(1)))
|
||||
AssertLinter 'xmllint',
|
||||
\ ale#Escape('xmllint') . ' --xinclude --postvalid --noout -'
|
||||
|
||||
Execute(The xmllint executable should be configurable):
|
||||
let g:ale_xml_xmllint_executable = '~/.local/bin/xmllint'
|
||||
|
||||
AssertEqual '~/.local/bin/xmllint', ale_linters#xml#xmllint#GetExecutable(1)
|
||||
AssertEqual ale#Escape('~/.local/bin/xmllint') . ' --noout -',
|
||||
\ join(split(ale_linters#xml#xmllint#GetCommand(1)))
|
||||
AssertLinter '~/.local/bin/xmllint',
|
||||
\ ale#Escape('~/.local/bin/xmllint') . ' --noout -'
|
||||
|
||||
Reference in New Issue
Block a user