Commit d856ab61 authored by Benjamin Peterson's avatar Benjamin Peterson

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
........
parent 67091776
...@@ -4,6 +4,8 @@ import select ...@@ -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): ...@@ -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:
......
...@@ -12,6 +12,9 @@ What's New in Python 3.2 Alpha 1? ...@@ -12,6 +12,9 @@ What's New in Python 3.2 Alpha 1?
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #8329: Don't return the same lists from select.select when no fds are
changed.
- Issue #8259: 1L << (2**31) no longer produces an 'outrageous shift error' - Issue #8259: 1L << (2**31) no longer produces an 'outrageous shift error'
on 64-bit machines. The shift count for either left or right shift is on 64-bit machines. The shift count for either left or right shift is
permitted to be up to sys.maxsize. permitted to be up to sys.maxsize.
......
...@@ -284,14 +284,6 @@ select_select(PyObject *self, PyObject *args) ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment