11 from test_support
import verbose
, TestFailed
19 except AttributeError:
22 try: raise socket
.error
23 except socket
.error
: print "socket.error"
33 for optional
in ("AF_UNIX",
35 "SO_DEBUG", "SO_ACCEPTCONN", "SO_REUSEADDR", "SO_KEEPALIVE",
36 "SO_DONTROUTE", "SO_BROADCAST", "SO_USELOOPBACK", "SO_LINGER",
37 "SO_OOBINLINE", "SO_REUSEPORT", "SO_SNDBUF", "SO_RCVBUF",
38 "SO_SNDLOWAT", "SO_RCVLOWAT", "SO_SNDTIMEO", "SO_RCVTIMEO",
39 "SO_ERROR", "SO_TYPE", "SOMAXCONN",
41 "MSG_OOB", "MSG_PEEK", "MSG_DONTROUTE", "MSG_EOR",
42 "MSG_TRUNC", "MSG_CTRUNC", "MSG_WAITALL", "MSG_BTAG",
47 "IPPROTO_IP", "IPPROTO_ICMP", "IPPROTO_IGMP",
48 "IPPROTO_GGP", "IPPROTO_TCP", "IPPROTO_EGP",
49 "IPPROTO_PUP", "IPPROTO_UDP", "IPPROTO_IDP",
50 "IPPROTO_HELLO", "IPPROTO_ND", "IPPROTO_TP",
51 "IPPROTO_XTP", "IPPROTO_EON", "IPPROTO_BIP",
52 "IPPROTO_RAW", "IPPROTO_MAX",
54 "IPPORT_RESERVED", "IPPORT_USERRESERVED",
56 "INADDR_ANY", "INADDR_BROADCAST", "INADDR_LOOPBACK",
57 "INADDR_UNSPEC_GROUP", "INADDR_ALLHOSTS_GROUP",
58 "INADDR_MAX_LOCAL_GROUP", "INADDR_NONE",
60 "IP_OPTIONS", "IP_HDRINCL", "IP_TOS", "IP_TTL",
61 "IP_RECVOPTS", "IP_RECVRETOPTS", "IP_RECVDSTADDR",
62 "IP_RETOPTS", "IP_MULTICAST_IF", "IP_MULTICAST_TTL",
63 "IP_MULTICAST_LOOP", "IP_ADD_MEMBERSHIP",
68 socktype
= socket
.SocketType
69 hostname
= socket
.gethostname()
70 ip
= socket
.gethostbyname(hostname
)
71 hname
, aliases
, ipaddrs
= socket
.gethostbyaddr(ip
)
72 all_host_names
= [hname
] + aliases
77 print hname
, aliases
, ipaddrs
80 for name
in all_host_names
:
84 print 'FQDN not found'
86 if hasattr(socket
, 'getservbyname'):
87 print socket
.getservbyname('telnet', 'tcp')
89 socket
.getservbyname('telnet', 'udp')
94 if not sys
.platform
.startswith('java'):
96 # On some versions, this loses a reference
97 orig
= sys
.getrefcount(__name__
)
98 socket
.getnameinfo(__name__
,0)
100 if sys
.getrefcount(__name__
) <> orig
:
101 raise TestFailed
,"socket.getnameinfo loses a reference"
104 # On some versions, this crashes the interpreter.
105 socket
.getnameinfo(('x', 0, 0, 0), 0)
109 canfork
= hasattr(os
, 'fork')
112 if not canfork
or os
.fork():
114 s
= socket
.socket(socket
.AF_INET
, socket
.SOCK_STREAM
)
115 s
.bind(("127.0.0.1", PORT
))
118 print 'parent accepting'
120 conn
, addr
= s
.accept()
122 print 'connected by', addr
123 # couple of interesting tests while we've got a live socket
127 p
= conn
.getpeername()
130 n
= conn
.getsockname()
137 data
= conn
.recv(1024)
141 print 'received:', data
148 s
= socket
.socket(socket
.AF_INET
, socket
.SOCK_STREAM
)
150 print 'child connecting'
151 s
.connect(("127.0.0.1", PORT
))
156 print 'parent/client mismatch'
160 except socket
.error
, msg
:
161 raise TestFailed
, msg