Add vader tests and docker setup
This commit is contained in:
parent
0441be5e34
commit
94d62ad7f2
17
Dockerfile
Normal file
17
Dockerfile
Normal file
@ -0,0 +1,17 @@
|
||||
FROM tweekmonster/vim-testbed:latest
|
||||
|
||||
ENV PACKAGES="\
|
||||
bash \
|
||||
git \
|
||||
python \
|
||||
py-pip \
|
||||
"
|
||||
RUN apk --update add $PACKAGES && \
|
||||
rm -rf /var/cache/apk/* /tmp/* /var/tmp/*
|
||||
|
||||
RUN pip install vim-vint
|
||||
RUN git clone https://github.com/junegunn/vader.vim vader
|
||||
|
||||
RUN install_vim -tag v7.4.1099 -build \
|
||||
-tag v8.0.0027 -build \
|
||||
-tag v8.1.0519 -build
|
26
test/Readme.md
Normal file
26
test/Readme.md
Normal file
@ -0,0 +1,26 @@
|
||||
# Vimwiki Tests
|
||||
|
||||
This directory contains a test framework used to automatically test/verify
|
||||
Vimwiki functionality. It is based on the following tools:
|
||||
|
||||
- [vim-testbed](https://github.com/tweekmonster/vim-testbed)
|
||||
- [Vader](https://github.com/junegunn/vader.vim)
|
||||
|
||||
## Resources
|
||||
|
||||
- [Vim patches](http://ftp.vim.org/pub/vim/patches/)
|
||||
- Example test cases:
|
||||
- [vim-easy-align](https://github.com/junegunn/vim-easy-align/tree/master/test)
|
||||
- [vim-plug](https://github.com/junegunn/vim-plug/tree/master/test)
|
||||
- [ale](https://github.com/w0rp/ale/tree/master/test)
|
||||
- [Other projects](https://github.com/junegunn/vader.vim/wiki/Projects-using-Vader)
|
||||
|
||||
## Manual Steps
|
||||
|
||||
To build the Docker image run `docker build -t vimwiki` from the Vimwiki
|
||||
repository root (same location as the Dockerfile).
|
||||
|
||||
To start the tests run `docker run -it --rm -v $PWD:/testplugin -v $PWD/test:/home vimwiki vim-v7.4.1099 -u test/vimrc -i NONE '+Vader! test/*'`
|
||||
also from the repository root.
|
||||
|
||||
- Substitute `vim-v7.4.1099` for any of the vim versions in the Dockerfile.
|
@ -1,18 +0,0 @@
|
||||
" From https://github.com/vimwiki/vimwiki/pull/601
|
||||
$ gvim -u NONE -U NONE -N -i NONE
|
||||
<commands below can be copied to clipboard and run with `:@+`>
|
||||
set nocompatible
|
||||
filetype plugin on
|
||||
syntax on
|
||||
let g:vimwiki_camel_case = 0 " Don't make links from CamelCased words
|
||||
let g:vimwiki_table_auto_fmt = 0 " Turn off table auto-formatting
|
||||
let g:vimwiki_autowriteall = 0
|
||||
let g:vimwiki_folding = 'expr:quick' " Enable folding.
|
||||
let &rtp.=',~/.vim/bundle/vimwiki'
|
||||
source ~/.vim/bundle/vimwiki/plugin/vimwiki.vim
|
||||
e ~/tmp/delay.wiki
|
||||
normal! 50%
|
||||
normal! zozo
|
||||
tabe
|
||||
let start = reltime() | tabprev | redraw | echom reltimestr(reltime(start))
|
||||
" >>> expected: less than 0.5 seconds
|
31
test/tabnext_delay.vader
Normal file
31
test/tabnext_delay.vader
Normal file
@ -0,0 +1,31 @@
|
||||
Before (Setup):
|
||||
let g:vimwiki_folding = 'expr:quick'
|
||||
|
||||
" clear mappings so plugin can be reloaded
|
||||
" this is needed if running manually multiple times
|
||||
nmapclear
|
||||
|
||||
" reload the plugin to set the fold method
|
||||
unlet g:loaded_vimwiki
|
||||
source plugin/vimwiki.vim
|
||||
|
||||
Execute (Expect < 0.5 second delay: Issue #580):
|
||||
" prep
|
||||
edit test/resources/delay.wiki
|
||||
normal! 50%
|
||||
normal! zozo
|
||||
tabedit
|
||||
|
||||
" run test
|
||||
let start = reltime()
|
||||
tabprev
|
||||
redraw
|
||||
let end = str2float(reltimestr(reltime(start)))
|
||||
|
||||
" cleanup
|
||||
bdelete test/resources/delay.wiki
|
||||
tabclose
|
||||
|
||||
" verify
|
||||
Log 'Elapsed time = ' . string(end)
|
||||
Assert end < 0.5, 'Took longer than expected: ' . string(end) . ' seconds'
|
34
test/vimrc
Normal file
34
test/vimrc
Normal file
@ -0,0 +1,34 @@
|
||||
source /rtp.vim
|
||||
set runtimepath+=/vader
|
||||
|
||||
" vint: -ProhibitSetNoCompatible
|
||||
set nocompatible
|
||||
filetype plugin indent on
|
||||
syntax enable
|
||||
|
||||
" default syntax
|
||||
let vimwiki_default = {}
|
||||
let vimwiki_default.path = '~/vimwiki/default'
|
||||
let vimwiki_default.path_html = '~/vimwiki/default/html'
|
||||
let vimwiki_default.syntax = 'default'
|
||||
let vimwiki_default.ext = '.wiki'
|
||||
let vimwiki_default.name = 'DefaultSyntax'
|
||||
|
||||
" markdown syntax - https://github.github.com/gfm/
|
||||
let vimwiki_markdown = {}
|
||||
let vimwiki_markdown.path = '~/vimwiki/markdown'
|
||||
let vimwiki_markdown.path_html = '~/vimwiki/markdown/html'
|
||||
let vimwiki_markdown.syntax = 'markdown'
|
||||
let vimwiki_markdown.ext = '.md'
|
||||
let vimwiki_markdown.name = 'MarkdownSyntax'
|
||||
|
||||
" mediawiki syntax - https://www.mediawiki.org/wiki/Help:Formatting
|
||||
let vimwiki_mediawiki = {}
|
||||
let vimwiki_mediawiki.path = '~/vimwiki_mediawiki'
|
||||
let vimwiki_mediawiki.path_html = '~/vimwiki/mediawiki/html'
|
||||
let vimwiki_mediawiki.syntax = 'mediawiki'
|
||||
let vimwiki_mediawiki.ext = '.mw'
|
||||
let vimwiki_mediawiki.name = 'MediaWikiSyntax'
|
||||
|
||||
" register the 3 wikis
|
||||
let g:vimwiki_list = [vimwiki_default, vimwiki_markdown, vimwiki_mediawiki]
|
Loading…
Reference in New Issue
Block a user