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:
Benjamin Peterson 2010-04-06 21:59:20 +00:00
parent c7d44a4e05
commit dee6795eed
3 changed files with 12 additions and 12 deletions

View File

@ -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:

View File

@ -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

View File

@ -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