diff -r 85e2cfe5b12d Lib/test/test_socket.py --- a/Lib/test/test_socket.py Sun Oct 30 04:30:36 2016 +0000 +++ b/Lib/test/test_socket.py Sun Oct 30 17:22:07 2016 +0100 @@ -21,6 +21,7 @@ import struct import random import string +import sysconfig try: import multiprocessing except ImportError: @@ -932,8 +933,11 @@ else: raise OSError # Try same call with optional protocol omitted - port2 = socket.getservbyname(service) - eq(port, port2) + # Issue #26936: Android getservbyname is buggy. + if not (support.is_android and + sysconfig.get_config_var('ANDROID_API_LEVEL') < 23): + port2 = socket.getservbyname(service) + eq(port, port2) # Try udp, but don't barf if it doesn't exist try: udpport = socket.getservbyname(service, 'udp') @@ -942,7 +946,9 @@ else: eq(udpport, port) # Now make sure the lookup by port returns the same service name - eq(socket.getservbyport(port2), service) + # Issue #26936: Android getservbyport is buggy. + if not support.is_android: + eq(socket.getservbyport(port2), service) eq(socket.getservbyport(port, 'tcp'), service) if udpport is not None: eq(socket.getservbyport(udpport, 'udp'), service) @@ -1275,7 +1281,10 @@ socket.getaddrinfo('::1', 80) # port can be a string service name such as "http", a numeric # port number or None - socket.getaddrinfo(HOST, "http") + # Issue #26936: Android getaddrinfo is buggy. + if not (support.is_android and + sysconfig.get_config_var('ANDROID_API_LEVEL') < 23): + socket.getaddrinfo(HOST, "http") socket.getaddrinfo(HOST, 80) socket.getaddrinfo(HOST, None) # test family and socktype filters