Vimwiki Tests
This directory contains a test framework used to automatically test/verify Vimwiki functionality. It is based on the following tools:
Resources
- Vim patches
- Example test cases:
Building Docker Image
To build the Docker image run docker build -t vimwiki . from the Vimwiki
repository root (same location as the Dockerfile).
Running Tests
Manual Steps
Starting in the test directory run this command:
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.
Inside the container
$USER->vimtest: unprivileged => very hard to mess up things$HOME->/home/vimtest: but it is readonly !$PWD->/testplugin: mapped to vimwiki plugin root directory
For more information, read the base docker image
Known Issues
- 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.
- Vader does not play nice with the location list. Tests that use the location
list should be placed in
independent_runs/.
Notable Vim patches
v7.3.831getbufvaradded a default valuev7.4.236add ability to check patch with has("patch-7.4.123")v7.4.279added the option to forglobpath()to return a listv7.4.1546sticky type checking removed (allow a variables type to change)v7.4.1989filter()accepts a Funcrefv7.4.2044lambda support added - see:h expr-lambdav7.4.2120Added function "closure" argumentv7.4.2137addfuncref()v8.0async jobs and timers