diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/build | 15 | ||||
-rwxr-xr-x | scripts/test | 70 | ||||
-rw-r--r-- | scripts/test_filetypes.vim | 2 |
3 files changed, 64 insertions, 23 deletions
diff --git a/scripts/build b/scripts/build index 598fc2c5..44b03e95 100755 --- a/scripts/build +++ b/scripts/build @@ -643,15 +643,10 @@ end def generate_tests(packages) output = <<~EOS function! TestFiletype(filetype) - try - enew - exec 'set ft=' . a:filetype - catch - echo 'Error loading filetype ' . a:filetype . ':' - echo v:exception - echo v:throwpoint - exec ':cq!' - endtry + call Log('Loading ' . a:filetype . ' filetype...') + + enew + exec 'set ft=' . a:filetype endfunction EOS @@ -662,7 +657,7 @@ def generate_tests(packages) end end - File.write('scripts/test_filetypes.vim', output) + File.write('tests/filetypes.vim', output) end diff --git a/scripts/test b/scripts/test index 227174d7..db6de5da 100755 --- a/scripts/test +++ b/scripts/test @@ -1,16 +1,60 @@ -#!/bin/bash +#!/usr/bin/env ruby -set -e +def run_script(src) + system("bash", "-c", src) +end -vim --clean -N -u <(echo " - let &rtp='$PWD,'.&rtp - let g:polyglot_test = 1 - source tests/extensions.vim - source tests/filetypes.vim - qa! -") +def run_vimscript(src) + wrapper = <<~EOF + vim --clean --not-a-term -u <(cat <<- "EOM" + let g:polyglot_test = 1 + let &rtp='$PWD,' . &rtp + runtime filetype.vim + set t_ti= t_te= + set shortmess+=F + set noswapfile + set nocp + set nomore + func! Log(msg) + if $DEV != '1' + echo a:msg + else + echon '.' + endif + endfunc + EOM + ) -S <(cat <<- "EOM" + try + #{src} + catch + echo v:exception + echo v:throwpoint + endtry + qa! + EOM + ) | perl -pe 's/\e\[[0-9;]*[a-zA-Z]//g' + EOF -if ! expect -c 'set timeout 1' -c 'spawn vim -N --clean -c "set nomore | :helptags ./doc | q"' -c 'expect "ENTER" { exit 1 }' > /dev/null; then - echo "Please ensure ':helptags ./doc' works properly" - exit 1 -fi + run_script(wrapper) +end + +test_helptags = <<~EOF + if ! expect -c 'set timeout 1' -c 'spawn vim -N --clean -c "set nomore | :helptags ./doc | q"' -c 'expect "ENTER" { exit 1 }' > /dev/null; then + echo "Please ensure ':helptags ./doc' works properly" + exit 1 + fi +EOF + +run_vimscript('source tests/filetypes.vim') +run_vimscript('source tests/extensions.vim') +run_script(test_helptags) + +# run_vimscript(" +# func! TestIndent(file) +# :e a:file +# echo 'ok' +# echo &filetype +# endfunc +# +# #{Dir['tests/indent/**/test.*'].map { |f| "call TestIndent(\"#{f}\")"}.join("\n")} +# ") diff --git a/scripts/test_filetypes.vim b/scripts/test_filetypes.vim index 02d44ca4..4ce20e72 100644 --- a/scripts/test_filetypes.vim +++ b/scripts/test_filetypes.vim @@ -1,4 +1,6 @@ function! TestFiletype(filetype) + call Log('Loading ' . a:filetype . ' filetype...') + try enew exec 'set ft=' . a:filetype |