Rework akin to test_threaded_import, so that this can run under regrtest.
Also raise TestSkipped (intead of appearing to fail) if the import lock
is held.
diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py
index 398b077..6bce9b3 100644
--- a/Lib/test/test_socketserver.py
+++ b/Lib/test/test_socketserver.py
@@ -1,11 +1,6 @@
 # Test suite for SocketServer.py
 
-# XXX This must be run manually -- somehow the I/O redirection of the
-# regression test breaks the test.
-
 from test_support import verbose, verify, TESTFN, TestSkipped
-if not verbose:
-    raise TestSkipped, "test_socketserver can only be run manually"
 
 from SocketServer import *
 import socket
@@ -153,10 +148,16 @@
         # client address so this cannot work:
         ##testloop(socket.AF_UNIX, dgramservers, MyDatagramHandler, testdgram)
 
-def main():
+def test_main():
+    import imp
+    if imp.lock_held():
+        # If the import lock is held, the threads will hang.
+        raise TestSkipped("can't run when import lock is held")
+
     try:
         testall()
     finally:
         cleanup()
 
-main()
+if __name__ == "__main__":
+    test_main()