Add python-eventlet package to MOS 9.0 repository
[packages/trusty/python-eventlet.git] / python-eventlet / tests / backdoor_test.py
index 6facffeec2f751e0e3115411fa1713b36a8a96f1..f932eb04c07425aaa6cb03be4f41389890dd0dde 100644 (file)
@@ -1,4 +1,8 @@
+import os
+import os.path
+
 import eventlet
+
 from eventlet import backdoor
 from eventlet.green import socket
 
@@ -13,6 +17,9 @@ class BackdoorTest(LimitedTestCase):
         serv = eventlet.spawn(backdoor.backdoor_server, listener)
         client = socket.socket()
         client.connect(('localhost', listener.getsockname()[1]))
+        self._run_test_on_client_and_server(client, serv)
+
+    def _run_test_on_client_and_server(self, client, server_thread):
         f = client.makefile('rw')
         assert 'Python' in f.readline()
         f.readline()  # build info
@@ -25,10 +32,31 @@ class BackdoorTest(LimitedTestCase):
         self.assertEqual('>>> ', f.read(4))
         f.close()
         client.close()
-        serv.kill()
+        server_thread.kill()
         # wait for the console to discover that it's dead
         eventlet.sleep(0.1)
 
+    def test_server_on_ipv6_socket(self):
+        listener = socket.socket(socket.AF_INET6)
+        listener.bind(('::1', 0))
+        listener.listen(5)
+        serv = eventlet.spawn(backdoor.backdoor_server, listener)
+        client = socket.socket(socket.AF_INET6)
+        client.connect(listener.getsockname())
+        self._run_test_on_client_and_server(client, serv)
+
+    def test_server_on_unix_socket(self):
+        SOCKET_PATH = '/tmp/eventlet_backdoor_test.socket'
+        if os.path.exists(SOCKET_PATH):
+            os.unlink(SOCKET_PATH)
+        listener = socket.socket(socket.AF_UNIX)
+        listener.bind(SOCKET_PATH)
+        listener.listen(5)
+        serv = eventlet.spawn(backdoor.backdoor_server, listener)
+        client = socket.socket(socket.AF_UNIX)
+        client.connect(SOCKET_PATH)
+        self._run_test_on_client_and_server(client, serv)
+
 
 if __name__ == '__main__':
     main()