Am Tue, Jul 28, 2026 at 07:18:44AM -0400, schrieb James McCoy:
> The completion.test.vim, completion_info.test.vim, and
> completion_noresolve.test.vim autopkgtests all fail like below:
> 
> Found errors in Test_Select_Next_Previous_InsertModeMapping(). Retrying.
> command line..script 
> /tmp/autopkgtest-lxc.tg7g_8lw/downtmp/build.1jz/src/test/lib/run_test.vim[387]..function
>  
> RunTheTest[68]..Test_Select_Next_Previous_InsertModeMapping[52]..FeedAndCheckMain[2]..Check2[2]..CheckCurrentLine
>  line 1: Expected '  foo.c' but got '  foo.'
> command line..script 
> /tmp/autopkgtest-lxc.tg7g_8lw/downtmp/build.1jz/src/test/lib/run_test.vim[387]..function
>  
> RunTheTest[68]..Test_Select_Next_Previous_InsertModeMapping[52]..FeedAndCheckMain[2]..Check3[2]..CheckCurrentLine
>  line 1: Expected '  foo.x' but got '  foo.'
> command line..script 
> /tmp/autopkgtest-lxc.tg7g_8lw/downtmp/build.1jz/src/test/lib/run_test.vim[387]..function
>  
> RunTheTest[68]..Test_Select_Next_Previous_InsertModeMapping[52]..FeedAndCheckMain[2]..Check4[1]..CheckCurrentLine
>  line 1: Expected '  foo.a' but got '  fooa'

They use all the shared `test/completion.common.vim` that contains
the failing test, so that seems expected. I can also confirm that
2:9.2.0858-1 (current sid) & 2:9.2.0782-1 (previous sid) exhibit
this behaviour while 2:9.2.0524-1+b1 (current testing) does not.


> I haven't had time yet to try and bisect which patch changed the
> behavior.

The test is the same as another one that works just fine except
that it inoremap's <C-n> to <Down>. The test triggers the
completion popup (that offers the choices c, x & a as they are
member variables of the foo struct, but whatever) by writing '.'.
Pressing "next" in the form of <Tab>, <Down> or even default <C-n>
selects the first/next item in the completion choice and crucially
writes the choice to the line as well.

The later does not happen anymore with the remap of <C-n>,
but only for <C-n>. <Down> directly works as before.
That seems like a very odd behaviour change…

I am not quite sure what the point of this exercise is through
and the upstream commit adding the test isn't enlightening me[0].
It seems to not effect anything big at least, so if it helps I can
disable the test for now so the CVE fixes and/or perl can pass on
to testing and worry about this at a later point in time… ?


Attached is a stripped down version of the test; it still needs
vim-youcompleteme as well as the basic.c file from the source to run
as I don't know how to convince Omni completion to spawn if I remap
the keycombo to spawn it… If that isn't telling enough, looking at
the script, you will notice immediately what a pro I am at this… 😳

$ vim -Nu vimrc_ycm_minimal.vim debian/tests/data/basic.cpp

(Disclaimer: No LLMs were harmed in the process.)


Best regards

David Kalnischkies

[0] 
https://github.com/ycm-core/YouCompleteMe/commit/6f252b3419d15c7787794d839a32a2703d249b89
set encoding=utf-8
syn on

packadd youcompleteme

" Works without the remap
inoremap <C-n> <Down>

function GetLine(id)
        call assert_equal('  foo.c', getline('.'))
endfunction

function PickCompletion(id)
        "call feedkeys("\<Down>")
        call feedkeys("\<C-n>")
        call timer_start(1000, funcref('GetLine'))
endfunction

function TriggerCompletion(id)
        call feedkeys('cl.')
        call timer_start(1000, funcref('PickCompletion'))
endfunction

function SetPosition(id)
        call setpos('.', [0,11,6])
        call timer_start(1000, funcref('TriggerCompletion'))
endfunction

function Wait()
        call timer_start(1000, funcref('SetPosition'))
endfunction
au BufReadPost */debian/tests/data/basic.cpp call Wait()

Attachment: signature.asc
Description: PGP signature

Reply via email to