[pypy-svn] r58650 - in pypy/branch/2.5-merge/pypy/rlib: . test
fijal at codespeak.net
fijal at codespeak.net
Mon Oct 6 15:19:51 CEST 2008
Author: fijal
Date: Mon Oct 6 15:19:50 2008
New Revision: 58650
Modified:
pypy/branch/2.5-merge/pypy/rlib/rsocket.py
pypy/branch/2.5-merge/pypy/rlib/test/test_rsocket.py
Log:
(fijal, jlg) Dummy support for recv_into on rlib level
Modified: pypy/branch/2.5-merge/pypy/rlib/rsocket.py
==============================================================================
--- pypy/branch/2.5-merge/pypy/rlib/rsocket.py (original)
+++ pypy/branch/2.5-merge/pypy/rlib/rsocket.py Mon Oct 6 15:19:50 2008
@@ -822,6 +822,10 @@
rffi.keep_buffer_alive_until_here(raw_buf, gc_buf)
raise self.error_handler()
+ def recvinto(self, rwbuffer, nbytes, flags=0):
+ buf = self.recv(nbytes, flags)
+ rwbuffer.setslice(0, buf)
+
def recvfrom(self, buffersize, flags=0):
"""Like recv(buffersize, flags) but also return the sender's
address."""
Modified: pypy/branch/2.5-merge/pypy/rlib/test/test_rsocket.py
==============================================================================
--- pypy/branch/2.5-merge/pypy/rlib/test/test_rsocket.py (original)
+++ pypy/branch/2.5-merge/pypy/rlib/test/test_rsocket.py Mon Oct 6 15:19:50 2008
@@ -103,6 +103,29 @@
s1.close()
s2.close()
+def test_socketpair_recvinto():
+ class Buffer:
+ def setslice(self, start, string):
+ self.x = string
+
+ def as_str(self):
+ return self.x
+
+ if sys.platform == "win32":
+ py.test.skip('No socketpair on Windows')
+ s1, s2 = socketpair()
+ buf = Buffer()
+ s1.sendall('?')
+ s2.recvinto(buf, 1)
+ assert buf.as_str() == '?'
+ count = s2.send('x'*99)
+ assert 1 <= count <= 99
+ s1.recvinto(buf, 100)
+ assert buf.as_str() == 'x'*count
+ s1.close()
+ s2.close()
+
+
def test_simple_tcp():
import thread
sock = RSocket()
More information about the Pypy-commit
mailing list