Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Specifically, append (32) or (64) to the four-part version number stored in
the registry entry used to detect whether this viewer has already been
installed. This is injected as a new VERSION_REGISTRY NSIS variable.
(It was tempting to simply change the value of VERSION_LONG with the embedded
address size. However, there is one other use of VERSION_LONG in the NSIS
template. That use is the subject of MAINT-7533.)
Synthesize the VERSION_REGISTRY value in viewer_manifest.py and add it to the
substitution dict used to populate the NSIS template.
ADDRESS_SIZE isn't passed into viewer_manifest.py, but it can be inferred from
the existing 'arch' parameter: 'arch' as well as 'platform' is used to select
the specific subclass of the ViewerManifest class to instantiate for this run.
Add an appropriate address_size attribute to every such subclass.
Change a couple existing tests on 'arch' to tests on self.address_size instead
-- clearer to the maintainer.
Also, given that subclass selection mechanism, the ViewerManifest base class
shouldn't need if / elif tests on 'platform'. Make build_data_json_platform a
class attribute as well, removing the base-class stanza that dynamically
examines 'platform' and 'arch'.
Similarly, move platform-specific tweaks to the build_data_dict used to
populate build_data.json into a new finish_build_data_dict() method overridden
by individual platform subclasses.
Encapsulate the logic around running the Windows code-signing tool into a
sign() method, and call it as needed. For obtaining environment variables with
fallback values, use os.environ.get() instead of os.path.expandvars() with
tests on the returned value.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
copy calls from viewer manifest
|
|
voice, misc cleanup
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Add LLEventBatch, LLEventThrottle, LLEventBatchThrottle classes.
Approved-by: Rider Linden <rider@lindenlab.com>
Approved-by: Andrey Kleshchev <andreykproductengine@lindenlab.com>
|
|
|
|
once when above InventoryTrashMaxCapacity limit
|
|
|
|
floater
|
|
|
|
|
|
The new behavior is that it will flush when either the pending batch has grown
to the specified size, or the time interval has expired.
|
|
|
|
For some reason there wasn't an entry in indra/llcommon/CMakeLists.txt to run
the tests in indra/llcommon/tests/lleventfilter_test.cpp. It seems likely that
at some point it existed, since all previous tests built and ran successfully.
In any case, (re-)add lleventfilter_test.cpp to the set of llcommon tests.
Also alphabetize them to make it easier to find a particular test invocation.
Also add new tests for LLEventThrottle.
To support this, refactor the concrete LLEventThrottle class into
LLEventThrottleBase containing all the tricky logic, with pure virtual
methods for access to LLTimer and LLEventTimeout, and an LLEventThrottle
subclass containing the LLTimer and LLEventTimeout instances and corresponding
implementations of the new pure virtual methods.
That permits us to introduce TestEventThrottle, an alternate subclass with
dummy implementations of the methods related to LLTimer and LLEventTimeout. In
particular, we can explicitly advance simulated realtime to simulate
particular LLTimer and LLEventTimeout behaviors.
Finally, introduce Concat, a test LLEventPump listener class whose function is
to concatenate received string event data into a composite string so we can
readily test for particular sequences of events.
|
|
Drake points out that the OS X 64-bit-capable memory-query APIs recommended in
comments by some long-ago maintainer are by now themselves obsolete. He
offered this patch to update us to current macOS memory APIs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For the time being we're still compiling for production with C++03. Although
assigning an initializer list to a vector is valid C++11, in C++03 mode clang
rejects it.
|
|
|
|
LLInstanceTracker<T> performs validation in ~LLInstanceTracker(). Normally
validation failure logs an error and terminates the program, which is fine. In
the test executable, though, we want validation failure to throw an exception
instead so we can catch it and continue testing other failure conditions. But
since destructors in C++11 are implicitly noexcept(true), that exception never
made it out of ~LLInstanceTracker(): it crashed the test program instead.
Declaring ~LLInstanceTracker() noexcept(false) solves that, allowing the test
program to catch the exception and continue.
However, if we unconditionally declare that, then every destructor anywhere in
the inheritance hierarchy for any LLInstanceTracker subclass must also be
noexcept(false)! That's way too pervasive, especially for functionality we
only need (or want) in a specific test executable.
Instead, make the CMake macros LL_ADD_PROJECT_UNIT_TESTS() and
LL_ADD_INTEGRATION_TEST() -- with which we define all viewer build-time tests
-- define two new command-line macros: LL_TEST=testname and LL_TEST_testname.
That way, preprocessor logic in a header file can detect whether it's being
compiled for production code or for a test executable.
(While at it, encapsulate in a new GET_OPT_SOURCE_FILE_PROPERTY() CMake macro
an ugly repetitive pattern. The builtin GET_SOURCE_FILE_PROPERTY() sets the
target variable to "NOTFOUND" -- rather than an empty string -- if the
specified property wasn't set. Every call to GET_SOURCE_FILE_PROPERTY() in
LL_ADD_PROJECT_UNIT_TESTS() was followed by a test for NOTFOUND and an
assignment to "". Wrap all that in a macro whose 'unset' value is "".)
Now llinstancetracker.h can detect when we're building the LLInstanceTracker
unit test executable, and *only then* declare ~LLInstanceTracker() as
noexcept(false). We #define LLINSTANCETRACKER_DTOR_NOEXCEPT to expand either
empty or noexcept(false), also detecting clang in C++11 mode. (It all works
fine without noexcept(false) until we turn on C++11 mode.)
We also use that macro for the StatBase class in lltrace.h. Turns out some of
the infrastructure headers required for tests in general, including the
LLInstanceTracker test, use LLInstanceTracker. Fortunately that appears to be
the only other class we must annotate this way for the LLInstanceTracker tests.
|
|
|
|
Expand the way we set C++ flags in cmake to call out each build type explicitly
Approved-by: nat_linden <nat@lindenlab.com>
|