commit 3c605982397ff49af905c7fde485c678bf9915e9
parent acfb9bc614ed480791e65268dfc4d9ad36a923a3
Author: zeertzjq <zeertzjq@outlook.com>
Date: Mon, 1 Dec 2025 10:16:24 +0800
vim-patch:9.1.1937: tests: Test_matchfuzzy_initialized() fails
Problem: tests: Test_matchfuzzy_initialized() fails
Solution: Send a dummy key (Corey Hickey)
Test_matchfuzzy_initialized seems to expect that the 'lvimgrep' will be
interrupted by sending a SIGINT. If the search finishes beforehand,
though, then the SIGINT triggers vim to tell the user how to quit.
Vim does not show this message immediately, though; instead, vim shows
the message next time it is active. When StopVimInTerminal() sends a key
sequence intended to cause vim to quit, this activates vim to show the
message instead of quitting.
I do not understand every detail of the problem fully--if I type the
characters from StopVimInTerminal() into a post-SIGTERM terminal
directly, that seems to work ok; there seems to be a timing issue due to
sending all the characters at once.
This fix does make the test work reliably for me, and the test still
works even if I limit my CPU frequency so that the search is interrupted
by the SIGINT.
fixes: vim/vim#18821
related: vim/vim#18822
https://github.com/vim/vim/commit/a3925d783af75eff0ddc99f2ee8e4ca57b5909cd
Co-authored-by: Corey Hickey <bugfood-c@fatooh.org>
Diffstat:
1 file changed, 7 insertions(+), 0 deletions(-)
diff --git a/test/old/testdir/test_matchfuzzy.vim b/test/old/testdir/test_matchfuzzy.vim
@@ -316,6 +316,13 @@ func Test_matchfuzzy_initialized()
let job = term_getjob(buf)
if job_status(job) == "run"
call job_stop(job, "int")
+ " The search might or might not have been completed. If the search is
+ " finished and Vim receives a SIGINT, then that will trigger a message
+ " next time Vim is active:
+ " Type :qa and press <Enter> to exit Vim
+ " If we do not send something here to trigger displaying the message, before
+ " TermWait(), then the exit sequence sent afterward does not work.
+ call term_sendkeys(buf, "\<C-O>")
call TermWait(buf, 50)
endif