[Python-checkins] r42845 - python/trunk/Lib/test/test_logging.py

neal.norwitz python-checkins at python.org
Sun Mar 5 03:16:17 CET 2006


Author: neal.norwitz
Date: Sun Mar  5 03:16:12 2006
New Revision: 42845

Modified:
   python/trunk/Lib/test/test_logging.py
Log:
Backout the last hack and add in this new one.
The failure definitely seems timing related.  This change *seems* to work.
Since the failure isn't doesn't occur consistently, it's hard to tell.

Running these tests on Solaris in this order:
	test_urllibnet test_operator test_cgi \
	test_isinstance test_future test_ast test_logging

generally caused a failure (about 50% of the time) before the sleep.
I couldn't provoke the failure with the sleep.

This should really be cleaned up by using threading.Events or something
so it is not timing dependent and doesn't hang forever on failure.


Modified: python/trunk/Lib/test/test_logging.py
==============================================================================
--- python/trunk/Lib/test/test_logging.py	(original)
+++ python/trunk/Lib/test/test_logging.py	Sun Mar  5 03:16:12 2006
@@ -98,22 +98,12 @@
         self.abort = 0
         self.timeout = 1
 
-    def _wait_and_process_data(self):
-        rd, wr, ex = select.select([self.socket.fileno()], [], [],
-                                   self.timeout)
-        if rd:
-            self.handle_request()
-
     def serve_until_stopped(self):
         while not self.abort:
-            self._wait_and_process_data()
-
-        # XXX(nnorwitz): Try to fix timing related test failures.
-        # It's possible self.aborted was set before the final message
-        # was received.  By calling _wait_and_process_data(),
-        # it gives us one last chance to read messages.
-        # The test generally only fails on Solaris.
-        self._wait_and_process_data()
+            rd, wr, ex = select.select([self.socket.fileno()], [], [],
+                                       self.timeout)
+            if rd:
+                self.handle_request()
         #notify the main thread that we're about to exit
         socketDataProcessed.set()
         # close the listen socket
@@ -633,6 +623,10 @@
 
         rootLogger.addHandler(shdlr)
         test0()
+        # XXX(nnorwitz): Try to fix timing related test failures.
+        # This sleep gives us some extra time to read messages.
+        # The test generally only fails on Solaris without this sleep.
+        time.sleep(2.0)
         shdlr.close()
         rootLogger.removeHandler(shdlr)
 


More information about the Python-checkins mailing list