]> granicus.if.org Git - python/commitdiff
test_timeout(): This test was added during Bug Day, but disabled
authorTim Peters <tim.peters@gmail.com>
Sat, 8 Apr 2006 12:05:15 +0000 (12:05 +0000)
committerTim Peters <tim.peters@gmail.com>
Sat, 8 Apr 2006 12:05:15 +0000 (12:05 +0000)
soon after because the gmail address it connects to started timing
out on all the buildbot slaves.  Rewrote the test to produce a
warning message (instead of failing) when the address times out.

Also removed the special case for Windows -- this test started to
work on Windows as soon as bug 1462352 was fixed.

Lib/test/test_socket_ssl.py

index 0e31904527f471eb999d84e0935e46b67075c7c5..10913836a8c5f63b11831c7fdb15181958b61e89 100644 (file)
@@ -14,6 +14,9 @@ def test_basic():
 
     import urllib
 
+    if test_support.verbose:
+        print "test_basic ..."
+
     socket.RAND_status()
     try:
         socket.RAND_egd(1)
@@ -27,28 +30,41 @@ def test_basic():
     buf = f.read()
     f.close()
 
-# XXX Tim disabled this test on all platforms, for now, since the
-# XXX s.connect(("gmail.org", 995))
-# XXX line starting timing out on all the builbot slaves.
-if 0: #not sys.platform.startswith('win'):
-    def test_timeout():
-        test_support.requires('network')
-
-        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        s.settimeout(30.0)
-        # connect to service which issues an welcome banner (without need to
-        # write anything)
-        s.connect(("gmail.org", 995))
-        ss = socket.ssl(s)
-        # read part of return welcome banner twice
-        ss.read(1)
-        ss.read(1)
-        s.close()
-else:
-    def test_timeout():
-        pass
+def test_timeout():
+    test_support.requires('network')
+
+    if test_support.verbose:
+        print "test_timeout ..."
+
+    # A service which issues a welcome banner (without need to write
+    # anything).
+    # XXX ("gmail.org", 995) has been unreliable so far, from time to time
+    # XXX non-responsive for hours on end (& across all buildbot slaves,
+    # XXX so that's not just a local thing).
+    ADDR = "gmail.org", 995
+
+    s = socket.socket()
+    s.settimeout(30.0)
+    try:
+        s.connect(ADDR)
+    except socket.timeout:
+        print >> sys.stderr, """\
+    WARNING:  an attempt to connect to %r timed out, in
+    test_timeout.  That may be legitimate, but is not the outcome we hoped
+    for.  If this message is seen often, test_timeout should be changed to
+    use a more reliable address.""" % (ADDR,)
+        return
+
+    ss = socket.ssl(s)
+    # Read part of return welcome banner twice.
+    ss.read(1)
+    ss.read(1)
+    s.close()
 
 def test_rude_shutdown():
+    if test_support.verbose:
+        print "test_rude_shutdown ..."
+
     try:
         import threading
     except ImportError: