Author: Alex Gaynor <alex.gay...@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 _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit