# HG changeset patch # User Bram Moolenaar # Date 1569592845 -7200 # Node ID ef35a3a70c24269938572787b2daa4982fdb697d # Parent 6ebaf89b7a059ece959a2f19272ade5d9c18b7ba patch 8.1.2087: cannot easily select one test function to execute Commit: https://github.com/vim/vim/commit/a7f6c3cf071bb6267e0bd2eb3d27ca240381ba87 Author: Bram Moolenaar Date: Fri Sep 27 15:34:16 2019 +0200 patch 8.1.2087: cannot easily select one test function to execute Problem: Cannot easily select one test function to execute. Solution: Support the $TEST_FILTER environment variable. (Ozaki Kiichi, closes #2695) diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile @@ -2262,6 +2262,10 @@ test1 \ # Run individual NEW style test. # These do not depend on the executable, compile it when needed. +# Set $TEST_FILTER to select what test function to invoke, e.g.: +# export TEST_FILTER=Test_terminal_wipe_buffer +# A partial match also works: +# export TEST_FILTER=wipe_buffer $(NEW_TESTS): cd testdir; $(MAKE) $@ VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE) diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim --- a/src/testdir/runtest.vim +++ b/src/testdir/runtest.vim @@ -384,6 +384,12 @@ if argc() > 1 let s:tests = filter(s:tests, 'v:val =~ argv(1)') endif +" If the environment variable $TEST_FILTER is set then filter the function +" names against it. +if $TEST_FILTER != '' + let s:tests = filter(s:tests, 'v:val =~ $TEST_FILTER') +endif + " Execute the tests in alphabetical order. for s:test in sort(s:tests) " Silence, please! diff --git a/src/testdir/summarize.vim b/src/testdir/summarize.vim --- a/src/testdir/summarize.vim +++ b/src/testdir/summarize.vim @@ -8,7 +8,7 @@ if 1 let g:failed += a:match+0 elseif a:type ==# 'skipped' let g:skipped += 1 - call extend(g:skipped_output, ["\t".a:match]) + call extend(g:skipped_output, ["\t" .. a:match]) endif endfunc @@ -19,6 +19,10 @@ if 1 let g:failed_output = [] let output = [""] + if $TEST_FILTER != '' + call extend(g:skipped_output, ["\tAll tests not matching $TEST_FILTER: '" .. $TEST_FILTER .. "'"]) + endif + try " This uses the :s command to just fetch and process the output of the " tests, it doesn't actually replace anything. diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -758,6 +758,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2087, +/**/ 2086, /**/ 2085,