diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2020-09-23 19:37:50 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2020-09-23 19:37:58 +0200 |
commit | 33f0964d53270e627e9293a3a7a2badb44353a0b (patch) | |
tree | 7372ececa3d57e4e47da3c21831a35755e637832 | |
parent | 92cb76e33a9ba4d8ac72018a26c2e99ba50d971c (diff) | |
download | vim-polyglot-33f0964d53270e627e9293a3a7a2badb44353a0b.tar.gz vim-polyglot-33f0964d53270e627e9293a3a7a2badb44353a0b.zip |
Update test script to ruby
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | indent/terraform.vim | 4 | ||||
-rwxr-xr-x | scripts/build | 15 | ||||
-rwxr-xr-x | scripts/test | 70 | ||||
-rw-r--r-- | scripts/test_filetypes.vim | 2 | ||||
-rw-r--r-- | tests/extensions.vim | 4 | ||||
-rw-r--r-- | tests/filetypes.vim | 13 | ||||
-rw-r--r-- | tests/indent/2.1/test.js | 10 | ||||
-rw-r--r-- | tests/indent/4.1/test.js | 10 |
9 files changed, 94 insertions, 36 deletions
@@ -7,4 +7,4 @@ test: @ scripts/test dev: - @ echo "packages.yaml\nheuristics.yaml\nscripts/test\nscripts/build\nscripts/test_extensions.vim" | DEV=1 entr bash -c 'make && make test' + @ echo "packages.yaml\nheuristics.yaml\nscripts/test\nscripts/build\ntests/extensions.vim" | DEV=1 entr bash -c 'make && make test' diff --git a/indent/terraform.vim b/indent/terraform.vim index c035c216..4f536c48 100644 --- a/indent/terraform.vim +++ b/indent/terraform.vim @@ -10,11 +10,11 @@ let s:cpo_save = &cpoptions set cpoptions&vim setlocal nolisp -setlocal autoindent shiftwidth=2 tabstop=2 softtabstop=2 +setlocal autoindent shiftwidth=2 tabstop=2 softtabstop=2 expandtab setlocal indentexpr=TerraformIndent(v:lnum) setlocal indentkeys+=<:>,0=},0=) let b:undo_indent = 'setlocal lisp< autoindent< shiftwidth< tabstop< softtabstop<' - \ . ' indentexpr< indentkeys<' + \ . ' expandtab< indentexpr< indentkeys<' let &cpoptions = s:cpo_save unlet s:cpo_save 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 diff --git a/tests/extensions.vim b/tests/extensions.vim index 467ac86a..98a93796 100644 --- a/tests/extensions.vim +++ b/tests/extensions.vim @@ -1,8 +1,10 @@ function! TestExtension(filetype, filename, content) + call Log('Detecting ' . a:filetype . ' filetype (' . a:filename . ')...') + try let g:message = "" exec "noautocmd n " . a:filename - put =a:content + silent put =a:content 1delete _ filetype detect exec "if &filetype != '" . a:filetype . "' \nthrow &filetype\nendif" diff --git a/tests/filetypes.vim b/tests/filetypes.vim index 02d44ca4..3128a730 100644 --- a/tests/filetypes.vim +++ b/tests/filetypes.vim @@ -1,13 +1,8 @@ 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 call TestFiletype('8th') diff --git a/tests/indent/2.1/test.js b/tests/indent/2.1/test.js new file mode 100644 index 00000000..bfe70006 --- /dev/null +++ b/tests/indent/2.1/test.js @@ -0,0 +1,10 @@ +// File with 2-spaces indentation +function foobar() { + foo = bar + while (true) { + fizfuz() + fizfuz() + fizfuz() + fizfuz() + } +} diff --git a/tests/indent/4.1/test.js b/tests/indent/4.1/test.js new file mode 100644 index 00000000..64e95103 --- /dev/null +++ b/tests/indent/4.1/test.js @@ -0,0 +1,10 @@ +// File with 4-spaces indentation +function foobar() { + foo = bar + while (true) { + fizfuz() + fizfuz() + fizfuz() + fizfuz() + } +} |