Merge rev 43734 from the trunk.

test_timeout():  This test was added during Bug Day, but disabled
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.
This commit is contained in:
Tim Peters
2006-04-08 12:12:56 +00:00
parent 87a7d50096
commit 2870125e0e

View File

@@ -15,6 +15,9 @@ def test_basic():
import urllib
if test_support.verbose:
print "test_basic ..."
socket.RAND_status()
try:
socket.RAND_egd(1)
@@ -28,28 +31,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')
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
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 thread
except ImportError: