[pypy-commit] pypy kqueue: Make all unit tests pass.
oberstet
noreply at buildbot.pypy.org
Sun Mar 4 20:39:30 CET 2012
Author: Tobias Oberstein <tobias.oberstein at gmail.com>
Branch: kqueue
Changeset: r53196:a701fa0e939b
Date: 2012-03-03 21:12 +0100
http://bitbucket.org/pypy/pypy/changeset/a701fa0e939b/
Log: Make all unit tests pass.
diff --git a/pypy/module/select/interp_kqueue.py b/pypy/module/select/interp_kqueue.py
--- a/pypy/module/select/interp_kqueue.py
+++ b/pypy/module/select/interp_kqueue.py
@@ -184,16 +184,17 @@
rffi.setintfield(timeout, 'c_tv_sec', sec)
rffi.setintfield(timeout, 'c_tv_nsec', nsec)
- i = 0
- for w_ev in space.listview(w_changelist):
- ev = space.interp_w(W_Kevent, w_ev)
- changelist[i].c_ident = ev.event.c_ident
- changelist[i].c_filter = ev.event.c_filter
- changelist[i].c_flags = ev.event.c_flags
- changelist[i].c_fflags = ev.event.c_fflags
- changelist[i].c_data = ev.event.c_data
- changelist[i].c_udata = ev.event.c_udata
- i += 1
+ if not space.is_w(w_changelist, space.w_None):
+ i = 0
+ for w_ev in space.listview(w_changelist):
+ ev = space.interp_w(W_Kevent, w_ev)
+ changelist[i].c_ident = ev.event.c_ident
+ changelist[i].c_filter = ev.event.c_filter
+ changelist[i].c_flags = ev.event.c_flags
+ changelist[i].c_fflags = ev.event.c_fflags
+ changelist[i].c_data = ev.event.c_data
+ changelist[i].c_udata = ev.event.c_udata
+ i += 1
nfds = syscall_kevent(self.kqfd,
changelist,
diff --git a/pypy/module/select/test/test_kqueue.py b/pypy/module/select/test/test_kqueue.py
--- a/pypy/module/select/test/test_kqueue.py
+++ b/pypy/module/select/test/test_kqueue.py
@@ -1,3 +1,5 @@
+# adapted from CPython: Lib/test/test_kqueue.py
+
import py
import sys
@@ -84,8 +86,16 @@
server_socket.listen(1)
client = socket.socket()
client.setblocking(False)
- exc = raises(socket.error, client.connect, ("127.0.0.1", server_socket.getsockname()[1]))
- assert exc.value.args[0] == errno.EINPROGRESS
+ try:
+ client.connect(("127.0.0.1", server_socket.getsockname()[1]))
+ except socket.error as e:
+ assert e.args[0] == errno.EINPROGRESS
+ else:
+ if sys.platform.startswith('freebsd'):
+ # FreeBSD doesn't raise an exception here
+ pass
+ else:
+ assert False, "EINPROGRESS not raised"
server, addr = server_socket.accept()
if sys.platform.startswith("darwin"):
@@ -119,7 +129,7 @@
events = kq1.control(None, 4, 1)
if len(events) == 4:
break
- time.sleep(.1)
+ time.sleep(1.0)
else:
assert False, "timeout waiting for event notification"
More information about the pypy-commit
mailing list