Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-03-26 | SL-14999 - more cpp features tests | Brad Payne (Vir Linden) | |
2021-03-17 | SL-14999 - more c++ feature tests | Brad Payne (Vir Linden) | |
2021-03-17 | SL-14999 - test update | Brad Payne (Vir Linden) | |
2021-03-17 | SL-14999 - C++ feature tests | Brad Payne (Vir Linden) | |
2021-03-16 | SL-14999 - cppfeatures test file for examples and compiler conformance ↵ | Brad Payne (Vir Linden) | |
verification | |||
2021-02-11 | SL-11215 Fixed unit test | Andrey Kleshchev | |
2020-12-08 | SL-2363 Build fix | Andrey Kleshchev | |
2020-12-07 | SL-2363 Update Unit Tests | Andrey Kleshchev | |
2020-09-05 | SL-13910 Moved the LLCertException constructor to .cpp | Andrey Lihatskiy | |
2020-05-06 | DRTVWR-476: Merge branch 'master' of lindenlab/viewer into DRTVWR-476-boost-1.72 | Nat Goodspeed | |
2020-03-25 | SL-11216: Convert LLVersionInfo to an LLSingleton. | Nat Goodspeed | |
This changeset is meant to exemplify how to convert a "namespace" class whose methods are static -- and whose data are module-static -- to an LLSingleton. LLVersionInfo has no initClass() or cleanupClass() methods, but the general idea is the same. * Derive the class from LLSingleton<T>: class LLSomeSingleton: public LLSingleton<LLSomeSingleton> { ... }; * Add LLSINGLETON(LLSomeSingleton); in the private section of the class. This usage implies a separate LLSomeSingleton::LLSomeSingleton() definition, as described in indra/llcommon/llsingleton.h. * Move module-scope data in the .cpp file to non-static class members. Change any sVariableName to mVariableName to avoid being outright misleading. * Make static class methods non-static. Remove '//static' comments from method definitions as needed. * For LLVersionInfo specifically, the 'const std::string&' return type was replaced with 'std::string'. Returning a reference to a static or a member, const or otherwise, is an anti-pattern: the interface constrains the implementation, prohibiting possibly later returning a temporary (an expression). * For LLVersionInfo specifically, 'const S32' return type was replaced with simple 'S32'. 'const' is just noise in that usage. * Simple member initialization (e.g. the original initializer expressions for static variables) can be done with member{ value } initializers (no examples here though). * Delete initClass() method. * LLSingleton's forté is of course lazy initialization. It might work to simply delete any calls to initClass(). But if there are side effects that must happen at that moment, replace LLSomeSingleton::initClass() with (void)LLSomeSingleton::instance(); * Most initClass() initialization can be done in the constructor, as would normally be the case. * Initialization that might cause a circular LLSingleton reference should be moved to initSingleton(). Override 'void initSingleton();' should be private. * For LLVersionInfo specifically, certain initialization that used to be lazily performed was made unconditional, due to its low cost. * For LLVersionInfo specifically, certain initialization involved calling methods that have become non-static. This was moved to initSingleton() because, in a constructor body, 'this' does not yet point to the enclosing class. * Delete cleanupClass() method. * There is already a generic LLSingletonBase::deleteAll() call in LLAppViewer::cleanup(). It might work to let this new LLSingleton be cleaned up with all the rest. But if there are side effects that must happen at that moment, replace LLSomeSingleton::cleanupClass() with LLSomeSingleton::deleteSingleton(). That said, much of the benefit of converting to LLSingleton is deleteAll()'s guarantee that cross-LLSingleton dependencies will be properly honored: we're trying to migrate the code base away from the present fragile manual cleanup sequence. * Most cleanupClass() cleanup can be done in the destructor, as would normally be the case. * Cleanup that might throw an exception should be moved to cleanupSingleton(). Override 'void cleanupSingleton();' should be private. * Within LLSomeSingleton methods, remove any existing LLSomeSingleton::methodName() qualification: simple methodName() is better. * In the rest of the code base, convert most LLSomeSingleton::methodName() references to LLSomeSingleton::instance().methodName(). (Prefer instance() to getInstance() because a reference does not admit the possibility of NULL.) * Of course, LLSomeSingleton::ENUM_VALUE can remain unchanged. In general, for many successive references to an LLSingleton instance, it can be useful to capture the instance() as in: auto& versionInfo{LLVersionInfo::instance()}; // ... versionInfo.getVersion() ... We did not do that here only to simplify the code review. The STRINGIZE(expression) macro encapsulates: std::ostringstream out; out << expression; return out.str(); We used that in a couple places. For LLVersionInfo specifically, lllogininstance_test.cpp used to dummy out a couple specific static methods. It's harder to dummy out LLSingleton::instance() references, so we add the real class to that test. | |||
2020-01-28 | DRTVWR-440, merge in latest from 6.3.7 release | Dave Houlton | |
2020-01-17 | DRTVWR-476: Never mind UTF8, replace non-ASCII chars with ASCII. | Nat Goodspeed | |
2020-01-16 | DRTVWR-476: Try again to fix some of the (R) characters as UTF8. | Nat Goodspeed | |
2020-01-16 | DRTVWR-476: Re-encode certain files with non-ASCII chars as UTF8. | Nat Goodspeed | |
2020-01-08 | SL-12486 Fix unit test build issues | andreykproductengine | |
2019-11-13 | Merge in from viewer-release 6.3.5 | Dave Houlton | |
2019-11-12 | Downstream merge from 494-maint-wassail | AndreyL ProductEngine | |
2019-08-12 | DRTVWR-493: Make catch_llerrs() a member of WrapLLErrs. | Nat Goodspeed | |
2019-08-10 | DRTVWR-493: Introduce test catch_what(), catch_llerrs() functions. | Nat Goodspeed | |
Use them in place of awkward try/catch test boilerplate. | |||
2019-08-09 | SL-9699 Login selection | andreykproductengine | |
2019-02-28 | Merge | Rider Linden | |
2018-09-26 | Automated merge with ssh://bitbucket.org/lindenlab/viewer-release | Nat Goodspeed | |
2018-08-29 | MAINT-9044 Update Aditi helper_uri to ↵ | AndreyL ProductEngine | |
https://secondlife.aditi.lindenlab.com/helpers/ | |||
2018-08-24 | is dirty code in day cycle editor. When environment panel closes disconnect ↵ | Rider Linden | |
commit hook for crash. | |||
2018-08-24 | Some work on clearDirtyFlag and fix a unit test. | Rider Linden | |
2018-08-02 | Automated merge with ssh://bitbucket.org/lindenlab/viewer-release | Nat Goodspeed | |
2018-06-21 | DRTVWR-447: Merge up to latest viewer-release | Nat Goodspeed | |
2018-05-24 | Merged in oz_linden/maint-8675 | AndreyL ProductEngine | |
2018-05-23 | Automated merge with ssh://bitbucket.org/oz_linden/maint-8675 | Nat Goodspeed | |
2018-05-23 | fix tests broken by argument added to LLTrans::getString | Oz Linden | |
2018-05-23 | MAINT-8675: update expired certs in integration test | Oz Linden | |
2018-05-17 | SL-821: Add LL_TO_WSTRING() macro to llpreprocessor.h. | Nat Goodspeed | |
Also use existing LL_TO_STRING() macro to stringize LL_VIEWER_CHANNEL in llversioninfo.cpp and its tests. | |||
2018-06-13 | network test fixes | Mnikolenko ProductEngine | |
2018-01-17 | merge 5.1.0-release | Oz Linden | |
2017-08-24 | merge changes for MAINT-7594 | Oz Linden | |
2017-08-23 | merge changes for MAINT-7594 | Oz Linden | |
2017-08-22 | MAINT-7594: add platform name string to login request (and add request ↵ | Oz Linden | |
parameter logging at DEBUG) | |||
2017-08-14 | MAINT-7640: Notify the user if login is blocked for a required viewer update | Oz Linden | |
2017-06-20 | merge changes for 5.0.6-release | Oz Linden | |
2017-06-20 | pull from v64 gate | Glenn Glazer | |
2017-06-20 | Automated merge with ssh://bitbucket.org/lindenlab/viewer-release | Nat Goodspeed | |
2017-04-14 | remove obsolete type cast that upsets VS sensibilities | Oz Linden | |
2017-04-14 | Change certificate store infrastructure to key off of the Subject Key | Oz Linden | |
Id rather than sha1 hash, since that is rarely used in modern certs. The previous form was storing trusted certs using an empty sha1 hash value as the key, which meant most certificates matched... not good. Modify the LLCertException to pass certificate information back as LLSD rather than an LLPointer<LLCertificate>, because when the exception is being thown from the certificate constructor that results in one of a couple of other exceptions (even refcounting won't save you when the problem is that the thing you're pointing to never finished coming into being properly). Update the certificates in the llsechandler_basic_test to modern conventions, and extend the classes to allow for an optional validation date so that the test can use a fixed date. Also make all the certificates include the plain text form for ease of reference. | |||
2017-03-02 | SL-409 - viewer asset stats test build fix | Brad Payne (Vir Linden) | |
2017-02-27 | SL-409 - viewer asset stats updates to distinguish http and udp fetches | Brad Payne (Vir Linden) | |
2017-02-03 | Automated merge with ssh://bitbucket.org/lindenlab/viewer-release | Nat Goodspeed | |
2016-12-07 | Automated merge with ssh://bitbucket.org/lindenlab/viewer-skip-llcorehttp-test | Nat Goodspeed | |
2016-12-07 | DRTVWR-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-07 | merge nats even newer fix for the llcorehttp test | Oz Linden | |