annotate Lib/test/test_socketserver.py @ 58925:eecf1bef052d 2.6

Merged revisions 78207 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r78207 | ezio.melotti | 2010-02-17 01:26:09 +0200 (Wed, 17 Feb 2010) | 1 line #7930: fix stripid ........
author Ezio Melotti <ezio.melotti@gmail.com>
date Tue, 16 Feb 2010 23:29:44 +0000
parents 024b2b984866
children ea43f7f6e84c e6009b9cd908
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
1 """
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
2 Test suite for SocketServer.py.
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
3 """
18443
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
4
45551
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
5 import contextlib
38767
46f3eb474c84 Fix the socket tests so they can be run concurrently. Backport candidate
Neal Norwitz <nnorwitz@gmail.com>
parents: 31896
diff changeset
6 import errno
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
7 import imp
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
8 import os
18443
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 import select
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
10 import signal
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
11 import socket
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
12 import tempfile
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
13 import threading
18443
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 import time
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
15 import unittest
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
16 import SocketServer
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
17
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
18 import test.test_support
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
19 from test.test_support import reap_children, verbose, TestSkipped
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
20 from test.test_support import TESTFN as TEST_FILE
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
21
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
22 test.test_support.requires("network")
18443
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
23
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
24 TEST_STR = "hello world\n"
46362
d917da2b1946 - Issue #2550: The approach used by client/server code for obtaining ports
Trent Nelson <trent.nelson@snakebite.org>
parents: 46025
diff changeset
25 HOST = test.test_support.HOST
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
26
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
27 HAVE_UNIX_SOCKETS = hasattr(socket, "AF_UNIX")
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
28 HAVE_FORKING = hasattr(os, "fork") and os.name != "os2"
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
29
45669
436105125445 Fix test_socketserver on Windows after r61099 added several signal.alarm()
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45551
diff changeset
30 def signal_alarm(n):
436105125445 Fix test_socketserver on Windows after r61099 added several signal.alarm()
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45551
diff changeset
31 """Call signal.alarm when it exists (i.e. not on Windows)."""
436105125445 Fix test_socketserver on Windows after r61099 added several signal.alarm()
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45551
diff changeset
32 if hasattr(signal, 'alarm'):
436105125445 Fix test_socketserver on Windows after r61099 added several signal.alarm()
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45551
diff changeset
33 signal.alarm(n)
18443
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
34
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
35 def receive(sock, n, timeout=20):
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 r, w, x = select.select([sock], [], [], timeout)
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 if sock in r:
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 return sock.recv(n)
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 else:
31515
71a294bd7950 Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents: 27020
diff changeset
40 raise RuntimeError, "timed out on %r" % (sock,)
18443
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
41
45141
3850d13bf96b Let test_socketserver pass on win32, which does not have AF_UNIX sockets.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents: 45117
diff changeset
42 if HAVE_UNIX_SOCKETS:
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
43 class ForkingUnixStreamServer(SocketServer.ForkingMixIn,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
44 SocketServer.UnixStreamServer):
45141
3850d13bf96b Let test_socketserver pass on win32, which does not have AF_UNIX sockets.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents: 45117
diff changeset
45 pass
18443
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
46
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
47 class ForkingUnixDatagramServer(SocketServer.ForkingMixIn,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
48 SocketServer.UnixDatagramServer):
45141
3850d13bf96b Let test_socketserver pass on win32, which does not have AF_UNIX sockets.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents: 45117
diff changeset
49 pass
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
50
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
51
45551
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
52 @contextlib.contextmanager
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
53 def simple_subprocess(testcase):
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
54 pid = os.fork()
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
55 if pid == 0:
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
56 # Don't throw an exception; it would be caught by the test harness.
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
57 os._exit(72)
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
58 yield None
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
59 pid2, status = os.waitpid(pid, 0)
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
60 testcase.assertEquals(pid2, pid)
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
61 testcase.assertEquals(72 << 8, status)
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
62
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
63
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
64 class SocketServerTest(unittest.TestCase):
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
65 """Test all socket servers."""
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
66
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
67 def setUp(self):
45669
436105125445 Fix test_socketserver on Windows after r61099 added several signal.alarm()
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45551
diff changeset
68 signal_alarm(20) # Kill deadlocks after 20 seconds.
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
69 self.port_seed = 0
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
70 self.test_files = []
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
71
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
72 def tearDown(self):
46025
9634c17e8fe5 Try to prevent the alarm going off early in tearDown
Neal Norwitz <nnorwitz@gmail.com>
parents: 45944
diff changeset
73 signal_alarm(0) # Didn't deadlock.
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
74 reap_children()
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
75
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
76 for fn in self.test_files:
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
77 try:
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
78 os.remove(fn)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
79 except os.error:
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
80 pass
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
81 self.test_files[:] = []
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
82
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
83 def pickaddr(self, proto):
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
84 if proto == socket.AF_INET:
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
85 return (HOST, 0)
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
86 else:
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
87 # XXX: We need a way to tell AF_UNIX to pick its own name
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
88 # like AF_INET provides port==0.
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
89 dir = None
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
90 if os.name == 'os2':
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
91 dir = '\socket'
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
92 fn = tempfile.mktemp(prefix='unix_socket.', dir=dir)
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
93 if os.name == 'os2':
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
94 # AF_UNIX socket names on OS/2 require a specific prefix
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
95 # which can't include a drive letter and must also use
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
96 # backslashes as directory separators
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
97 if fn[1] == ':':
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
98 fn = fn[2:]
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
99 if fn[0] in (os.sep, os.altsep):
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
100 fn = fn[1:]
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
101 if os.sep == '/':
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
102 fn = fn.replace(os.sep, os.altsep)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
103 else:
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
104 fn = fn.replace(os.altsep, os.sep)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
105 self.test_files.append(fn)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
106 return fn
18443
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
107
45702
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
108 def make_server(self, addr, svrcls, hdlrbase):
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
109 class MyServer(svrcls):
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
110 def handle_error(self, request, client_address):
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
111 self.close_request(request)
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
112 self.server_close()
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
113 raise
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
114
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
115 class MyHandler(hdlrbase):
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
116 def handle(self):
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
117 line = self.rfile.readline()
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
118 self.wfile.write(line)
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
119
45702
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
120 if verbose: print "creating server"
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
121 server = MyServer(addr, MyHandler)
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
122 self.assertEquals(server.server_address, server.socket.getsockname())
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
123 return server
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
124
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
125 def run_server(self, svrcls, hdlrbase, testfunc):
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
126 server = self.make_server(self.pickaddr(svrcls.address_family),
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
127 svrcls, hdlrbase)
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
128 # We had the OS pick a port, so pull the real address out of
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
129 # the server.
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
130 addr = server.server_address
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
131 if verbose:
45702
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
132 print "server created"
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
133 print "ADDR =", addr
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
134 print "CLASS =", svrcls
45702
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
135 t = threading.Thread(
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
136 name='%s serving' % svrcls,
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
137 target=server.serve_forever,
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
138 # Short poll interval to make the test finish quickly.
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
139 # Time between requests is short enough that we won't wake
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
140 # up spuriously too many times.
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
141 kwargs={'poll_interval':0.01})
48289
024b2b984866 change a few uses of the threading APIs
Benjamin Peterson <benjamin@python.org>
parents: 47598
diff changeset
142 t.daemon = True # In case this function raises.
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
143 t.start()
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
144 if verbose: print "server running"
45702
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
145 for i in range(3):
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
146 if verbose: print "test client", i
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
147 testfunc(svrcls.address_family, addr)
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
148 if verbose: print "waiting for server"
45702
a8754c0db53f Progress on issue #1193577 by adding a polling .shutdown() method to
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45669
diff changeset
149 server.shutdown()
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
150 t.join()
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
151 if verbose: print "done"
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
152
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
153 def stream_examine(self, proto, addr):
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
154 s = socket.socket(proto, socket.SOCK_STREAM)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
155 s.connect(addr)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
156 s.sendall(TEST_STR)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
157 buf = data = receive(s, 100)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
158 while data and '\n' not in buf:
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
159 data = receive(s, 100)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
160 buf += data
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
161 self.assertEquals(buf, TEST_STR)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
162 s.close()
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
163
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
164 def dgram_examine(self, proto, addr):
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
165 s = socket.socket(proto, socket.SOCK_DGRAM)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
166 s.sendto(TEST_STR, addr)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
167 buf = data = receive(s, 100)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
168 while data and '\n' not in buf:
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
169 data = receive(s, 100)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
170 buf += data
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
171 self.assertEquals(buf, TEST_STR)
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
172 s.close()
18443
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
173
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
174 def test_TCPServer(self):
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
175 self.run_server(SocketServer.TCPServer,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
176 SocketServer.StreamRequestHandler,
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
177 self.stream_examine)
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
178
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
179 def test_ThreadingTCPServer(self):
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
180 self.run_server(SocketServer.ThreadingTCPServer,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
181 SocketServer.StreamRequestHandler,
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
182 self.stream_examine)
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
183
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
184 if HAVE_FORKING:
45551
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
185 def test_ForkingTCPServer(self):
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
186 with simple_subprocess(self):
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
187 self.run_server(SocketServer.ForkingTCPServer,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
188 SocketServer.StreamRequestHandler,
45551
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
189 self.stream_examine)
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
190
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
191 if HAVE_UNIX_SOCKETS:
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
192 def test_UnixStreamServer(self):
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
193 self.run_server(SocketServer.UnixStreamServer,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
194 SocketServer.StreamRequestHandler,
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
195 self.stream_examine)
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
196
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
197 def test_ThreadingUnixStreamServer(self):
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
198 self.run_server(SocketServer.ThreadingUnixStreamServer,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
199 SocketServer.StreamRequestHandler,
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
200 self.stream_examine)
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
201
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
202 if HAVE_FORKING:
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
203 def test_ForkingUnixStreamServer(self):
45551
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
204 with simple_subprocess(self):
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
205 self.run_server(ForkingUnixStreamServer,
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
206 SocketServer.StreamRequestHandler,
45551
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
207 self.stream_examine)
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
208
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
209 def test_UDPServer(self):
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
210 self.run_server(SocketServer.UDPServer,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
211 SocketServer.DatagramRequestHandler,
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
212 self.dgram_examine)
39505
e90e7e768cb3 Fix the test for SocketServer so it should pass on cygwin and not fail
Neal Norwitz <nnorwitz@gmail.com>
parents: 38961
diff changeset
213
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
214 def test_ThreadingUDPServer(self):
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
215 self.run_server(SocketServer.ThreadingUDPServer,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
216 SocketServer.DatagramRequestHandler,
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
217 self.dgram_examine)
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
218
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
219 if HAVE_FORKING:
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
220 def test_ForkingUDPServer(self):
45551
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
221 with simple_subprocess(self):
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
222 self.run_server(SocketServer.ForkingUDPServer,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
223 SocketServer.DatagramRequestHandler,
45551
cc220745e4e5 Prevent SocketServer.ForkingMixIn from waiting on child processes that it
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45544
diff changeset
224 self.dgram_examine)
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
225
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
226 # Alas, on Linux (at least) recvfrom() doesn't return a meaningful
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
227 # client address so this cannot work:
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
228
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
229 # if HAVE_UNIX_SOCKETS:
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
230 # def test_UnixDatagramServer(self):
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
231 # self.run_server(SocketServer.UnixDatagramServer,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
232 # SocketServer.DatagramRequestHandler,
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
233 # self.dgram_examine)
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
234 #
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
235 # def test_ThreadingUnixDatagramServer(self):
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
236 # self.run_server(SocketServer.ThreadingUnixDatagramServer,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
237 # SocketServer.DatagramRequestHandler,
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
238 # self.dgram_examine)
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
239 #
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
240 # if HAVE_FORKING:
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
241 # def test_ForkingUnixDatagramServer(self):
47241
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
242 # self.run_server(SocketServer.ForkingUnixDatagramServer,
ba1fa511b72d socketserver renaming reversal part 3: move the module into the right
Georg Brandl <georg@python.org>
parents: 46929
diff changeset
243 # SocketServer.DatagramRequestHandler,
45544
8aaf1495da39 Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make
Jeffrey Yasskin <jyasskin@gmail.com>
parents: 45468
diff changeset
244 # self.dgram_examine)
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
245
18443
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
246
19949
04ce2a48c0a8 Rework akin to test_threaded_import, so that this can run under regrtest.
Tim Peters <tim.peters@gmail.com>
parents: 18545
diff changeset
247 def test_main():
04ce2a48c0a8 Rework akin to test_threaded_import, so that this can run under regrtest.
Tim Peters <tim.peters@gmail.com>
parents: 18545
diff changeset
248 if imp.lock_held():
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
249 # If the import lock is held, the threads will hang
19949
04ce2a48c0a8 Rework akin to test_threaded_import, so that this can run under regrtest.
Tim Peters <tim.peters@gmail.com>
parents: 18545
diff changeset
250 raise TestSkipped("can't run when import lock is held")
04ce2a48c0a8 Rework akin to test_threaded_import, so that this can run under regrtest.
Tim Peters <tim.peters@gmail.com>
parents: 18545
diff changeset
251
45109
a81ef63a1009 Rewrite test_socketserver as unittest, written for GHOP by Benjamin Petersen.
Georg Brandl <georg@python.org>
parents: 42861
diff changeset
252 test.test_support.run_unittest(SocketServerTest)
18443
9c04e23f8d43 A test suite for SocketServer.py that exposes the various bugs just
Guido van Rossum <guido@python.org>
parents:
diff changeset
253
19949
04ce2a48c0a8 Rework akin to test_threaded_import, so that this can run under regrtest.
Tim Peters <tim.peters@gmail.com>
parents: 18545
diff changeset
254 if __name__ == "__main__":
04ce2a48c0a8 Rework akin to test_threaded_import, so that this can run under regrtest.
Tim Peters <tim.peters@gmail.com>
parents: 18545
diff changeset
255 test_main()
45944
d00a9f75d223 Revert r61650; the intent of this commit was to try and address alarm failures on some of the build slaves. As Neal points out, it's called after test_main(), so it's not going to factor into the test when run via regrtest.py (and removes the original functionality that Jeffrey wanted that would kill the test if it took longer than 3 seconds to run when executing it directly during development).
Trent Nelson <trent.nelson@snakebite.org>
parents: 45937
diff changeset
256 signal_alarm(3) # Shutdown shouldn't take more than 3 seconds.