# HG changeset patch # User Bram Moolenaar # Date 1538919906 -7200 # Node ID ba1f0c06b4be2b321325bdfce12c23d403133531 # Parent 9b9ca2869f138aa8226fb766cb33e6247680c151 patch 8.1.0456: running test hangs when the input file is being edited commit https://github.com/vim/vim/commit/d8f27b30d6ec0bcfcb8f44c6201e36c003d1ce88 Author: Bram Moolenaar Date: Sun Oct 7 15:42:07 2018 +0200 patch 8.1.0456: running test hangs when the input file is being edited Problem: Running test hangs when the input file is being edited. Solution: Use a SwapExists autocommand to ignore editing the test script. diff --git a/src/testdir/Makefile b/src/testdir/Makefile --- a/src/testdir/Makefile +++ b/src/testdir/Makefile @@ -9,8 +9,10 @@ XXDPROG = ../xxd/xxd SCRIPTSOURCE = ../../runtime -# Change this to empty to see the verbose output of tests. -REDIR_TEST_TO_NULL = > /dev/null +# Comment out this line to see the verbose output of tests. +# +# Catches SwapExists to avoid hanging at the ATTENTION prompt. +REDIR_TEST_TO_NULL = --cmd 'au SwapExists * let v:swapchoice = "e"' > /dev/null # Uncomment this line to use valgrind for memory leaks and extra warnings. # The output goes into a file "valgrind.testN" diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim --- a/src/testdir/runtest.vim +++ b/src/testdir/runtest.vim @@ -57,6 +57,19 @@ else set encoding=latin1 endif +" REDIR_TEST_TO_NULL has a very permissive SwapExists autocommand which is for +" the test_name.vim file itself. Replace it here with a more restrictive one, +" so we still catch mistakes. +let s:test_script_fname = expand('%') +au! SwapExists * call HandleSwapExists() +func HandleSwapExists() + " Only ignore finding a swap file for the test script (the user might be + " editing it and do ":make test_name") and the output file. + if expand('') == 'messages' || expand('') =~ s:test_script_fname + let v:swapchoice = 'e' + endif +endfunc + " Avoid stopping at the "hit enter" prompt set nomore @@ -146,6 +159,7 @@ func RunTheTest(test) " Clear any autocommands au! + au SwapExists * call HandleSwapExists() " Close any extra tab pages and windows and make the current one not modified. while tabpagenr('$') > 1 diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -793,6 +793,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 456, +/**/ 455, /**/ 454,