vimwiki

Personal wiki for vim
git clone https://github.com/vimwiki/vimwiki.git
Log | Files | Refs | README | LICENSE

commit 594ac7dbe15fea85f9d6fd966f229247f71e0a26
parent fcb5850c28cf4eb62a1466db7972463cc6360ddf
Author: Rane Brown <rane.brown@gmail.com>
Date:   Wed, 24 Jul 2019 21:57:01 -0600

Update test script and documentation.

Diffstat:
MDockerfile | 5++++-
Mtest/Readme.md | 34++++++++++++++++++++++++++++++----
Mtest/run_tests.sh | 22+++++++++++-----------
3 files changed, 45 insertions(+), 16 deletions(-)

diff --git a/Dockerfile b/Dockerfile @@ -12,10 +12,13 @@ RUN pip3 install --upgrade pip setuptools RUN pip3 install vim-vint RUN git clone https://github.com/junegunn/vader.vim vader +# Notable versions: +# v7.4.1546 sticky type checking removed (allow a variables type to change) +# v7.3.831 getbufvar added a default value +# v8.0 async jobs and timers RUN install_vim -tag v7.3.429 -name vim_7.3.429 -build \ -tag v7.4.1099 -name vim_7.4.1099 -build \ -tag v7.4.1546 -name vim_7.4.1546 -build \ -tag v8.0.0027 -name vim_8.0.0027 -build \ -tag v8.1.0519 -name vim_8.1.0519 -build \ - -tag neovim:v0.2.2 -name nvim_0.2.2 -build \ -tag neovim:v0.3.8 -name nvim_0.3.8 -build \ diff --git a/test/Readme.md b/test/Readme.md @@ -5,6 +5,7 @@ Vimwiki functionality. It is based on the following tools: - [vim-testbed](https://github.com/tweekmonster/vim-testbed) - [Vader](https://github.com/junegunn/vader.vim) +- [Vint](https://github.com/Kuniwak/vint) ## Resources @@ -15,12 +16,37 @@ Vimwiki functionality. It is based on the following tools: - [ale](https://github.com/w0rp/ale/tree/master/test) - [Other projects](https://github.com/junegunn/vader.vim/wiki/Projects-using-Vader) -## Manual Steps +## Building Docker Image 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. +## Running Tests - - Substitute `vim-v7.4.1099` for any of the vim versions in the Dockerfile. +### Manual Steps + +Starting in the test directory run this command: + +```sh +docker run -it --rm -v $PWD/../:/testplugin -v $PWD/../test:/home vimwiki vim_7.4.1099 -u test/vimrc -i NONE +``` + +This will open a vim instance in the docker container and then all tests +can be run with `:Vader test/*` or individual tests can be run. + +**Note:** Substitute `vim_7.4.1099` for any of the vim versions in the Dockerfile. + +### Automated Tests + +The script in the `test/` directory named `run_test.sh` can be used to +automatically run all tests for all installed vim versions. The vim/nvim +versions are parsed from the Dockerfile. This script will also run `Vint` for all +plugin source files. For more information run `./run_tests.sh -h`. + +## Known Issues + +1. neovim v0.2.x does not work correctly with Vader output from the docker + container. No test results are printed and an error message saying + `Vim: Error reading input, exiting...` + - Probably need to look into this more and determine if the issue is Vader, + Neovim, or Docker. diff --git a/test/run_tests.sh b/test/run_tests.sh @@ -56,12 +56,16 @@ vader_filter() { local err=0 while read -r; do if [[ "$verbose" == 0 ]]; then - if [[ "$REPLY" = *'docker:'* ]]; then - # print line starting with 'docker:' since it could be an error with - # the docker container starting + # only print possible error cases + if [[ "$REPLY" = *'docker:'* ]] || \ + [[ "$REPLY" = *'Starting Vader:'* ]] || \ + [[ "$REPLY" = *'Vader error:'* ]] || \ + [[ "$REPLY" = *'Vim: Error '* ]]; then echo "$REPLY" - elif [[ "$REPLY" = *'Starting Vader:'* ]]; then + elif [[ "$REPLY" = *'[EXECUTE] (X)'* ]] || \ + [[ "$REPLY" = *'[ EXPECT] (X)'* ]]; then echo "$REPLY" + err=1 elif [[ "$REPLY" = *'Success/Total:'* ]]; then success="$(echo -n "$REPLY" | grep -o '[0-9]\+/' | head -n1 | cut -d/ -f1)" total="$(echo -n "$REPLY" | grep -o '/[0-9]\+' | head -n1 | cut -d/ -f2)" @@ -69,13 +73,6 @@ vader_filter() { err=1 fi echo "$REPLY" - elif [[ "$REPLY" = *'[EXECUTE] (X)'* ]] || [[ "$REPLY" = *'[ EXPECT] (X)'* ]]; then - echo "$REPLY" - err=1 - elif [[ "$REPLY" = *'Vader error:'* ]]; then - echo "$REPLY" - elif [[ "$REPLY" = *'Vim: Error '* ]]; then - echo "$REPLY" fi else # just print everything @@ -174,6 +171,9 @@ if [[ $# -ne 0 ]]; then exit 1 fi +# stop tests on ctrl-c or ctrl-z +trap exit 1 SIGINT SIGTERM + # select which tests should run case $type in "vader" )