Skip to content
Snippets Groups Projects
  • Nat Goodspeed's avatar
    8e8eb76e
    CHOP-661: add and use code to listen on next available server port. · 8e8eb76e
    Nat Goodspeed authored
    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.
    8e8eb76e
    History
    CHOP-661: add and use code to listen on next available server port.
    Nat Goodspeed authored
    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.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.