diff options
author | Andrew MacIntyre <andymac@bullseye.apana.org.au> | 2004-04-11 12:03:57 (GMT) |
---|---|---|
committer | Andrew MacIntyre <andymac@bullseye.apana.org.au> | 2004-04-11 12:03:57 (GMT) |
commit | daedf218524e1c96c289f1785c8f5092642b79ea (patch) | |
tree | 95170e8e96177f059f9bd18bc50faf5c8c101610 /Lib/test/test_socketserver.py | |
parent | cf6f1b69eb5f491dd3cba6c5c90bcb344d4b3a96 (diff) | |
download | cpython-daedf218524e1c96c289f1785c8f5092642b79ea.zip cpython-daedf218524e1c96c289f1785c8f5092642b79ea.tar.gz cpython-daedf218524e1c96c289f1785c8f5092642b79ea.tar.bz2 |
Fixes for AF_UNIX support on OS/2:
- return the full size of the sockaddr_un structure, without which
bind() fails with EINVAL;
- set test_socketserver to use a socket name that meets the form
required by the underlying implementation;
- don't bother exercising the forking AF_UNIX tests on EMX - its
fork() can't handle the stress.
Diffstat (limited to 'Lib/test/test_socketserver.py')
-rw-r--r-- | Lib/test/test_socketserver.py | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py index cee5593..1245ba5 100644 --- a/Lib/test/test_socketserver.py +++ b/Lib/test/test_socketserver.py @@ -94,6 +94,19 @@ def pickaddr(proto): return (host, pickport()) else: fn = TESTFN + str(pickport()) + if os.name == 'os2': + # AF_UNIX socket names on OS/2 require a specific prefix + # which can't include a drive letter and must also use + # backslashes as directory separators + if fn[1] == ':': + fn = fn[2:] + if fn[0] in (os.sep, os.altsep): + fn = fn[1:] + fn = os.path.join('\socket', fn) + if os.sep == '/': + fn = fn.replace(os.sep, os.altsep) + else: + fn = fn.replace(os.altsep, os.sep) testfiles.append(fn) return fn @@ -135,11 +148,13 @@ if not hasattr(socket, 'AF_UNIX'): dgramservers = [] else: class ForkingUnixStreamServer(ForkingMixIn, UnixStreamServer): pass - streamservers = [UnixStreamServer, ThreadingUnixStreamServer, - ForkingUnixStreamServer] + streamservers = [UnixStreamServer, ThreadingUnixStreamServer] + if hasattr(os, 'fork') and os.name not in ('os2',): + streamservers.append(ForkingUnixStreamServer) class ForkingUnixDatagramServer(ForkingMixIn, UnixDatagramServer): pass - dgramservers = [UnixDatagramServer, ThreadingUnixDatagramServer, - ForkingUnixDatagramServer] + dgramservers = [UnixDatagramServer, ThreadingUnixDatagramServer] + if hasattr(os, 'fork') and os.name not in ('os2',): + dgramservers.append(ForkingUnixDatagramServer) def testall(): testloop(socket.AF_INET, tcpservers, MyStreamHandler, teststream) |