diff options
| author | Oz Linden <oz@lindenlab.com> | 2016-12-07 10:09:58 -0500 | 
|---|---|---|
| committer | Oz Linden <oz@lindenlab.com> | 2016-12-07 10:09:58 -0500 | 
| commit | 232c3598547913ca6cb66593059497b413a9322c (patch) | |
| tree | f83fc166648e988bacfeb4cc9dc856226fc8f7a0 /indra/newview/tests | |
| parent | 86bd3ffa47c9c19ad1dda726930997ed39f57006 (diff) | |
| parent | 0532e298a0550c70ca7d94992922d5c040e21702 (diff) | |
merge nats even newer fix for the llcorehttp test
Diffstat (limited to 'indra/newview/tests')
| -rwxr-xr-x | indra/newview/tests/test_llxmlrpc_peer.py | 27 | 
1 files changed, 16 insertions, 11 deletions
| diff --git a/indra/newview/tests/test_llxmlrpc_peer.py b/indra/newview/tests/test_llxmlrpc_peer.py index 281b72a058..12394ad1d9 100755 --- a/indra/newview/tests/test_llxmlrpc_peer.py +++ b/indra/newview/tests/test_llxmlrpc_peer.py @@ -35,11 +35,20 @@ from threading import Thread  from SimpleXMLRPCServer import SimpleXMLRPCServer  mydir = os.path.dirname(__file__)       # expected to be .../indra/newview/tests/ -sys.path.insert(0, os.path.join(mydir, os.pardir, os.pardir, "lib", "python")) -sys.path.insert(1, os.path.join(mydir, os.pardir, os.pardir, "llmessage", "tests")) -from testrunner import freeport, run, debug +sys.path.insert(0, os.path.join(mydir, os.pardir, os.pardir, "llmessage", "tests")) +from testrunner import run, debug  class TestServer(SimpleXMLRPCServer): +    # This server_bind() override is borrowed and simplified from +    # BaseHTTPServer.HTTPServer.server_bind(): we want to capture the actual +    # server port. BaseHTTPServer.HTTPServer.server_bind() stores the actual +    # port in a server_port attribute, but SimpleXMLRPCServer isn't derived +    # from HTTPServer. So do it ourselves. +    def server_bind(self): +        """Override server_bind to store the server port.""" +        SimpleXMLRPCServer.server_bind(self) +        self.server_port = self.socket.getsockname()[1] +      def _dispatch(self, method, params):          try:              func = getattr(self, method) @@ -67,15 +76,11 @@ class TestServer(SimpleXMLRPCServer):          pass  if __name__ == "__main__": -    # Instantiate a TestServer on the first free port in the specified port -    # range. Doing this inline is better than in a daemon thread: if it blows -    # up here, we'll get a traceback. If it blew up in some other thread, the -    # traceback would get eaten and we'd run the subject test program anyway. -    xmlrpcd, port = freeport(xrange(8000, 8020), -                             lambda port: TestServer(('127.0.0.1', port))) +    # Make the runtime choose an available port. +    xmlrpcd = TestServer(('127.0.0.1', 0))      # Pass the selected port number to the subject test program via the      # environment. We don't want to impose requirements on the test program's      # command-line parsing -- and anyway, for C++ integration tests, that's      # performed in TUT code rather than our own. -    os.environ["PORT"] = str(port) -    sys.exit(run(server=Thread(name="xmlrpc", target=xmlrpcd.serve_forever), *sys.argv[1:])) +    os.environ["PORT"] = str(xmlrpcd.server_port) +    sys.exit(run(server_inst=xmlrpcd, *sys.argv[1:])) | 
