summaryrefslogtreecommitdiff
path: root/indra/llmessage/tests
AgeCommit message (Collapse)Author
2016-12-08Automated merge with ssh://bitbucket.org/lindenlab/viewer-skip-llcorehttp-testNat Goodspeed
2016-12-07DRTVWR-418: Apparently (some) Windows hosts still need freeport().Nat Goodspeed
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."
2016-12-07DRTVWR-418: Make testrunner.run() avoid extra Thread altogether.Nat Goodspeed
2016-12-07DRTVWR-418: Diagnostic prints to identify hangupNat Goodspeed
2016-12-07DRTVWR-418: Fix a couple variable references in debugging output.Nat Goodspeed
2016-12-07DRTVWR-418: Revamp testrunner to shutdown server Thread at end.Nat Goodspeed
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.
2016-12-06DRTVWR-418: Remove duplicate testrunner.pyNat Goodspeed
2016-11-14Merged in lindenlab/viewer-cleanupAndreyL ProductEngine
2016-10-11MAINT-5232: Merge up to VLC viewer from viewer-releaseNat Goodspeed
2016-10-10Merged in lindenlab/viewer-releaseAndreyL ProductEngine
2016-09-15MAINT-5232: Normalize LLSingleton subclasses.Nat Goodspeed
A shocking number of LLSingleton subclasses had public constructors -- and in several instances, were being explicitly instantiated independently of the LLSingleton machinery. This breaks the new LLSingleton dependency-tracking machinery. It seems only fair that if you say you want an LLSingleton, there should only be ONE INSTANCE! Introduce LLSINGLETON() and LLSINGLETON_EMPTY_CTOR() macros. These handle the friend class LLSingleton<whatevah>; and explicitly declare a private nullary constructor. To try to enforce the LLSINGLETON() convention, introduce a new pure virtual LLSingleton method you_must_use_LLSINGLETON_macro() which is, as you might suspect, defined by the macro. If you declare an LLSingleton subclass without using LLSINGLETON() or LLSINGLETON_EMPTY_CTOR() in the class body, you can't instantiate the subclass for lack of a you_must_use_LLSINGLETON_macro() implementation -- which will hopefully remind the coder. Trawl through ALL LLSingleton subclass definitions, sprinkling in LLSINGLETON() or LLSINGLETON_EMPTY_CTOR() as appropriate. Remove all explicit constructor declarations, public or private, along with relevant 'friend class LLSingleton<myself>' declarations. Where destructors are declared, move them into private section as well. Where the constructor was inline but nontrivial, move out of class body. Fix several LLSingleton abuses revealed by making ctors/dtors private: LLGlobalEconomy was both an LLSingleton and the base class for LLRegionEconomy, a non-LLSingleton. (Therefore every LLRegionEconomy instance contained another instance of the LLGlobalEconomy "singleton.") Extract LLBaseEconomy; LLGlobalEconomy is now a trivial subclass of that. LLRegionEconomy, as you might suspect, now derives from LLBaseEconomy. LLToolGrab, an LLSingleton, was also explicitly instantiated by LLToolCompGun's constructor. Extract LLToolGrabBase, explicitly instantiated, with trivial subclass LLToolGrab, the LLSingleton instance. (WARNING: LLToolGrabBase methods have an unnerving tendency to go after LLToolGrab::getInstance(). I DO NOT KNOW what should be the relationship between the instance in LLToolCompGun and the LLToolGrab singleton instance.) LLGridManager declared a variant constructor accepting (const std::string&), with the comment: // initialize with an explicity grid file for testing. As there is no evidence of this being called from anywhere, delete it. LLChicletBar's constructor accepted an optional (const LLSD&). As the LLSD parameter wasn't used, and as there is no evidence of it being passed from anywhere, delete the parameter. LLViewerWindow::shutdownViews() was checking LLNavigationBar:: instanceExists(), then deleting its getInstance() pointer -- leaving a dangling LLSingleton instance pointer, a land mine if any subsequent code should attempt to reference it. Use deleteSingleton() instead. ~LLAppViewer() was calling LLViewerEventRecorder::instance() and then explicitly calling ~LLViewerEventRecorder() on that instance -- leaving the LLSingleton instance pointer pointing to an allocated-but-destroyed instance. Use deleteSingleton() instead.
2016-08-30Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2016-08-17MAINT-5011: Use LLTHROW() instead of plain BOOST_THROW_EXCEPTION().Nat Goodspeed
A level of preprocessor indirection lets us later change the implementation if desired.
2016-07-21MAINT-6585: redirect elementtree to llbase versionGlenn Glazer
2016-07-20MAINT=6585: migrate from local python libraries to canonical llbaseGlenn Glazer
2016-07-19MAINT-5011: Introduce LLException base class for viewer exceptions.Nat Goodspeed
This also introduces LLContinueError for exceptions which should interrupt some part of viewer processing (e.g. the current coroutine) but should attempt to let the viewer session proceed. Derive all existing viewer exception classes from LLException rather than from std::runtime_error or std::logic_error. Use BOOST_THROW_EXCEPTION() rather than plain 'throw' to enrich the thrown exception with source file, line number and containing function.
2016-04-04merge with 4.0.3-releaseOz Linden
2015-11-10remove execute permission from many files that should not have itOz Linden
2015-06-09Removed dead code, llsdmessage, llcapabilitylistener and the associated tests.Rider Linden
2015-05-23MAINT-5232: Make gMessageSystem an LLPounceable<LLMessageSystem*>.Nat Goodspeed
This will permit other subsystems to use gMessageSystem.callWhenReady() to (e.g.) register callbacks as soon as gMessageSystem is fully initialized.
2015-05-22Removed dead HTTP client adapter codeRider Linden
Partial conversion of group manager clean up some debug code in web profiles.
2015-05-20MAINT-5232: Introduce SUBSYSTEM_CLEANUP() macroNat Goodspeed
and use it for existing LLSomeClass::cleanupClass() calls. This logs the fact of making the call, as well as making it.
2015-03-23Client adapter is removed. Its tests should be too.Rider Linden
2015-01-23Explain why LLHost::setHostByName() / getHostName() test skipped.Nat Goodspeed
A skip() stating that we don't yet understand why the test fails is implicitly an open action item. This one isn't open. Save future developers the research.
2014-05-13sunshine-external merge WIPBrad Payne (Vir Linden)
2013-12-10fix for license wordingBrad Payne (Vir Linden)
2013-10-29Merge viewer-release => sunshine-internalDon Kjer
2013-10-21more buildfix stuffRichard Linden
2013-10-16mergeBrad Payne (Vir Linden)
2013-10-08merge from viewer-releaseRichard Linden
2013-08-16merge with viewer-releaseNyx Linden
2013-08-12SH-4399 FIX: Interesting: Texture console MB Bound 0/384 and texture queue ↵Richard Linden
bounces once per second SH-4346 FIX: Interesting: some integer Statistics are displayed as floating point after crossing region boundary made llerrs/infos/etc properly variadic wrt tags LL_INFOS("A", "B", "C") works, for example fixed unit tests remove llsimplestat
2013-06-21Automated merge with file:///F:%5Cviewer-bearDave Parks
2013-05-21mergeBrad Payne (Vir Linden)
2013-05-09Merge downstream code and viewer-betasimon
2013-05-01Merge vwr-dev-matGraham Madarasz
2013-04-30Merge 3.5.1 into MaterialsGraham Madarasz
2013-04-19merge changes for DRTVWR-294Oz Linden
2013-04-11Merge in downstream code (chui fixes, materials)simon
2013-04-04Renaming HTTP_HEADER_* into HTTP_IN_HEADER_* and HTTP_OUT_HEADER_* to make ↵Don Kjer
it more clear which header strings should be used for incoming vs outgoing situations. Using constants for commonly used llhttpnode context strings.
2013-04-03mergeBrad Payne (Vir Linden)
2013-04-02BUILDFIX commit policy fixesNyx Linden
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2013-03-13MAINT-2410 Remove unused particle packing code and fix integration test to ↵Dave Parks
work without a packer.
2013-03-13Large changes to the LLCurl::Responder API, as well as pulling in some ↵Don Kjer
changes to common libraries from the server codebase: * Additional error checking in http handlers. * Uniform log spam for http errors. * Switch to using constants for http heads and status codes. * Fixed bugs in incorrectly checking if parsing LLSD xml resulted in an error. * Reduced spam regarding LLSD parsing errors in the default completedRaw http handler. It should not longer be necessary to short-circuit completedRaw to avoid spam. * Ported over a few bug fixes from the server code. * Switch mode http status codes to use S32 instead of U32. * Ported LLSD::asStringRef from server code; avoids copying strings all over the place. * Ported server change to LLSD::asBinary; this always returns a reference now instead of copying the entire binary blob. * Ported server pretty notation format (and pretty binary format) to llsd serialization. * The new LLCurl::Responder API no longer has two error handlers to choose from. Overriding the following methods have been deprecated: ** error - use httpFailure ** errorWithContent - use httpFailure ** result - use httpSuccess ** completed - use httpCompleted ** completedHeader - no longer necessary; call getResponseHeaders() from a completion method to obtain these headers. * In order to 'catch' a completed http request, override one of these methods: ** httpSuccess - Called for any 2xx status code. ** httpFailure - Called for any non-2xx status code. ** httpComplete - Called for all status codes. Default implementation is to call either httpSuccess or httpFailure. * It is recommended to keep these methods protected/private in order to avoid triggering of these methods without using a 'push' method (see below). * Uniform error handling should followed whenever possible by calling a variant of this during httpFailure: ** llwarns << dumpResponse() << llendl; * Be sure to include LOG_CLASS(your_class_name) in your class in order for the log entry to give more context. * In order to 'push' a result into the responder, you should no longer call error, errorWithContent, result, or completed. * Nor should you directly call httpSuccess/Failure/Completed (unless passing a message up to a parent class). * Instead, you can set the internal content of a responder and trigger a corresponding method using the following methods: ** successResult - Sets results and calls httpSuccess ** failureResult - Sets results and calls httpFailure ** completedResult - Sets results and calls httpCompleted * To obtain information about a the response from a reponder method, use the following getters: ** getStatus - HTTP status code ** getReason - Reason string ** getContent - Content (Parsed body LLSD) ** getResponseHeaders - Response Headers (LLSD map) ** getHTTPMethod - HTTP method of the request ** getURL - URL of the request * It is still possible to override completeRaw if you want to manipulate data directly out of LLPumpIO. * See indra/llmessage/llcurl.h for more information.
2013-01-24merging in viewer-beta.Nyx Linden
Most of the merge was clean, a couple conflicts. Brought over a couple patches manually for llpolymesh.
2012-12-21MAINT-2168: Backed out changeset fb93eecd462d, reapply fixNat Goodspeed
Now that we've backed out the premature push, reapply the actual fix to propagate it appropriately.
2012-12-21MAINT-2168: Backed out changeset 797318b62275, pushed to wrong repoNat Goodspeed
This changeset was prematurely pushed to the wrong repository. Back it out to propagate it the right way.
2012-12-21MAINT-2168: fail with real message if required var PORT not set.Nat Goodspeed
llhttpclient_test.cpp is only supposed to be run by test_llsdmessage_peer.py, as specified in llmessage/CMakeLists.txt. test_llsdmessage_peer.py sets the environment variable PORT before running INTEGRATION_TEST_llhttpclient. While it's not yet clear under what circumstances INTEGRATION_TEST_llhttpclient could find PORT not set (getenv() returning NULL), it's obvious that in that case, the previous code might well crash. Make it at least fail with an explanatory message rather than a mysterious large negative integer. In theory, occurrences of that message could help us solve the underlying issue.
2012-11-28SH-3563. Pull and merge from viewer-development. Modest code changes to fix ↵prep
alignment issue in llAppearance.