예제 #1
0
    def testGetRemotePortAndIsHTTPServerRunningOnPort(self):
        with self._GetCRI() as cri:
            # Create local server.
            sock = socket.socket()
            sock.bind(('', 0))
            port = sock.getsockname()[1]
            sock.listen(0)

            # Get remote port and ensure that it was unused.
            remote_port = cri.GetRemotePort()
            self.assertFalse(cri.IsHTTPServerRunningOnPort(remote_port))

            # Forward local server's port to remote device's remote_port.
            forwarder = cros_forwarder.CrOsForwarderFactory(cri).Create(
                forwarders.PortPairs(http=forwarders.PortPair(
                    port, remote_port),
                                     https=None,
                                     dns=None))

            # At this point, remote device should be able to connect to local server.
            self.assertTrue(cri.IsHTTPServerRunningOnPort(remote_port))

            # Next remote port shouldn't be the same as remote_port, since remote_port
            # is now in use.
            self.assertTrue(cri.GetRemotePort() != remote_port)

            # Close forwarder and local server ports.
            forwarder.Close()
            sock.close()

            # Device should no longer be able to connect to remote_port since it is no
            # longer in use.
            self.assertFalse(cri.IsHTTPServerRunningOnPort(remote_port))
예제 #2
0
 def forwarder_factory(self):
     if not self._forwarder_factory:
         self._forwarder_factory = cros_forwarder.CrOsForwarderFactory(
             self._cri)
     return self._forwarder_factory
 def _CreateForwarderFactory(self):
   return cros_forwarder.CrOsForwarderFactory(self._cri)