[pypy-svn] r26221 - in pypy/dist/pypy/rpython/rctypes/socketmodule: . test
dialtone at codespeak.net
dialtone at codespeak.net
Mon Apr 24 06:14:07 CEST 2006
Author: dialtone
Date: Mon Apr 24 06:14:02 2006
New Revision: 26221
Modified:
pypy/dist/pypy/rpython/rctypes/socketmodule/_socket.py
pypy/dist/pypy/rpython/rctypes/socketmodule/ctypes_socket.py
pypy/dist/pypy/rpython/rctypes/socketmodule/test/test__socket.py
Log:
(ericvrp, dialtone)
Added an awful lot of constants
Warning: testing takes some time because of the platform check.
Modified: pypy/dist/pypy/rpython/rctypes/socketmodule/_socket.py
==============================================================================
--- pypy/dist/pypy/rpython/rctypes/socketmodule/_socket.py (original)
+++ pypy/dist/pypy/rpython/rctypes/socketmodule/_socket.py Mon Apr 24 06:14:02 2006
@@ -151,6 +151,8 @@
if err:
raise error(err)
+SocketType = socket
+
def makeipaddr(caddr, caddrlen):
buf = create_string_buffer(NI_MAXHOST)
error = _c.getnameinfo(caddr, caddrlen, buf, NI_MAXHOST,
Modified: pypy/dist/pypy/rpython/rctypes/socketmodule/ctypes_socket.py
==============================================================================
--- pypy/dist/pypy/rpython/rctypes/socketmodule/ctypes_socket.py (original)
+++ pypy/dist/pypy/rpython/rctypes/socketmodule/ctypes_socket.py Mon Apr 24 06:14:02 2006
@@ -1,4 +1,5 @@
import os
+import distutils
from pypy.rpython.rctypes.tool import ctypes_platform
from pypy.rpython.rctypes.tool import util # ctypes.util from 0.9.9.6
from ctypes import *
@@ -6,23 +7,76 @@
includes = ('sys/types.h',
'sys/socket.h',
'netinet/in.h',
+ 'netinet/tcp.h',
'unistd.h',
'stdio.h',
'netdb.h',
- 'arpa/inet.h',
+ 'arpa/inet.h'
)
HEADER = ''.join(['#include <%s>\n' % filename for filename in includes])
constants = {}
# constants
-for name in ['AF_INET',
- 'AF_UNSPEC',
- 'SOCK_STREAM',
- 'SOCK_DGRAM',
- 'NI_MAXHOST',
- 'NI_NUMERICHOST',
- ]:
- constants[name] = ctypes_platform.getconstantinteger(name, HEADER)
+for name in ['AF_APPLETALK', 'AF_INET', 'AF_INET6', 'AF_IPX','AF_ROUTE',
+'AF_SNA', 'AF_UNIX', 'AF_UNSPEC', 'AI_ADDRCONFIG', 'AI_ALL', 'AI_CANONNAME',
+'AI_DEFAULT', 'AI_MASK', 'AI_NUMERICHOST', 'AI_PASSIVE', 'AI_V4MAPPED',
+'AI_V4MAPPED_CFG', 'EAI_ADDRFAMILY', 'EAI_AGAIN', 'EAI_BADFLAGS',
+'EAI_BADHINTS', 'EAI_FAIL', 'EAI_FAMILY', 'EAI_MAX', 'EAI_MEMORY',
+'EAI_NODATA', 'EAI_NONAME', 'EAI_PROTOCOL', 'EAI_SERVICE', 'EAI_SOCKTYPE',
+'EAI_SYSTEM', 'INADDR_UNSPEC_GROUP', 'IPPROTO_AH',
+'IPPROTO_DSTOPTS', 'IPPROTO_EGP', 'IPPROTO_EON', 'IPPROTO_ESP',
+'IPPROTO_FRAGMENT', 'IPPROTO_GGP', 'IPPROTO_GRE', 'IPPROTO_HELLO',
+'IPPROTO_HOPOPTS', 'IPPROTO_ICMP', 'IPPROTO_ICMPV6', 'IPPROTO_IDP',
+'IPPROTO_IGMP', 'IPPROTO_IPCOMP', 'IPPROTO_IPIP',
+'IPPROTO_IPV4', 'IPPROTO_IPV6', 'IPPROTO_MAX', 'IPPROTO_ND', 'IPPROTO_NONE',
+'IPPROTO_PIM', 'IPPROTO_PUP', 'IPPROTO_ROUTING',
+'IPPROTO_RSVP', 'IPPROTO_TCP', 'IPPROTO_TP', 'IPPROTO_XTP',
+'IPV6_CHECKSUM', 'IPV6_DSTOPTS', 'IPV6_HOPLIMIT', 'IPV6_HOPOPTS',
+'IPV6_JOIN_GROUP', 'IPV6_LEAVE_GROUP', 'IPV6_MULTICAST_HOPS',
+'IPV6_MULTICAST_IF', 'IPV6_MULTICAST_LOOP', 'IPV6_NEXTHOP', 'IPV6_PKTINFO',
+'IPV6_RTHDR', 'IPV6_RTHDR_TYPE_0', 'IPV6_UNICAST_HOPS', 'IPV6_V6ONLY',
+'IP_ADD_MEMBERSHIP', 'IP_DEFAULT_MULTICAST_LOOP', 'IP_DEFAULT_MULTICAST_TTL',
+'IP_DROP_MEMBERSHIP', 'IP_HDRINCL', 'IP_MAX_MEMBERSHIPS', 'IP_MULTICAST_IF',
+'IP_MULTICAST_LOOP', 'IP_MULTICAST_TTL', 'IP_OPTIONS', 'IP_RECVDSTADDR',
+'IP_RECVOPTS', 'IP_RECVRETOPTS', 'IP_RETOPTS', 'IP_TOS', 'IP_TTL',
+'MSG_CTRUNC', 'MSG_DONTROUTE', 'MSG_DONTWAIT', 'MSG_EOR', 'MSG_OOB',
+'MSG_PEEK', 'MSG_TRUNC', 'MSG_WAITALL', 'NI_DGRAM', 'NI_MAXHOST',
+'NI_MAXSERV', 'NI_NAMEREQD', 'NI_NOFQDN', 'NI_NUMERICHOST', 'NI_NUMERICSERV',
+'SOCK_DGRAM', 'SOCK_RAW', 'SOCK_RDM',
+'SOCK_SEQPACKET', 'SOCK_STREAM', 'SOL_SOCKET',
+'SO_ACCEPTCONN', 'SO_BROADCAST', 'SO_DEBUG', 'SO_DONTROUTE',
+'SO_ERROR', 'SO_KEEPALIVE', 'SO_LINGER', 'SO_OOBINLINE', 'SO_RCVBUF',
+'SO_RCVLOWAT', 'SO_RCVTIMEO', 'SO_REUSEADDR', 'SO_REUSEPORT', 'SO_SNDBUF',
+'SO_SNDLOWAT', 'SO_SNDTIMEO', 'SO_TYPE', 'SO_USELOOPBACK', 'TCP_MAXSEG',
+'TCP_NODELAY', 'AF_DECnet']:
+ try:
+ constants[name] = ctypes_platform.getconstantinteger(name, HEADER)
+ except distutils.errors.CompileError:
+ pass
+
+for special, default in [('SOL_IP', 0),
+ ('SOL_TCP', 6),
+ ('SOL_UDP', 17),
+ ('SOMAXCONN', 5),
+ ('IPPROTO_IP', 6),
+ ('IPPROTO_UDP', 17),
+ ('IPPROTO_RAW', 255),
+ ('IPPORT_RESERVED', 1024),
+ ('IPPORT_USERRESERVED', 5000),
+ ('INADDR_ANY', 0x00000000),
+ ('INADDR_BROADCAST', 0xffffffff),
+ ('INADDR_LOOPBACK', 0x7F000001),
+ ('INADDR_UNSPEC_GROUP', 0xe0000000),
+ ('INADDR_ALLHOSTS_GROUP', 0xe0000001),
+ ('INADDR_MAX_LOCAL_GROUP', 0xe00000ff),
+ ('INADDR_NONE', 0xffffffff),
+ ('SHUT_RD', 0),
+ ('SHUT_WR', 1),
+ ('SHUT_RDWR', 2)]:
+ try:
+ constants[special] = ctypes_platform.getconstantinteger(special, HEADER)
+ except distutils.errors.CompileError:
+ constants[special] = default
# types
uint16_t = ctypes_platform.getsimpletype('uint16_t', HEADER, c_ushort)
@@ -57,6 +111,7 @@
FILE_ptr = ctypes_platform.getstruct('FILE *', HEADER,
[])
+
# functions
dllname = util.find_library('c')
assert dllname is not None
Modified: pypy/dist/pypy/rpython/rctypes/socketmodule/test/test__socket.py
==============================================================================
--- pypy/dist/pypy/rpython/rctypes/socketmodule/test/test__socket.py (original)
+++ pypy/dist/pypy/rpython/rctypes/socketmodule/test/test__socket.py Mon Apr 24 06:14:02 2006
@@ -4,13 +4,14 @@
def interface_matcher(interface1, interface2):
members = [member for member in dir(interface1) if not member.startswith('_')]
+ members.remove('CAPI')
verifying_set = dir(interface2)
for member in members:
assert member in verifying_set
def test_interfaces():
- #interface_matcher(_socket, _rsocket)
- #interface_matcher(_rsocket, _socket)
+ interface_matcher(_socket, _rsocket)
+ interface_matcher(_rsocket, _socket)
interface_matcher(_socket.socket, _rsocket.socket)
interface_matcher(_rsocket.socket, _socket.socket)
More information about the Pypy-commit
mailing list