[pypy-commit] pypy default: prevent test_rsocket from relying on SO_REUSEADDR (behavior differs across platforms)

bdkearns noreply at buildbot.pypy.org
Mon Mar 4 02:54:57 CET 2013


Author: Brian Kearns <bdkearns at gmail.com>
Branch: 
Changeset: r61983:f7c7029269d3
Date: 2013-03-03 20:54 -0500
http://bitbucket.org/pypy/pypy/changeset/f7c7029269d3/

Log:	prevent test_rsocket from relying on SO_REUSEADDR (behavior differs
	across platforms)

diff --git a/rpython/rlib/test/test_rsocket.py b/rpython/rlib/test/test_rsocket.py
--- a/rpython/rlib/test/test_rsocket.py
+++ b/rpython/rlib/test/test_rsocket.py
@@ -367,7 +367,6 @@
     if sys.platform == "win32":
         skip("dup does not work on Windows")
     s = RSocket(AF_INET, SOCK_STREAM)
-    s.setsockopt_int(SOL_SOCKET, SO_REUSEADDR, 1)
     s.bind(INETAddress('localhost', 50007))
     s2 = s.dup()
     assert s.fd != s2.fd
@@ -377,10 +376,10 @@
     # rsocket.dup() duplicates fd, it also works on Windows
     # (but only on socket handles!)
     s = RSocket(AF_INET, SOCK_STREAM)
-    s.setsockopt_int(SOL_SOCKET, SO_REUSEADDR, 1)
     s.bind(INETAddress('localhost', 50007))
-    fd2 = dup(s.fd)
-    assert s.fd != fd2
+    s2 = RSocket(fd=dup(s.fd))
+    assert s.fd != s2.fd
+    assert s.getsockname().eq(s2.getsockname())
 
 def test_inet_aton():
     assert inet_aton('1.2.3.4') == '\x01\x02\x03\x04'
@@ -444,7 +443,6 @@
 
     def setup_method(self, method):
         self.serv = RSocket(AF_INET, SOCK_STREAM)
-        self.serv.setsockopt_int(SOL_SOCKET, SO_REUSEADDR, 1)
         self.serv.bind(INETAddress(self.HOST, self.PORT))
         self.serv.listen(1)
 


More information about the pypy-commit mailing list