summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorw0rp <w0rp@users.noreply.github.com>2019-07-30 21:17:20 +0100
committerGitHub <noreply@github.com>2019-07-30 21:17:20 +0100
commit3ae01ba24967a37e5a41626673422be53e188026 (patch)
treeb68094ab353b74b998de86f003631401f5ff0d85 /test
parent8f5ecf01200f82d12d452992a92c23fcf9e0f0e8 (diff)
parent49db8210f68637a2af14b21940f3cbbaf7361047 (diff)
downloadale-3ae01ba24967a37e5a41626673422be53e188026.zip
Merge pull request #2430 from eliath/master
Support $GO111MODULE with Go tooling
Diffstat (limited to 'test')
-rw-r--r--test/command_callback/test_bingo_command_callback.vader26
-rw-r--r--test/command_callback/test_gobuild_command_callback.vader10
-rw-r--r--test/command_callback/test_gofmt_command_callback.vader19
-rw-r--r--test/command_callback/test_golangci_lint_command_callback.vader12
-rw-r--r--test/command_callback/test_golangserver_command_callback.vader7
-rw-r--r--test/command_callback/test_golint_command_callbacks.vader8
-rw-r--r--test/command_callback/test_gometalinter_command_callback.vader10
-rw-r--r--test/command_callback/test_gopls_command_callback.vader24
-rw-r--r--test/command_callback/test_gosimple_command_callback.vader9
-rw-r--r--test/command_callback/test_gotype_command_callback.vader10
-rw-r--r--test/command_callback/test_govet_command_callback.vader8
-rw-r--r--test/command_callback/test_staticcheck_command_callback.vader17
-rw-r--r--test/fixers/test_gofmt_fixer_callback.vader14
-rw-r--r--test/fixers/test_goimports_fixer_callback.vader14
-rw-r--r--test/fixers/test_gomod_fixer_callback.vader16
15 files changed, 203 insertions, 1 deletions
diff --git a/test/command_callback/test_bingo_command_callback.vader b/test/command_callback/test_bingo_command_callback.vader
index f4cb3231..3b5d2ac4 100644
--- a/test/command_callback/test_bingo_command_callback.vader
+++ b/test/command_callback/test_bingo_command_callback.vader
@@ -9,6 +9,7 @@ After:
endif
unlet! b:ale_completion_enabled
+ unlet! b:ale_go_go111module
call ale#assert#TearDownLinterTest()
@@ -34,6 +35,14 @@ Execute(should set bingo options):
AssertLinter 'bingo',
\ ale#Escape('bingo') . ' --mode stdio --trace'
+Execute(should support Go environment variables):
+ call ale#test#SetFilename('go_paths/go1/prj1/file.go')
+ let b:ale_go_go111module = 'on'
+
+ AssertLinter 'bingo',
+ \ ale#Env('GO111MODULE', 'on') . ale#Escape('bingo') . ' --mode stdio'
+
+
Execute(Should return directory for 'go.mod' if found in parent directory):
call ale#test#SetFilename('../go_files/test.go')
@@ -44,3 +53,20 @@ Execute(Should return nearest directory with '.git' if found in parent directory
call mkdir(g:dir . '/.git')
AssertLSPProject g:dir
+
+Execute(Should ignore 'go.mod' and return '.git' dir if modules off):
+ call ale#test#SetFilename('../go_files/test.go')
+
+ let b:ale_go_go111module = 'off'
+ let b:parent_dir = ale#path#Simplify(g:dir . '/..')
+ let b:git_dir = b:parent_dir . '/.git'
+
+ if !isdirectory(b:git_dir)
+ call mkdir(b:git_dir)
+ endif
+
+ AssertLSPProject b:parent_dir
+
+ call delete(b:git_dir, 'd')
+ unlet! b:parent_dir
+ unlet! b:git_dir
diff --git a/test/command_callback/test_gobuild_command_callback.vader b/test/command_callback/test_gobuild_command_callback.vader
index 79015b75..fdf23866 100644
--- a/test/command_callback/test_gobuild_command_callback.vader
+++ b/test/command_callback/test_gobuild_command_callback.vader
@@ -14,6 +14,16 @@ Execute(The default commands should be correct):
\ ale#path#CdString(expand('%:p:h'))
\ . 'go test -c -o /dev/null ./'
+Execute(Go environment variables should be supported):
+ let b:ale_go_go111module = 'on'
+
+ AssertLinter 'go',
+ \ ale#path#CdString(expand('%:p:h'))
+ \ . ale#Env('GO111MODULE', 'on')
+ \ . 'go test -c -o /dev/null ./'
+
+ unlet! b:ale_go_go111module
+
Execute(Extra options should be supported):
let g:ale_go_gobuild_options = '--foo-bar'
diff --git a/test/command_callback/test_gofmt_command_callback.vader b/test/command_callback/test_gofmt_command_callback.vader
new file mode 100644
index 00000000..8223b099
--- /dev/null
+++ b/test/command_callback/test_gofmt_command_callback.vader
@@ -0,0 +1,19 @@
+Before:
+ call ale#assert#SetUpLinterTest('go', 'gofmt')
+ call ale#test#SetFilename('../go_files/testfile2.go')
+
+After:
+ call ale#assert#TearDownLinterTest()
+
+Execute(The default gofmt command should be correct):
+ AssertLinter 'gofmt',
+ \ ale#Escape('gofmt') . ' -e %t'
+
+Execute(The gofmt command should support Go environment variables):
+ let b:ale_go_go111module = 'on'
+
+ AssertLinter 'gofmt',
+ \ ale#Env('GO111MODULE', 'on')
+ \ . ale#Escape('gofmt') . ' -e %t'
+
+ unlet! b:ale_go_go111module
diff --git a/test/command_callback/test_golangci_lint_command_callback.vader b/test/command_callback/test_golangci_lint_command_callback.vader
index 345f58b1..fed95126 100644
--- a/test/command_callback/test_golangci_lint_command_callback.vader
+++ b/test/command_callback/test_golangci_lint_command_callback.vader
@@ -30,6 +30,18 @@ Execute(The golangci-lint callback should use configured options):
\ . ' run ' . ale#Escape(expand('%' . ':t'))
\ . ' --foobar'
+Execute(The golangci-lint callback should support environment variables):
+ let b:ale_go_go111module = 'on'
+
+ AssertLinter 'golangci-lint',
+ \ ale#path#CdString(expand('%:p:h'))
+ \ . ale#Env('GO111MODULE', 'on')
+ \ . ale#Escape('golangci-lint')
+ \ . ' run ' . ale#Escape(expand('%' . ':t'))
+ \ . ' --enable-all'
+
+ unlet! b:ale_go_go111module
+
Execute(The golangci-lint `lint_package` option should use the correct command):
let b:ale_go_golangci_lint_package = 1
diff --git a/test/command_callback/test_golangserver_command_callback.vader b/test/command_callback/test_golangserver_command_callback.vader
index 90fdc26f..47402965 100644
--- a/test/command_callback/test_golangserver_command_callback.vader
+++ b/test/command_callback/test_golangserver_command_callback.vader
@@ -14,6 +14,7 @@ After:
Restore
unlet! b:ale_completion_enabled
+ unlet! b:ale_go_go111module
unlet! g:sep
call ale#assert#TearDownLinterTest()
@@ -52,6 +53,12 @@ Execute(should ignore go-langserver -gocodecompletion option):
AssertLinter 'go-langserver', ale#Escape('go-langserver') . ' -trace'
+Execute(should support Go environment variables):
+ let b:ale_go_go111module = 'on'
+
+ AssertLinter 'go-langserver',
+ \ ale#Env('GO111MODULE', 'on') . ale#Escape('go-langserver')
+
Execute(should set go-langserver for go app1):
call ale#test#SetFilename('go_paths/go1/prj1/file.go')
diff --git a/test/command_callback/test_golint_command_callbacks.vader b/test/command_callback/test_golint_command_callbacks.vader
index 7c300309..701d3ba3 100644
--- a/test/command_callback/test_golint_command_callbacks.vader
+++ b/test/command_callback/test_golint_command_callbacks.vader
@@ -16,3 +16,11 @@ Execute(The golint options should be configurable):
let b:ale_go_golint_options = '--foo'
AssertLinter 'golint', ale#Escape('golint') . ' --foo %t'
+
+Execute(The golint command should support Go environment variables):
+ let b:ale_go_go111module = 'on'
+
+ AssertLinter 'golint',
+ \ ale#Env('GO111MODULE', 'on') . ale#Escape('golint') . ' %t'
+
+ unlet! b:ale_go_go111module
diff --git a/test/command_callback/test_gometalinter_command_callback.vader b/test/command_callback/test_gometalinter_command_callback.vader
index 88e86801..308400b2 100644
--- a/test/command_callback/test_gometalinter_command_callback.vader
+++ b/test/command_callback/test_gometalinter_command_callback.vader
@@ -30,6 +30,16 @@ Execute(The gometalinter callback should use configured options):
\ . ' --include=' . ale#Escape(ale#util#EscapePCRE(expand('%' . ':t')))
\ . ' --foobar' . ' .'
+Execute(The gometalinter should use configured environment variables):
+ let b:ale_go_go111module = 'off'
+ AssertLinter 'gometalinter',
+ \ ale#path#CdString(expand('%:p:h'))
+ \ . ale#Env('GO111MODULE', 'off')
+ \ . ale#Escape('gometalinter')
+ \ . ' --include=' . ale#Escape(ale#util#EscapePCRE(expand('%' . ':t')))
+ \ . ' .'
+ unlet! b:ale_go_go111module
+
Execute(The gometalinter `lint_package` option should use the correct command):
let b:ale_go_gometalinter_lint_package = 1
diff --git a/test/command_callback/test_gopls_command_callback.vader b/test/command_callback/test_gopls_command_callback.vader
index 0e079a73..4683efdd 100644
--- a/test/command_callback/test_gopls_command_callback.vader
+++ b/test/command_callback/test_gopls_command_callback.vader
@@ -8,6 +8,7 @@ After:
call delete(g:dir . '/.git', 'd')
endif
+ unlet! b:ale_go_go111module
unlet! b:ale_completion_enabled
call ale#assert#TearDownLinterTest()
@@ -34,6 +35,12 @@ Execute(should set gopls options):
AssertLinter 'gopls',
\ ale#Escape('gopls') . ' --mode stdio --trace'
+Execute(should support go environment variables):
+ let b:ale_go_go111module = 'off'
+
+ AssertLinter 'gopls',
+ \ ale#Env('GO111MODULE', 'off') . ale#Escape('gopls') . ' --mode stdio'
+
Execute(Should return directory for 'go.mod' if found in parent directory):
call ale#test#SetFilename('../go_files/test.go')
@@ -44,3 +51,20 @@ Execute(Should return nearest directory with '.git' if found in parent directory
call mkdir(g:dir . '/.git')
AssertLSPProject g:dir
+
+Execute(Should ignore 'go.mod' and return '.git' dir if modules off):
+ call ale#test#SetFilename('../go_files/test.go')
+
+ let b:ale_go_go111module = 'off'
+ let b:parent_dir = ale#path#Simplify(g:dir . '/..')
+ let b:git_dir = b:parent_dir . '/.git'
+
+ if !isdirectory(b:git_dir)
+ call mkdir(b:git_dir)
+ endif
+
+ AssertLSPProject b:parent_dir
+
+ call delete(b:git_dir, 'd')
+ unlet! b:parent_dir
+ unlet! b:git_dir
diff --git a/test/command_callback/test_gosimple_command_callback.vader b/test/command_callback/test_gosimple_command_callback.vader
index 59013df0..e6233091 100644
--- a/test/command_callback/test_gosimple_command_callback.vader
+++ b/test/command_callback/test_gosimple_command_callback.vader
@@ -8,3 +8,12 @@ After:
Execute(The default gosimple command should be correct):
AssertLinter 'gosimple',
\ ale#path#CdString(expand('%:p:h')) . ' gosimple .'
+
+Execute(The gosimple command should support Go environment variables):
+ let b:ale_go_go111module = 'on'
+
+ AssertLinter 'gosimple',
+ \ ale#path#CdString(expand('%:p:h')) . ' '
+ \ . ale#Env('GO111MODULE', 'on') . 'gosimple .'
+
+ unlet! b:ale_go_go111module
diff --git a/test/command_callback/test_gotype_command_callback.vader b/test/command_callback/test_gotype_command_callback.vader
index 113f4823..c2661481 100644
--- a/test/command_callback/test_gotype_command_callback.vader
+++ b/test/command_callback/test_gotype_command_callback.vader
@@ -13,3 +13,13 @@ Execute(The gotype callback should ignore test files):
call ale#test#SetFilename('bla_test.go')
AssertLinter 'gotype', ''
+
+Execute(The gotype callback should support Go environment variables):
+ let b:ale_go_go111module = 'on'
+
+ AssertLinter 'gotype',
+ \ ale#path#CdString(expand('%:p:h')) . ' '
+ \ . ale#Env('GO111MODULE', 'on')
+ \ . 'gotype -e .'
+
+ unlet! b:ale_go_go111module
diff --git a/test/command_callback/test_govet_command_callback.vader b/test/command_callback/test_govet_command_callback.vader
index a55c0812..163fd8ea 100644
--- a/test/command_callback/test_govet_command_callback.vader
+++ b/test/command_callback/test_govet_command_callback.vader
@@ -17,3 +17,11 @@ Execute(Extra options should be supported):
Execute(The executable should be configurable):
let g:ale_go_go_executable = 'foobar'
AssertLinter 'foobar', ale#path#CdString(expand('%:p:h')) . ' foobar vet .'
+
+Execute(Go environment variables should be supported):
+ let b:ale_go_go111module = 'on'
+ AssertLinter 'go',
+ \ ale#path#CdString(expand('%:p:h')) . ' '
+ \ . ale#Env('GO111MODULE', 'on')
+ \ . 'go vet .'
+ unlet! b:ale_go_go111module
diff --git a/test/command_callback/test_staticcheck_command_callback.vader b/test/command_callback/test_staticcheck_command_callback.vader
index 7f17b146..b9330b8d 100644
--- a/test/command_callback/test_staticcheck_command_callback.vader
+++ b/test/command_callback/test_staticcheck_command_callback.vader
@@ -24,3 +24,20 @@ Execute(The staticcheck `lint_package` option should use the correct command):
AssertLinter 'staticcheck',
\ ale#path#CdString(expand('%:p:h')) . 'staticcheck .',
+
+Execute(The staticcheck callback should use the `GO111MODULE` option if set):
+ let b:ale_go_go111module = 'off'
+
+ AssertLinter 'staticcheck',
+ \ ale#path#CdString(expand('%:p:h'))
+ \ . ale#Env('GO111MODULE', 'off')
+ \ . 'staticcheck '
+ \ . ale#Escape(expand('%' . ':t'))
+
+ " Test with lint_package option set
+ let b:ale_go_staticcheck_lint_package = 1
+ AssertLinter 'staticcheck',
+ \ ale#path#CdString(expand('%:p:h'))
+ \ . ale#Env('GO111MODULE', 'off')
+ \ . 'staticcheck .'
+ unlet! b:ale_go_go111module
diff --git a/test/fixers/test_gofmt_fixer_callback.vader b/test/fixers/test_gofmt_fixer_callback.vader
index 14e6e063..b8376142 100644
--- a/test/fixers/test_gofmt_fixer_callback.vader
+++ b/test/fixers/test_gofmt_fixer_callback.vader
@@ -5,6 +5,7 @@ Before:
" Use an invalid global executable, so we don't match it.
let g:ale_go_gofmt_executable = 'xxxinvalid'
let g:ale_go_gofmt_options = ''
+ let g:ale_go_go111module = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
@@ -38,3 +39,16 @@ Execute(The gofmt callback should include custom gofmt options):
\ . ' %t',
\ },
\ ale#fixers#gofmt#Fix(bufnr(''))
+
+Execute(The gofmt callback should support Go environment variables):
+ let g:ale_go_go111module = 'off'
+ call ale#test#SetFilename('../go_files/testfile.go')
+
+ AssertEqual
+ \ {
+ \ 'read_temporary_file': 1,
+ \ 'command': ale#Env('GO111MODULE', 'off')
+ \ . ale#Escape('xxxinvalid') . ' -l -w'
+ \ . ' %t',
+ \ },
+ \ ale#fixers#gofmt#Fix(bufnr(''))
diff --git a/test/fixers/test_goimports_fixer_callback.vader b/test/fixers/test_goimports_fixer_callback.vader
index cec06354..a1b72425 100644
--- a/test/fixers/test_goimports_fixer_callback.vader
+++ b/test/fixers/test_goimports_fixer_callback.vader
@@ -5,6 +5,7 @@ Before:
" Use an invalid global executable, so we don't match it.
let g:ale_go_goimports_executable = 'xxxinvalid'
let g:ale_go_goimports_options = ''
+ let g:ale_go_go111module = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
call ale#test#SetFilename('../go_files/testfile.go')
@@ -39,3 +40,16 @@ Execute(The goimports callback should include extra options):
\ 'command': ale#Escape(g:ale_go_goimports_executable) . ' -l -w -srcdir %s --xxx %t'
\ },
\ ale#fixers#goimports#Fix(bufnr(''))
+
+Execute(The goimports callback should support Go environment variables):
+ let g:ale_go_goimports_executable = has('win32') ? 'cmd' : 'echo'
+ let g:ale_go_go111module = 'on'
+
+ AssertEqual
+ \ {
+ \ 'read_temporary_file': 1,
+ \ 'command': ale#Env('GO111MODULE', 'on')
+ \ . ale#Escape(g:ale_go_goimports_executable)
+ \ . ' -l -w -srcdir %s %t'
+ \ },
+ \ ale#fixers#goimports#Fix(bufnr(''))
diff --git a/test/fixers/test_gomod_fixer_callback.vader b/test/fixers/test_gomod_fixer_callback.vader
index a378e961..40658223 100644
--- a/test/fixers/test_gomod_fixer_callback.vader
+++ b/test/fixers/test_gomod_fixer_callback.vader
@@ -3,6 +3,7 @@ Before:
" Use an invalid global executable, so we don't match it.
let g:ale_go_go_executable = 'xxxinvalid'
+ let g:ale_go_go111module = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
After:
@@ -12,7 +13,7 @@ After:
Execute(The gomod callback should return the correct default values):
call ale#test#SetFilename('../go_files/go.mod')
- setl ft=gomod
+ setl filetype=gomod
AssertEqual
\ {
@@ -22,3 +23,16 @@ Execute(The gomod callback should return the correct default values):
\ . ' %t',
\ },
\ ale#fixers#gomod#Fix(bufnr(''))
+
+Execute(The gomod callback should support Go environment variables):
+ call ale#test#SetFilename('../go_files/go.mod')
+ setl filetype=gomod
+ let g:ale_go_go111module = 'on'
+
+ AssertEqual
+ \ {
+ \ 'read_temporary_file': 1,
+ \ 'command': ale#Env('GO111MODULE', 'on')
+ \ . ale#Escape('xxxinvalid') . ' mod edit -fmt %t'
+ \ },
+ \ ale#fixers#gomod#Fix(bufnr(''))