]> granicus.if.org Git - vim/commitdiff
patch 9.0.1165: tests using IPv6 sometimes fail v9.0.1165
authorJames McCoy <jamessan@jamessan.com>
Mon, 9 Jan 2023 16:25:59 +0000 (16:25 +0000)
committerBram Moolenaar <Bram@vim.org>
Mon, 9 Jan 2023 16:25:59 +0000 (16:25 +0000)
Problem:    Tests using IPv6 sometimes fail.
Solution:   Use getaddrinfo() and use try/catch. (James McCoy,
            closes #11783)

src/testdir/test_channel.py
src/testdir/test_channel_lsp.py
src/testdir/test_netbeans.py
src/testdir/test_netbeans.vim
src/version.c

index 3ef0fde0f83eb1a40ae078230f6a536ba597aa09..35c34fc2669a26719ac01cd6b0ae4036d0954217 100644 (file)
@@ -259,7 +259,12 @@ def main(host, port, server_class=ThreadedTCPServer):
         print("Wait for it...")
         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]
 
     # Start a thread with the server.  That thread will then start a new thread
index 2357452d7eaff6ea958f7fc10d6356ddb795128f..10b4fb43f34ba7a59b5a4478d95f6016cc677c89 100644 (file)
@@ -306,7 +306,12 @@ def main(host, port, server_class=ThreadedTCPServer):
         writePortInFile(port)
         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]
 
     # Start a thread with the server.  That thread will then start a new thread
index 112602a43f78c464fa36d3a3b8ecd40239e07e70..0d6b0968042a7d4d9408969d130e7300f6fd2b16 100644 (file)
@@ -184,8 +184,13 @@ def writePortInFile(port):
 if __name__ == "__main__":
     HOST, PORT = "localhost", 0
 
-    server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler)
-    ip, port = server.server_address
+    addrs = socket.getaddrinfo(HOST, PORT, 0, 0, socket.IPPROTO_TCP)
+    # 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
     # for each connection.
@@ -199,7 +204,7 @@ if __name__ == "__main__":
     # Main thread terminates, but the server continues running
     # until server.shutdown() is called.
     try:
-        while server_thread.isAlive(): 
+        while server_thread.is_alive():
             server_thread.join(1)
     except (KeyboardInterrupt, SystemExit):
         server.shutdown()
index 70d8be01c86952d156d85c61ca4d2cbf3079fbfa..e458e38961b7336903b25910d6efea113b29e8cd 100644 (file)
@@ -887,28 +887,32 @@ func Nb_quit_with_conn(port)
       return filter(l, 'v:val !~ "^0:geometry="')
     endfunc
 
-    " Establish the connection with the netbeans server
-    exe 'nbstart :localhost:' .. g:port .. ':star'
-    call assert_true(has("netbeans_enabled"))
-    call WaitFor('len(ReadXnetbeans()) >= 3')
-    let l = ReadXnetbeans()
-    call assert_equal(['AUTH star',
-      \ '0:version=0 "2.5"',
-      \ '0:startupDone=0'], l[-3:])
+    try
+      " Establish the connection with the netbeans server
+      exe 'nbstart :localhost:' .. g:port .. ':star'
+      call assert_true(has("netbeans_enabled"))
+      call WaitFor('len(ReadXnetbeans()) >= 3')
+      let l = ReadXnetbeans()
+      call assert_equal(['AUTH star',
+        \ '0:version=0 "2.5"',
+        \ '0:startupDone=0'], l[-3:])
 
-    " Open the command buffer to communicate with the server
-    split Xcmdbuf
-    call WaitFor('len(ReadXnetbeans()) >= 6')
-    let l = ReadXnetbeans()
-    call assert_equal('0:fileOpened=0 "Xcmdbuf" T F',
-          \ substitute(l[-3], '".*/', '"', ''))
-    call assert_equal('send: 1:putBufferNumber!15 "Xcmdbuf"',
-          \ substitute(l[-2], '".*/', '"', ''))
-    call assert_equal('1:startDocumentListen!16', l[-1])
-    sleep 1m
-
-    quit!
-    quit!
+      " Open the command buffer to communicate with the server
+      split Xcmdbuf
+      call WaitFor('len(ReadXnetbeans()) >= 6')
+      let l = ReadXnetbeans()
+      call assert_equal('0:fileOpened=0 "Xcmdbuf" T F',
+            \ substitute(l[-3], '".*/', '"', ''))
+      call assert_equal('send: 1:putBufferNumber!15 "Xcmdbuf"',
+            \ substitute(l[-2], '".*/', '"', ''))
+      call assert_equal('1:startDocumentListen!16', l[-1])
+      sleep 1m
+
+      quit!
+      quit!
+    finally
+      qall!
+    endtry
   END
   if RunVim(['let g:port = ' .. a:port], after, '')
     call WaitFor('len(ReadXnetbeans()) >= 9')
index 1f808f3c622b94d53544909e5a72c266b2ad3e23..14d4f64fc833d3933e92f18bca6f1764fa3fcfce 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1165,
 /**/
     1164,
 /**/