mirror of https://github.com/python/cpython
Merged revisions 79868 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r79868 | benjamin.peterson | 2010-04-06 16:55:16 -0500 (Tue, 06 Apr 2010) | 13 lines Merged revisions 79866-79867 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r79866 | benjamin.peterson | 2010-04-06 16:37:06 -0500 (Tue, 06 Apr 2010) | 1 line use skip decorator ........ r79867 | benjamin.peterson | 2010-04-06 16:50:00 -0500 (Tue, 06 Apr 2010) | 1 line remove a optimization that resulted in unexpected behavior #8929 ........ ................
This commit is contained in:
parent
c7d44a4e05
commit
dee6795eed
|
@ -4,6 +4,8 @@ import select
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
@unittest.skipIf(sys.platform[:3] in ('win', 'mac', 'os2', 'riscos'),
|
||||||
|
"can't easily test on this system")
|
||||||
class SelectTestCase(unittest.TestCase):
|
class SelectTestCase(unittest.TestCase):
|
||||||
|
|
||||||
class Nope:
|
class Nope:
|
||||||
|
@ -19,11 +21,14 @@ class SelectTestCase(unittest.TestCase):
|
||||||
self.assertRaises(TypeError, select.select, [self.Almost()], [], [])
|
self.assertRaises(TypeError, select.select, [self.Almost()], [], [])
|
||||||
self.assertRaises(TypeError, select.select, [], [], [], "not a number")
|
self.assertRaises(TypeError, select.select, [], [], [], "not a number")
|
||||||
|
|
||||||
|
def test_returned_list_identity(self):
|
||||||
|
# See issue #8329
|
||||||
|
r, w, x = select.select([], [], [], 1)
|
||||||
|
self.assertIsNot(r, w)
|
||||||
|
self.assertIsNot(r, x)
|
||||||
|
self.assertIsNot(w, x)
|
||||||
|
|
||||||
def test_select(self):
|
def test_select(self):
|
||||||
if sys.platform[:3] in ('win', 'mac', 'os2', 'riscos'):
|
|
||||||
if support.verbose:
|
|
||||||
print("Can't test select easily on", sys.platform)
|
|
||||||
return
|
|
||||||
cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done'
|
cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done'
|
||||||
p = os.popen(cmd, 'r')
|
p = os.popen(cmd, 'r')
|
||||||
for tout in (0, 1, 2, 4, 8, 16) + (None,)*10:
|
for tout in (0, 1, 2, 4, 8, 16) + (None,)*10:
|
||||||
|
|
|
@ -15,6 +15,9 @@ Core and Builtins
|
||||||
- Issue #8014: Setting a T_UINT or T_PYSSIZET attribute of an object with
|
- Issue #8014: Setting a T_UINT or T_PYSSIZET attribute of an object with
|
||||||
PyMemberDefs could produce an internal error; raise TypeError instead.
|
PyMemberDefs could produce an internal error; raise TypeError instead.
|
||||||
|
|
||||||
|
- Issue #8329: Don't return the same lists from select.select when no fds are
|
||||||
|
changed.
|
||||||
|
|
||||||
- Raise a TypeError when trying to delete a T_STRING_INPLACE struct member.
|
- Raise a TypeError when trying to delete a T_STRING_INPLACE struct member.
|
||||||
|
|
||||||
- Issue #8226: sys.setfilesystemencoding() raises a LookupError if the encoding
|
- Issue #8226: sys.setfilesystemencoding() raises a LookupError if the encoding
|
||||||
|
|
|
@ -284,14 +284,6 @@ select_select(PyObject *self, PyObject *args)
|
||||||
PyErr_SetFromErrno(SelectError);
|
PyErr_SetFromErrno(SelectError);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
else if (n == 0) {
|
|
||||||
/* optimization */
|
|
||||||
ifdlist = PyList_New(0);
|
|
||||||
if (ifdlist) {
|
|
||||||
ret = PyTuple_Pack(3, ifdlist, ifdlist, ifdlist);
|
|
||||||
Py_DECREF(ifdlist);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
/* any of these three calls can raise an exception. it's more
|
/* any of these three calls can raise an exception. it's more
|
||||||
convenient to test for this after all three calls... but
|
convenient to test for this after all three calls... but
|
||||||
|
|
Loading…
Reference in New Issue