[Python-checkins] cpython: Close issue 12958 by flagging expected failures in test_socket on Mac OS X

nick.coghlan python-checkins at python.org
Mon Sep 19 12:26:45 CEST 2011


http://hg.python.org/cpython/rev/a4e4facad164
changeset: 72400:a4e4facad164
user: Nick Coghlan <ncoghlan at gmail.com>
date: Mon Sep 19 20:26:31 2011 +1000
summary:
 Close issue 12958 by flagging expected failures in test_socket on Mac OS X
files:
 Doc/library/test.rst | 11 +++++++++--
 Lib/test/support.py | 12 ++++++++++++
 Lib/test/test_socket.py | 13 +++++++++++++
 3 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/Doc/library/test.rst b/Doc/library/test.rst
--- a/Doc/library/test.rst
+++ b/Doc/library/test.rst
@@ -399,12 +399,19 @@
 otherwise.
 
 
-.. function:: skip_unless_symlink()
+.. decorator:: skip_unless_symlink()
 
 A decorator for running tests that require support for symbolic links.
 
 
-.. function:: run_with_locale(catstr, *locales)
+.. decorator:: anticipate_failure(condition)
+
+ A decorator to conditionally mark tests with
+ :func:`unittest.expectedFailure`. Any use of this decorator should
+ have an associated comment identifying the relevant tracker issue.
+
+
+.. decorator:: run_with_locale(catstr, *locales)
 
 A decorator for running a function in a different locale, correctly
 resetting it after it has finished. *catstr* is the locale category as
diff --git a/Lib/test/support.py b/Lib/test/support.py
--- a/Lib/test/support.py
+++ b/Lib/test/support.py
@@ -57,6 +57,7 @@
 "get_attribute", "swap_item", "swap_attr", "requires_IEEE_754",
 "TestHandler", "Matcher", "can_symlink", "skip_unless_symlink",
 "import_fresh_module", "requires_zlib", "PIPE_MAX_SIZE", "failfast",
+ "anticipate_failure"
 ]
 
 class Error(Exception):
@@ -127,6 +128,17 @@
 return saved
 
 
+def anticipate_failure(condition):
+ """Decorator to mark a test that is known to be broken in some cases
+
+ Any use of this decorator should have a comment identifying the
+ associated tracker issue.
+ """
+ if condition:
+ return unittest.expectedFailure
+ return lambda f: f
+
+
 def import_fresh_module(name, fresh=(), blocked=(), deprecated=False):
 """Imports and returns a module, deliberately bypassing the sys.modules cache
 and importing a fresh copy of the module. Once the import is complete,
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -167,6 +167,9 @@
 raise TypeError("test_func must be a callable function")
 try:
 test_func()
+ except unittest._ExpectedFailure:
+ # We deliberately ignore expected failures
+ pass
 except BaseException as e:
 self.queue.put(e)
 finally:
@@ -2090,6 +2093,8 @@
 def _testFDPassCMSG_LEN(self):
 self.createAndSendFDs(1)
 
+ # Issue #12958: The following test has problems on Mac OS X
+ @support.anticipate_failure(sys.platform == "darwin")
 @requireAttrs(socket, "CMSG_SPACE")
 def testFDPassSeparate(self):
 # Pass two FDs in two separate arrays. Arrays may be combined
@@ -2099,6 +2104,7 @@
 maxcmsgs=2)
 
 @testFDPassSeparate.client_skip
+ @support.anticipate_failure(sys.platform == "darwin")
 def _testFDPassSeparate(self):
 fd0, fd1 = self.newFDs(2)
 self.assertEqual(
@@ -2110,6 +2116,8 @@
 array.array("i", [fd1]))]),
 len(MSG))
 
+ # Issue #12958: The following test has problems on Mac OS X
+ @support.anticipate_failure(sys.platform == "darwin")
 @requireAttrs(socket, "CMSG_SPACE")
 def testFDPassSeparateMinSpace(self):
 # Pass two FDs in two separate arrays, receiving them into the
@@ -2121,6 +2129,7 @@
 maxcmsgs=2, ignoreflags=socket.MSG_CTRUNC)
 
 @testFDPassSeparateMinSpace.client_skip
+ @support.anticipate_failure(sys.platform == "darwin")
 def _testFDPassSeparateMinSpace(self):
 fd0, fd1 = self.newFDs(2)
 self.assertEqual(
@@ -3024,9 +3033,12 @@
 self.assertNotIsInstance(cm.exception, socket.timeout)
 self.assertEqual(cm.exception.errno, errno.EINTR)
 
+ # Issue #12958: The following tests have problems on Mac OS X
+ @support.anticipate_failure(sys.platform == "darwin")
 def testInterruptedSendTimeout(self):
 self.checkInterruptedSend(self.serv_conn.send, b"a"*512)
 
+ @support.anticipate_failure(sys.platform == "darwin")
 def testInterruptedSendtoTimeout(self):
 # Passing an actual address here as Python's wrapper for
 # sendto() doesn't allow passing a zero-length one; POSIX
@@ -3035,6 +3047,7 @@
 self.checkInterruptedSend(self.serv_conn.sendto, b"a"*512,
 self.serv_addr)
 
+ @support.anticipate_failure(sys.platform == "darwin")
 @requireAttrs(socket.socket, "sendmsg")
 def testInterruptedSendmsgTimeout(self):
 self.checkInterruptedSend(self.serv_conn.sendmsg, [b"a"*512])
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /