@@ -34,9 +34,9 @@ endfunc
3434" Read the "Xnetbeans" file and filter out geometry messages.
3535func ReadXnetbeans ()
3636 let l = readfile (" Xnetbeans" )
37- " Xnetbeans may include '0:geometry=' messages on GUI environment if window
37+ " Xnetbeans may include '0:geometry=' messages in the GUI Vim if the window
3838 " position, size, or z order are changed. Remove these messages because
39- " will causes troubles on check .
39+ " these message will break the assert for the output .
4040 return filter (l , ' v:val !~ "^0:geometry="' )
4141endfunc
4242
@@ -388,7 +388,7 @@ func Nb_basic(port)
388388 call assert_equal (' send: 2:defineAnnoType!60 1 "s1" "x" "=>" blue none' , l [-1 ])
389389 sleep 1 m
390390 call assert_equal ({' name' : ' 1' , ' texthl' : ' NB_s1' , ' text' : ' =>' },
391- \ sign_getdefined ()[ 0 ] )
391+ \ sign_getdefined ()- > get ( 0 , {}) )
392392 let g: last += 3
393393
394394 " defineAnnoType with a long color name
@@ -892,4 +892,44 @@ func Test_nb_quit_with_conn()
892892 call s: run_server (' Nb_quit_with_conn' )
893893endfunc
894894
895+ func Nb_bwipe_buffer (port)
896+ call delete (" Xnetbeans" )
897+ call writefile ([], " Xnetbeans" )
898+
899+ " Last line number in the Xnetbeans file. Used to verify the result of the
900+ " communication with the netbeans server
901+ let g: last = 0
902+
903+ " Establish the connection with the netbeans server
904+ exe ' nbstart :localhost:' .. a: port .. ' :bunny'
905+ call WaitFor (' len(ReadXnetbeans()) > (g:last + 2)' )
906+ let l = ReadXnetbeans ()
907+ call assert_equal ([' AUTH bunny' ,
908+ \ ' 0:version=0 "2.5"' ,
909+ \ ' 0:startupDone=0' ], l [-3 :])
910+ let g: last += 3
911+
912+ " Open the command buffer to communicate with the server
913+ split Xcmdbuf
914+ call WaitFor (' len(ReadXnetbeans()) > (g:last + 2)' )
915+ let l = ReadXnetbeans ()
916+ call assert_equal (' 0:fileOpened=0 "Xcmdbuf" T F' ,
917+ \ substitute (l [-3 ], ' ".*/' , ' "' , ' ' ))
918+ call assert_equal (' send: 1:putBufferNumber!15 "Xcmdbuf"' ,
919+ \ substitute (l [-2 ], ' ".*/' , ' "' , ' ' ))
920+ call assert_equal (' 1:startDocumentListen!16' , l [-1 ])
921+ let g: last += 3
922+
923+ sleep 10 m
924+ endfunc
925+
926+ " This test used to reference a buffer after it was freed leading to an ASAN
927+ " error.
928+ func Test_nb_bwipe_buffer ()
929+ call s: run_server (' Nb_bwipe_buffer' )
930+ % bwipe!
931+ sleep 100 m
932+ nbclose
933+ endfunc
934+
895935" vim: shiftwidth = 2 sts = 2 expandtab
0 commit comments