summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-09-12 09:36:16 +0100
committerw0rp <devw0rp@gmail.com>2017-09-12 09:36:16 +0100
commite2271b769c6fbf8bc09c6ab729175edf8d77c452 (patch)
tree02950a047bc79782c8c0d517a38c863c8e67a18c
parent7f42aedaec4642aa81802a4a03ea1d0a01bb0c4e (diff)
downloadale-e2271b769c6fbf8bc09c6ab729175edf8d77c452.zip
Ban getcwd() from the codebase, as it causes problems
-rw-r--r--autoload/ale/test.vim4
-rwxr-xr-xtest/script/custom-checks1
2 files changed, 3 insertions, 2 deletions
diff --git a/autoload/ale/test.vim b/autoload/ale/test.vim
index 346786c7..5fe4bed0 100644
--- a/autoload/ale/test.vim
+++ b/autoload/ale/test.vim
@@ -19,7 +19,7 @@ function! ale#test#SetDirectory(docker_path) abort
" Try to switch directory, which will fail when running tests directly,
" and not through the Docker image.
silent! execute 'cd ' . fnameescape(a:docker_path)
- let g:dir = getcwd()
+ let g:dir = getcwd() " no-custom-checks
endfunction
" When g:dir is defined, switch back to the directory we saved, and then
@@ -43,7 +43,7 @@ function! ale#test#SetFilename(path) abort
let l:dir = get(g:, 'dir', '')
if empty(l:dir)
- let l:dir = getcwd()
+ let l:dir = getcwd() " no-custom-checks
endif
let l:full_path = ale#path#IsAbsolute(a:path)
diff --git a/test/script/custom-checks b/test/script/custom-checks
index 3624ffd7..a1a734d8 100755
--- a/test/script/custom-checks
+++ b/test/script/custom-checks
@@ -85,6 +85,7 @@ check_errors 'let g:ale_\w\+_\w\+_args =' 'Name your option g:ale_<filetype>_<li
check_errors 'shellescape(' 'Use ale#Escape instead of shellescape'
check_errors 'simplify(' 'Use ale#path#Simplify instead of simplify'
check_errors "expand(['\"]%" "Use expand('#' . a:buffer . '...') instead. You might get a filename for the wrong buffer."
+check_errors 'getcwd()' "Do not use getcwd(), as it could run from the wrong buffer. Use expand('#' . a:buffer . ':p:h') instead."
check_errors '==#' "Use 'is#' instead of '==#'. 0 ==# 'foobar' is true"
check_errors '==?' "Use 'is?' instead of '==?'. 0 ==? 'foobar' is true"
check_errors '!=#' "Use 'isnot#' instead of '!=#'. 0 !=# 'foobar' is false"