Fix issues with running individual tests, and get the Vim tests to run on certain machines again
This commit is contained in:
parent
c67d3b7e60
commit
836a2cfe3b
@ -3,6 +3,34 @@
|
|||||||
"
|
"
|
||||||
" This file should not typically be loaded during the normal execution of ALE.
|
" This file should not typically be loaded during the normal execution of ALE.
|
||||||
|
|
||||||
|
" Change the directory for checking things in particular test directories
|
||||||
|
"
|
||||||
|
" This function will set the g:dir variable, which represents the working
|
||||||
|
" directory after changing the path. This variable allows a test to change
|
||||||
|
" directories, and then switch back to a directory at the start of the test
|
||||||
|
" run.
|
||||||
|
"
|
||||||
|
" This function should be run in a Vader Before: block.
|
||||||
|
function! ale#test#SetDirectory(docker_path) abort
|
||||||
|
if a:docker_path[:len('/testplugin/') - 1] !=# '/testplugin/'
|
||||||
|
throw 'docker_path must start with /testplugin/!'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" 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()
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" When g:dir is defined, switch back to the directory we saved, and then
|
||||||
|
" delete that variable.
|
||||||
|
"
|
||||||
|
" This function should be run in a Vader After: block.
|
||||||
|
function! ale#test#RestoreDirectory() abort
|
||||||
|
silent execute 'cd ' . fnameescape(g:dir)
|
||||||
|
unlet! g:dir
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Change the filename for the current buffer using a relative path to
|
" Change the filename for the current buffer using a relative path to
|
||||||
" the script without running autocmd commands.
|
" the script without running autocmd commands.
|
||||||
"
|
"
|
||||||
|
11
run-tests
11
run-tests
@ -45,6 +45,15 @@ while [ $# -ne 0 ]; do
|
|||||||
run_neovim_tests=0
|
run_neovim_tests=0
|
||||||
run_vint=0
|
run_vint=0
|
||||||
run_custom_checks=0
|
run_custom_checks=0
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--no-vint)
|
||||||
|
run_vint=0
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--no-custom-checks)
|
||||||
|
run_custom_checks=0
|
||||||
|
shift
|
||||||
;;
|
;;
|
||||||
--)
|
--)
|
||||||
shift
|
shift
|
||||||
@ -161,7 +170,7 @@ if ((run_vim_tests)); then
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
docker run -a stderr "${DOCKER_FLAGS[@]}" \
|
docker run -a stderr -e VADER_OUTPUT_FILE=/dev/stderr "${DOCKER_FLAGS[@]}" \
|
||||||
"/vim-build/bin/$vim" -u test/vimrc \
|
"/vim-build/bin/$vim" -u test/vimrc \
|
||||||
"+Vader! $tests" 2>&1 | filter-vader-output | color-vader-output || EXIT=$?
|
"+Vader! $tests" 2>&1 | filter-vader-output | color-vader-output || EXIT=$?
|
||||||
set +o pipefail
|
set +o pipefail
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Before:
|
||||||
|
runtime ale_linters/javascript/jscs.vim
|
||||||
|
|
||||||
|
After:
|
||||||
|
call ale#linter#Reset()
|
||||||
|
|
||||||
Execute(jscs should parse lines correctly):
|
Execute(jscs should parse lines correctly):
|
||||||
AssertEqual
|
AssertEqual
|
||||||
|
@ -1,15 +1,17 @@
|
|||||||
Execute(Open a file some directory down):
|
Before:
|
||||||
silent! cd /testplugin/test
|
call ale#test#SetDirectory('/testplugin/test')
|
||||||
:e! top/middle/bottom/dummy.txt
|
|
||||||
|
After:
|
||||||
|
call ale#test#RestoreDirectory()
|
||||||
|
|
||||||
|
Execute(We should be able to find a directory some directory down):
|
||||||
|
call ale#test#SetFilename('top/middle/bottom/dummy.txt')
|
||||||
|
|
||||||
Then(We should be able to find the right directory):
|
|
||||||
AssertEqual
|
AssertEqual
|
||||||
\ expand('%:p:h:h:h:h') . '/top/ale-special-directory-name-dont-use-this-please/',
|
\ expand('%:p:h:h:h:h') . '/top/ale-special-directory-name-dont-use-this-please/',
|
||||||
\ ale#path#FindNearestDirectory(bufnr('%'), 'ale-special-directory-name-dont-use-this-please')
|
\ ale#path#FindNearestDirectory(bufnr('%'), 'ale-special-directory-name-dont-use-this-please')
|
||||||
|
|
||||||
Execute(Do nothing):
|
Execute(We shouldn't find anything for files which don't match):
|
||||||
|
|
||||||
Then(We shouldn't find anything for files which don't match):
|
|
||||||
AssertEqual
|
AssertEqual
|
||||||
\ '',
|
\ '',
|
||||||
\ ale#path#FindNearestDirectory(bufnr('%'), 'ale-this-should-never-match-anything')
|
\ ale#path#FindNearestDirectory(bufnr('%'), 'ale-this-should-never-match-anything')
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
Execute(Open a file some directory down):
|
Before:
|
||||||
silent! cd /testplugin/test
|
call ale#test#SetDirectory('/testplugin/test')
|
||||||
:e! top/middle/bottom/dummy.txt
|
|
||||||
|
After:
|
||||||
|
call ale#test#RestoreDirectory()
|
||||||
|
|
||||||
|
Execute(We should be able to find a configuration file further up):
|
||||||
|
call ale#test#SetFilename('top/middle/bottom/dummy.txt')
|
||||||
|
|
||||||
Then(We should be able to find a configuration file further up):
|
|
||||||
AssertEqual expand('%:p:h:h:h:h') . '/top/example.ini', ale#path#FindNearestFile(bufnr('%'), 'example.ini')
|
AssertEqual expand('%:p:h:h:h:h') . '/top/example.ini', ale#path#FindNearestFile(bufnr('%'), 'example.ini')
|
||||||
|
|
||||||
Execute(Do nothing):
|
Execute(We shouldn't find anything for files which don't match):
|
||||||
|
|
||||||
Then(We shouldn't find anything for files which don't match):
|
|
||||||
AssertEqual '', ale#path#FindNearestFile(bufnr('%'), 'cantfindthis')
|
AssertEqual '', ale#path#FindNearestFile(bufnr('%'), 'cantfindthis')
|
||||||
|
@ -1,15 +1,17 @@
|
|||||||
Execute(Open a file some directory down):
|
Before:
|
||||||
silent! cd /testplugin/test
|
call ale#test#SetDirectory('/testplugin/test')
|
||||||
:e! top/middle/bottom/dummy.txt
|
|
||||||
|
After:
|
||||||
|
call ale#test#RestoreDirectory()
|
||||||
|
|
||||||
|
Execute(We should be able to find the local version of a file):
|
||||||
|
call ale#test#SetFilename('top/middle/bottom/dummy.txt')
|
||||||
|
|
||||||
Then(We should be able to find the local version of a file):
|
|
||||||
AssertEqual
|
AssertEqual
|
||||||
\ expand('%:p:h:h:h:h') . '/top/example.ini',
|
\ expand('%:p:h:h:h:h') . '/top/example.ini',
|
||||||
\ ale#path#ResolveLocalPath(bufnr('%'), 'example.ini', '/global/config.ini')
|
\ ale#path#ResolveLocalPath(bufnr('%'), 'example.ini', '/global/config.ini')
|
||||||
|
|
||||||
Execute(Do nothing):
|
Execute(We shouldn't find anything for files which don't match):
|
||||||
|
|
||||||
Then(We shouldn't find anything for files which don't match):
|
|
||||||
AssertEqual
|
AssertEqual
|
||||||
\ '/global/config.ini',
|
\ '/global/config.ini',
|
||||||
\ ale#path#ResolveLocalPath(bufnr('%'), 'missing.ini', '/global/config.ini')
|
\ ale#path#ResolveLocalPath(bufnr('%'), 'missing.ini', '/global/config.ini')
|
||||||
|
@ -47,6 +47,12 @@ Execute(ALE shouldn't blow up when run from a sandbox):
|
|||||||
sandbox call ale#Lint()
|
sandbox call ale#Lint()
|
||||||
|
|
||||||
Execute(ALE shouldn't blow up if file cleanup happens in a sandbox):
|
Execute(ALE shouldn't blow up if file cleanup happens in a sandbox):
|
||||||
|
" Make a call to an engine function first, so the function will be defined
|
||||||
|
" before we make the sandbox call.
|
||||||
|
"
|
||||||
|
" You are not allowed to define any functions in the sandbox.
|
||||||
|
call ale#engine#InitBufferInfo(3)
|
||||||
|
|
||||||
let g:ale_buffer_info[3] = {
|
let g:ale_buffer_info[3] = {
|
||||||
\ 'temporary_file_list': ['/tmp/foo'],
|
\ 'temporary_file_list': ['/tmp/foo'],
|
||||||
\ 'temporary_directory_list': ['/tmp/bar'],
|
\ 'temporary_directory_list': ['/tmp/bar'],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user