0
0
mirror of https://github.com/vim/vim.git synced 2025-10-09 06:14:17 -04:00

patch 9.0.1165: tests using IPv6 sometimes fail

Problem:    Tests using IPv6 sometimes fail.
Solution:   Use getaddrinfo() and use try/catch. (James McCoy,
            closes #11783)
This commit is contained in:
James McCoy
2023-01-09 16:25:59 +00:00
committed by Bram Moolenaar
parent 01c5f2addf
commit 765d82a657
5 changed files with 46 additions and 25 deletions

View File

@@ -259,7 +259,12 @@ def main(host, port, server_class=ThreadedTCPServer):
print("Wait for it...") print("Wait for it...")
time.sleep(0.5) time.sleep(0.5)
server = server_class((host, port), ThreadedTCPRequestHandler) addrs = socket.getaddrinfo(host, port, 0, 0, socket.IPPROTO_TCP)
# Each addr is a (family, type, proto, canonname, sockaddr) tuple
sockaddr = addrs[0][4]
server_class.address_family = addrs[0][0]
server = server_class(sockaddr[0:2], ThreadedTCPRequestHandler)
ip, port = server.server_address[0:2] ip, port = server.server_address[0:2]
# Start a thread with the server. That thread will then start a new thread # Start a thread with the server. That thread will then start a new thread

View File

@@ -306,7 +306,12 @@ def main(host, port, server_class=ThreadedTCPServer):
writePortInFile(port) writePortInFile(port)
time.sleep(0.5) time.sleep(0.5)
server = server_class((host, port), ThreadedTCPRequestHandler) addrs = socket.getaddrinfo(host, port, 0, 0, socket.IPPROTO_TCP)
# Each addr is a (family, type, proto, canonname, sockaddr) tuple
sockaddr = addrs[0][4]
server_class.address_family = addrs[0][0]
server = server_class(sockaddr[0:2], ThreadedTCPRequestHandler)
ip, port = server.server_address[0:2] ip, port = server.server_address[0:2]
# Start a thread with the server. That thread will then start a new thread # Start a thread with the server. That thread will then start a new thread

View File

@@ -184,8 +184,13 @@ def writePortInFile(port):
if __name__ == "__main__": if __name__ == "__main__":
HOST, PORT = "localhost", 0 HOST, PORT = "localhost", 0
server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler) addrs = socket.getaddrinfo(HOST, PORT, 0, 0, socket.IPPROTO_TCP)
ip, port = server.server_address # Each addr is a (family, type, proto, canonname, sockaddr) tuple
sockaddr = addrs[0][4]
ThreadedTCPServer.address_family = addrs[0][0]
server = ThreadedTCPServer(sockaddr[0:2], ThreadedTCPRequestHandler)
ip, port = server.server_address[0:2]
# Start a thread with the server. That thread will then start a new thread # Start a thread with the server. That thread will then start a new thread
# for each connection. # for each connection.
@@ -199,7 +204,7 @@ if __name__ == "__main__":
# Main thread terminates, but the server continues running # Main thread terminates, but the server continues running
# until server.shutdown() is called. # until server.shutdown() is called.
try: try:
while server_thread.isAlive(): while server_thread.is_alive():
server_thread.join(1) server_thread.join(1)
except (KeyboardInterrupt, SystemExit): except (KeyboardInterrupt, SystemExit):
server.shutdown() server.shutdown()

View File

@@ -887,28 +887,32 @@ func Nb_quit_with_conn(port)
return filter(l, 'v:val !~ "^0:geometry="') return filter(l, 'v:val !~ "^0:geometry="')
endfunc endfunc
" Establish the connection with the netbeans server try
exe 'nbstart :localhost:' .. g:port .. ':star' " Establish the connection with the netbeans server
call assert_true(has("netbeans_enabled")) exe 'nbstart :localhost:' .. g:port .. ':star'
call WaitFor('len(ReadXnetbeans()) >= 3') call assert_true(has("netbeans_enabled"))
let l = ReadXnetbeans() call WaitFor('len(ReadXnetbeans()) >= 3')
call assert_equal(['AUTH star', let l = ReadXnetbeans()
\ '0:version=0 "2.5"', call assert_equal(['AUTH star',
\ '0:startupDone=0'], l[-3:]) \ '0:version=0 "2.5"',
\ '0:startupDone=0'], l[-3:])
" Open the command buffer to communicate with the server " Open the command buffer to communicate with the server
split Xcmdbuf split Xcmdbuf
call WaitFor('len(ReadXnetbeans()) >= 6') call WaitFor('len(ReadXnetbeans()) >= 6')
let l = ReadXnetbeans() let l = ReadXnetbeans()
call assert_equal('0:fileOpened=0 "Xcmdbuf" T F', call assert_equal('0:fileOpened=0 "Xcmdbuf" T F',
\ substitute(l[-3], '".*/', '"', '')) \ substitute(l[-3], '".*/', '"', ''))
call assert_equal('send: 1:putBufferNumber!15 "Xcmdbuf"', call assert_equal('send: 1:putBufferNumber!15 "Xcmdbuf"',
\ substitute(l[-2], '".*/', '"', '')) \ substitute(l[-2], '".*/', '"', ''))
call assert_equal('1:startDocumentListen!16', l[-1]) call assert_equal('1:startDocumentListen!16', l[-1])
sleep 1m sleep 1m
quit! quit!
quit! quit!
finally
qall!
endtry
END END
if RunVim(['let g:port = ' .. a:port], after, '') if RunVim(['let g:port = ' .. a:port], after, '')
call WaitFor('len(ReadXnetbeans()) >= 9') call WaitFor('len(ReadXnetbeans()) >= 9')

View File

@@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1165,
/**/ /**/
1164, 1164,
/**/ /**/