summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/build15
-rwxr-xr-xscripts/test70
-rw-r--r--scripts/test_filetypes.vim2
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