From 4f648b6567a813646517fcb29a7bbd925d6d3d5c Mon Sep 17 00:00:00 2001 From: Rane Brown Date: Fri, 13 Dec 2019 19:58:08 -0700 Subject: [PATCH] Modify how tests are run to improve overall speed. A Vader issue causes problems with the test results when using the location list. Because of this the tests were modified to run 1 test file per vim instance instead of running all tests in a single vim instance. This resulted in signficant slow down in test execution time. To speed up execution time only specific tests are run individually now. --- test/Readme.md | 3 +++ test/{ => independent_runs}/search.vader | 4 ++-- test/independent_runs/vader_setup | 1 + test/independent_runs/vader_teardown | 1 + test/run_tests.sh | 11 ++++++++++- 5 files changed, 17 insertions(+), 3 deletions(-) rename test/{ => independent_runs}/search.vader (96%) create mode 120000 test/independent_runs/vader_setup create mode 120000 test/independent_runs/vader_teardown diff --git a/test/Readme.md b/test/Readme.md index a91681e..27747b4 100644 --- a/test/Readme.md +++ b/test/Readme.md @@ -50,3 +50,6 @@ plugin source files. For more information run `./run_tests.sh -h`. `Vim: Error reading input, exiting...` - Probably need to look into this more and determine if the issue is Vader, Neovim, or Docker. +2. Vader does not play nice with the location list. Tests that use the location + list should be placed in `independent_runs/`. + - [Vader Issue #199](https://github.com/junegunn/vader.vim/issues/199) diff --git a/test/search.vader b/test/independent_runs/search.vader similarity index 96% rename from test/search.vader rename to test/independent_runs/search.vader index 7ea374e..0cf0f66 100644 --- a/test/search.vader +++ b/test/independent_runs/search.vader @@ -1,4 +1,4 @@ -Include: vader_includes/vader_setup.vader +Include: vader_setup Execute (Setup search testing wrapper): function! TestSearch(search_command, test_name) @@ -63,4 +63,4 @@ Execute (Search failure message): redir END Assert match(output, 'VimwikiSearch: No match found.') > -1, "expected custom error" -Include: vader_includes/vader_teardown.vader +Include: vader_teardown diff --git a/test/independent_runs/vader_setup b/test/independent_runs/vader_setup new file mode 120000 index 0000000..a3289bd --- /dev/null +++ b/test/independent_runs/vader_setup @@ -0,0 +1 @@ +../vader_includes/vader_setup.vader \ No newline at end of file diff --git a/test/independent_runs/vader_teardown b/test/independent_runs/vader_teardown new file mode 120000 index 0000000..35ddc04 --- /dev/null +++ b/test/independent_runs/vader_teardown @@ -0,0 +1 @@ +../vader_includes/vader_teardown.vader \ No newline at end of file diff --git a/test/run_tests.sh b/test/run_tests.sh index c96f84e..6e8387a 100755 --- a/test/run_tests.sh +++ b/test/run_tests.sh @@ -36,11 +36,20 @@ runVader() { echo "" echo "Running version: $v" vim="/vim-build/bin/$v -u test/vimrc -i NONE" - test_cmd="for VF in test/*.vader; do $vim \"+Vader! \$VF\"; done" + test_cmd="for VF in test/independent_runs/*.vader; do $vim \"+Vader! \$VF\"; done" + set -o pipefail + + # tests that must be run in individual vim instances + # see README.md for more information docker run -a stderr -e VADER_OUTPUT_FILE=/dev/stderr "${flags[@]}" \ /bin/bash -c "$test_cmd" 2>&1 | vader_filter | vader_color + + # remaining tests + docker run -a stderr -e VADER_OUTPUT_FILE=/dev/stderr "${flags[@]}" \ + "$v" -u test/vimrc -i NONE "+Vader! test/*" 2>&1 | vader_filter | vader_color set +o pipefail + done }