From 3c605982397ff49af905c7fde485c678bf9915e9 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Mon, 1 Dec 2025 10:16:24 +0800 Subject: [PATCH] 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 --- test/old/testdir/test_matchfuzzy.vim | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/old/testdir/test_matchfuzzy.vim b/test/old/testdir/test_matchfuzzy.vim index 517f87b9ad..833743faa4 100644 --- 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 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, "\") call TermWait(buf, 50) endif