[Python-checkins] r79870 - in python/branches/release31-maint: Lib/test/test_select.py Misc/NEWS Modules/selectmodule.c

benjamin.peterson python-checkins at python.org
Tue Apr 6 23:59:20 CEST 2010


Author: benjamin.peterson
Date: Tue Apr  6 23:59:20 2010
New Revision: 79870

Log:
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
  ........
................


Modified:
   python/branches/release31-maint/   (props changed)
   python/branches/release31-maint/Lib/test/test_select.py
   python/branches/release31-maint/Misc/NEWS
   python/branches/release31-maint/Modules/selectmodule.c

Modified: python/branches/release31-maint/Lib/test/test_select.py
==============================================================================
--- python/branches/release31-maint/Lib/test/test_select.py	(original)
+++ python/branches/release31-maint/Lib/test/test_select.py	Tue Apr  6 23:59:20 2010
@@ -4,6 +4,8 @@
 import os
 import sys
 
+ at unittest.skipIf(sys.platform[:3] in ('win', 'mac', 'os2', 'riscos'),
+                 "can't easily test on this system")
 class SelectTestCase(unittest.TestCase):
 
     class Nope:
@@ -19,11 +21,14 @@
         self.assertRaises(TypeError, select.select, [self.Almost()], [], [])
         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):
-        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'
         p = os.popen(cmd, 'r')
         for tout in (0, 1, 2, 4, 8, 16) + (None,)*10:

Modified: python/branches/release31-maint/Misc/NEWS
==============================================================================
--- python/branches/release31-maint/Misc/NEWS	(original)
+++ python/branches/release31-maint/Misc/NEWS	Tue Apr  6 23:59:20 2010
@@ -15,6 +15,9 @@
 - Issue #8014: Setting a T_UINT or T_PYSSIZET attribute of an object with
   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.
 
 - Issue #8226: sys.setfilesystemencoding() raises a LookupError if the encoding

Modified: python/branches/release31-maint/Modules/selectmodule.c
==============================================================================
--- python/branches/release31-maint/Modules/selectmodule.c	(original)
+++ python/branches/release31-maint/Modules/selectmodule.c	Tue Apr  6 23:59:20 2010
@@ -284,14 +284,6 @@
 		PyErr_SetFromErrno(SelectError);
 	}
 #endif
-	else if (n == 0) {
-                /* optimization */
-		ifdlist = PyList_New(0);
-		if (ifdlist) {
-			ret = PyTuple_Pack(3, ifdlist, ifdlist, ifdlist);
-			Py_DECREF(ifdlist);
-		}
-	}
 	else {
 		/* any of these three calls can raise an exception.  it's more
 		   convenient to test for this after all three calls... but


More information about the Python-checkins mailing list