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:05:15 +00:00
parent 2f36caf8ff
commit e0bb597d03
1 changed files with 35 additions and 19 deletions

View File

@ -14,6 +14,9 @@ def test_basic():
import urllib import urllib
if test_support.verbose:
print "test_basic ..."
socket.RAND_status() socket.RAND_status()
try: try:
socket.RAND_egd(1) socket.RAND_egd(1)
@ -27,28 +30,41 @@ def test_basic():
buf = f.read() buf = f.read()
f.close() f.close()
# XXX Tim disabled this test on all platforms, for now, since the def test_timeout():
# 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') test_support.requires('network')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 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) s.settimeout(30.0)
# connect to service which issues an welcome banner (without need to try:
# write anything) s.connect(ADDR)
s.connect(("gmail.org", 995)) 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) ss = socket.ssl(s)
# read part of return welcome banner twice # Read part of return welcome banner twice.
ss.read(1) ss.read(1)
ss.read(1) ss.read(1)
s.close() s.close()
else:
def test_timeout():
pass
def test_rude_shutdown(): def test_rude_shutdown():
if test_support.verbose:
print "test_rude_shutdown ..."
try: try:
import threading import threading
except ImportError: except ImportError: