Age | Commit message (Collapse) | Author |
|
This changeset makes it possible to build the Second Life viewer using
Python 3. It is designed to be used with an equivalent Autobuild branch
so that a developer can compile without needing Python 2 on their
machine.
Breaking change: Python 2 support ending
Rather than supporting two versions of Python, including one that was
discontinued at the beginning of the year, this branch focuses on
pouring future effort into Python 3 only. As a result, scripts do not
need to be backwards compatible. This means that build environments,
be they on personal computers and on build agents, need to have a
compatible interpreter.
Notes
- SLVersionChecker will still use Python 2 on macOS
- Fixed the message template url used by template_verifier.py
|
|
This is the function in indra/llmessage/tests/testrunner.py that iterates
through ports in a specified range, looking for an available one. Other
platforms understand a specification of port 0 to mean: "You pick one. I'll
just use whichever one you picked."
|
|
Instead of having testrunner.run()'s caller pass a Thread object on which to
run the caller's server instance's serve_forever() method, just pass the
server instance. testrunner.run() now constructs the Thread. This API change
allows run() to also call shutdown() on the server instance when done, and
then join() the Thread.
The hope is that this will avoid the Python runtime forcing the process
termination code to 1 due to forcibly killing the daemon thread still running
serve_forever().
While at it, eliminate calls to testrunner.freeport() -- just make the runtime
pick a suitable port instead.
|
|
|
|
In indra/llmessage/tests/testrunner.py, introduce new freeport() function to
try a caller-specified expression (such as instantiating an object that will
listen on a server port) with a range of candidate port numbers until the
expression produces a value instead of EADDRINUSE exception.
Change test_llsdmessage_peer.py and test_llxmlrpc_peer.py to use freeport() to
construct their server class inline BEFORE launching the thread that will run
it, then pass that server's serve_forever method to daemon thread. Also set
os.environ["PORT"] to selected environment variable before running subject
test program.
In indra/llmessage/tests/commtest.h, introduce commtest_data::getport() to
read port number from specified environment variable, throwing exception if
variable not set or non-numeric. Construct default LLHost from getport("PORT")
instead of hardcoded constant.
Change indra/newview/tests/llxmlrpclistener_test.cpp to use commtest_data::
getport("PORT") instead of hardcoded constant. Also use LLSD::with() rather
than older LLSD::insert() syntax.
HOWEVER -- I am irritated to discover that llxmlrpclistener_test IS NOT RUN or
even built by newview/CMakeLists.txt! It's not even commented out -- it's
entirely deleted! I am determined to restore this test. However, as it will
take some fiddling with new link-time dependencies, that will be a separate
commit.
|
|
|
|
|
|
svn+ssh://svn.lindenlab.com/svn/linden/branches/login-api/login-api-2 svn+ssh://svn.lindenlab.com/svn/linden/branches/login-api/login-api-3
|