Add Docker setup for testing

This commit is contained in:
Ernst Widerberg 2021-11-20 13:05:56 +01:00
parent 186645a0aa
commit 5b8a833fe9
4 changed files with 58 additions and 22 deletions

22
Dockerfile Normal file
View file

@ -0,0 +1,22 @@
FROM ubuntu
RUN apt update && apt install -y \
git \
vim \
neovim
WORKDIR root
RUN git clone https://github.com/junegunn/vader.vim
COPY . main
RUN mkdir -p /root/.vim/pack/all/start
RUN mkdir -p /root/.local/share/nvim/site/pack/all/start
RUN ln -s /root/* /root/.vim/pack/all/start
RUN ln -s /root/* /root/.local/share/nvim/site/pack/all/start
RUN echo "set encoding=utf-8" > /root/.vim/vimrc
WORKDIR main
ENTRYPOINT ["./run-tests.sh"]

View file

@ -41,6 +41,9 @@ See [`:help secret-highlight`](./doc/secret.txt#L74) for more info.
## Testing
`make` can be used to do testing in an isolated environment. The default target runs `test/*.vader` in Vim and Neovim.
Docker can be used to run tests in an isolated environment:
Thanks to [vim-sneak](https://github.com/justinmk/vim-sneak) for this idea.
```
$ docker build -t vim-secret .
$ docker run --rm vim-secret [--verbose]
```

View file

@ -1,20 +0,0 @@
VIM = vim -N -u NORC -i NONE --cmd 'set rtp=test/vim-vader packpath='
all: v nv
v: test/vim-vader
$(VIM) -c 'Vader! test/*.vader'
v-i: test/vim-vader
$(VIM) -c 'Vader test/*.vader'
nv: test/vim-vader
n$(VIM) --headless -c 'Vader! test/*.vader'
nv-i: test/vim-vader
n$(VIM) -c 'Vader test/*.vader'
test/vim-vader:
git clone https://github.com/junegunn/vader.vim test/vim-vader || ( cd test/vim-vader && git pull --rebase )
.PHONY: all v v-i nv nv-i

31
run-tests.sh Executable file
View file

@ -0,0 +1,31 @@
#!/usr/bin/env bash
if [[ $1 == "--verbose" || $1 == "-v" ]]; then
VERBOSE=1
fi
check_results() {
if [[ $? -eq 0 ]]; then
echo -e "\e[32m$1: PASS\e[0m"
else
echo -e "\e[31m$1: FAIL\e[0m"
fi
if [[ $VERBOSE == 1 ]]; then
sed -n '/^Starting Vader:/,$p' < vader_output
fi
}
export VADER_OUTPUT_FILE=vader_output
vim.basic --not-a-term -c Vader! test/*.vader &>/dev/null
check_results "VIM" $1
rm vader_output
if [[ $VERBOSE == 1 ]]; then
echo ""
fi
nvim -es -c Vader! test/*.vader
check_results "NEOVIM" $1
rm vader_output