[pypy-commit] pypy default: put in the same error checking CPython has.
alex_gaynor
noreply at buildbot.pypy.org
Wed Sep 28 01:50:38 CEST 2011
Author: Alex Gaynor <alex.gaynor at gmail.com>
Branch:
Changeset: r47648:bd00e4636a74
Date: 2011-09-27 19:50 -0400
http://bitbucket.org/pypy/pypy/changeset/bd00e4636a74/
Log: put in the same error checking CPython has.
diff --git a/pypy/module/_multiprocessing/interp_connection.py b/pypy/module/_multiprocessing/interp_connection.py
--- a/pypy/module/_multiprocessing/interp_connection.py
+++ b/pypy/module/_multiprocessing/interp_connection.py
@@ -225,7 +225,9 @@
except OSError:
pass
- def __init__(self, fd, flags):
+ def __init__(self, space, fd, flags):
+ if fd == self.INVALID_HANDLE_VALUE or fd < 0:
+ raise OperationError(space.w_IOError, space.wrap("invalid handle %d" % fd))
W_BaseConnection.__init__(self, flags)
self.fd = fd
@@ -234,7 +236,7 @@
flags = (readable and READABLE) | (writable and WRITABLE)
self = space.allocate_instance(W_FileConnection, w_subtype)
- W_FileConnection.__init__(self, fd, flags)
+ W_FileConnection.__init__(self, space, fd, flags)
return space.wrap(self)
def fileno(self, space):
diff --git a/pypy/module/_multiprocessing/test/test_connection.py b/pypy/module/_multiprocessing/test/test_connection.py
--- a/pypy/module/_multiprocessing/test/test_connection.py
+++ b/pypy/module/_multiprocessing/test/test_connection.py
@@ -145,3 +145,9 @@
else:
c.close()
space.delslice(w_connections, space.wrap(0), space.wrap(100))
+
+ def test_bad_fd(self):
+ import _multiprocessing
+
+ raises(IOError, _multiprocessing.Connection, -1)
+ raises(IOError, _multiprocessing.Connection, -15)
\ No newline at end of file
More information about the pypy-commit
mailing list