summaryrefslogtreecommitdiff
path: root/indra/llcommon/tests
AgeCommit message (Collapse)Author
2011-02-05Introduce zipmap() function and use it in place of frequent loops.Nat Goodspeed
One operation we often use is to take an LLSD array of param names, a corresponding LLSD array of values, and create from them a name=value LLSD map. Instead of doing that "by hand" every time, use a function.
2011-02-05Make array-funcs success test exercise args-array-too-long case too.Nat Goodspeed
Streamline a bit more redundancy from the code in that test.
2011-02-05Consolidate paramsa, paramsb, et al., into ["a"], ["b"] arrays.Nat Goodspeed
Following the C++ convention of having two distinct somethigna, somethingb names, initially we introduced paramsa, paramsb LLSD arrays, following that convention all the way down the line. This led to two distinct loops every time we wanted to walk both arrays, since we didn't want to assume that they were both the same size. But leveraging the fact that distinct LLSD arrays stored in the same LLSD container can in fact be of different lengths, refactored all the pairs of vars into top-level LLSD maps keyed by ["a"] and ["b"]. That lets us perform nested loops rather than duplicating the logic, making test code much less messy.
2011-02-05Fix Vars::cp dangling-pointer problem.Nat Goodspeed
Naively storing a const char* param in a const char* data member ignores the fact that once the caller's done, the string data referenced by that pointer will probably be freed. Store the referenced string in a std::string instead.
2011-02-05Add successful calls to array-style functions.Nat Goodspeed
2011-02-04Change FunctionsTriple refs to pointers to facilitate passing.Nat Goodspeed
A certain popular-but-dumb compiler seems to think that initializing a std::vector from a pair of iterators requires assignment. A struct containing a reference cannot be assigned. Pointers get us past this issue.
2011-02-04Move FunctionsTriple data to function returning vector<same>.Nat Goodspeed
We want to break out a couple different test methods that both need the same data. While we could define a std::vector<FunctionsTriple> in the lleventdispatcher_data class and initialize it using a classic {} initializer as in array_funcs(), using a separate function puts it closer to the tests consuming that data, and helps reduce clutter in the central data class. Either way, it's cool that BOOST_FOREACH() handles the gory details of iterating over a std::vector vs. a classic-C array.
2011-02-03BOOST_FOREACH(LLSD) helpers more readable with 'using namespace'.Nat Goodspeed
2011-02-03Introduce BOOST_FOREACH() helpers for LLSD in llsdutil.h.Nat Goodspeed
You can't directly write: BOOST_FOREACH(LLSD item, someLLSDarray) { ... } because LLSD has two distinct iteration mechanisms, one for arrays and one for maps, neither using the standard [const_]iterator typedefs or begin()/end() methods. But with these helpers, you can write: BOOST_FOREACH(LLSD item, llsd::inArray(someLLSDarray)) { ... } or BOOST_FOREACH(const llsd::MapEntry& pair, llsd::inMap(someLLSDmap)) { ... } These are in namespace llsd instead of being (e.g.) llsd_inMap because with a namespace at least your .cpp file can have a local 'using': using namespace llsd; BOOST_FOREACH(LLSD item, inArray(someLLSDarray)) { ... } It's namespace llsd rather than LLSD because LLSD can't be both a namespace and a class name.
2011-02-03Add test to call array-style functions with too-short array.Nat Goodspeed
Also, finally got sick of hand-writing the official iterator-loop idiom and dragged in BOOST_FOREACH(). Because LLSD has two completely different iteration styles, added inArray and inMap helper classes to be able to write: BOOST_FOREACH(LLSD item, inArray(someArray)) { ... }
2011-02-02Add test to call no-args functions using (map | array)-style callsNat Goodspeed
2011-02-02Add test to exercise map/array args mismatch validation.Nat Goodspeed
2011-02-02First few LLEventDispatcher call cases: try_call(), call CallablesNat Goodspeed
2011-02-01Replace ad-hoc test functions/methods with systematic enumeration.Nat Goodspeed
Previous tests involved a small handful of functions with only a couple different parameter types. Now we exhaustively invoke every registration case, plus every metadata query case. Call cases still pending.
2011-01-28Extend LLEventAPI to directly call other functions & methods.Nat Goodspeed
Until now, LLEventAPI has only been able to register functions specifically accepting(const LLSD&). Typically you add a wrapper method to your LLEventAPI subclass, register that, have it extract desired params from the incoming LLSD and then call the actual function of interest. With help from Alain, added new LLEventAPI::add() methods capable of registering functions/methods with arbitrary parameter signatures. The code uses boost::fusion magic to implicitly match incoming LLSD arguments to the function's formal parameter list, bypassing the need for an explicit helper method. New add() methods caused an ambiguity with a previous convenience overload. Removed that overload and fixed the one existing usage. Replaced LLEventDispatcher::get() with try_call() -- it's no longer easy to return a Callable for caller to call directly. But the one known use of that feature simply used it to avoid fatal LL_ERRS on unknown function-name string, hence the try_call() approach actually addresses that case more directly. Added indra/common/lleventdispatcher_test.cpp to exercise new functionality.
2010-08-24standardizing test suite names as class name under testAaron Terrell (Enus)
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2010-06-07Automated merge with ssh://hg.lindenlab.com/dessie/viewer-releaseMark Palange (Mani)
2010-06-04Fix a long-suffering logging unit test failure, re-enable the test.Tofu Linden
This makes logs look less scary on Linux, in-line with other platforms.
2010-06-02EXT-3780 FIX Fixed CPU MHz to be MHz on all platforms.palange@pdp47.lindenlab.com
2010-06-01Added eol-at-eofMark Palange (Mani)
2010-06-01EXT-3780 FIX Added llprocessor regression testMark Palange (Mani)
2010-02-06EXT-5055 LLInstanceTracker promotes some dangerous patterns - detect themTofu Linden
2009-12-03Skip logging test that fails on Linux, no idea whyNat Goodspeed
2009-11-12DEV-42747 - lltreeiterators_test.cpp broken on Windowsrichard
reviewed by Nat
2009-11-10Enhance LLInstanceTracker variants to be more uniform.Nat Goodspeed
For both the (so far unused) generic KEY form and the KEY = T* form, provide key_iter, beginKeys(), endKeys(). Change instance_iter so that when dereferenced, it gives you a T& rather than a T*, to be more harmonious with a typical STL container. (You parameterize LLInstanceTracker with T, not with T*.) Fix existing usage in llfasttimer.cpp and lltimer.cpp to agree. For the KEY = T* specialization, add T* getInstance(T*) so client isn't forced to know which variant was used. Add unit tests for uniformity of public operations on both variants.
2009-10-20Automated merge with ssh://hg.lindenlab.com/viewer/viewer-2-0/Nat Goodspeed
2009-10-20Don't include linden_common.h in lldate.h, or any other .h files.Nat Goodspeed
Migrate to the .cpp files where it's needed.
2009-10-19mergeSteve Bennetts
2009-10-16merge from latest svn/viewer-2-0 to hg/viewer-2-0Mark Palange (Mani)
2009-10-16DEV-41408 convert lldependencies tut test to llcommon integration test.Adam Moss
2009-10-16DEV-41080 more automated testing love - minor comment fixing.Adam Moss
2009-10-16DEV-41403 convert reflection tut test to llcommon integration test.Adam Moss
2009-10-16DEV-41402 convert stringize tut test to llcommon integration test.Adam Moss
2009-10-15DEV-41367 resurrect dead bitpack test, convert it to a llcommon integration ↵Adam Moss
test.
2009-10-15DEV-41366 convert monolithic llbase64 test into a llcommon integration test.Adam Moss
2009-10-15DEV-41354 #includes tidyup.Adam Moss
2009-10-15DEV-41354 convert llerror tut test into a llcommon integration testAdam Moss
2009-10-15DEV-41352 convert lluri tut test to a llcommon integration testAdam Moss
2009-10-15DEV-41344 convert monolithic tut lltreeiterators test to a llcommon ↵Adam Moss
integration test.
2009-10-15DEV-41341 tut lltiming test -> llframetimer integration testAdam Moss
2009-10-12DEV-41178 convert lldate legacy monolithic tut test into a llcommon ↵Adam Moss
integration test.
2009-10-12DEV-41175 convert legacy common.cpp tut test into llcommon integration test.Adam Moss
2009-10-12DEV-41174 more automated testing loveAdam Moss
* turn llnamevalue_tut into a llmessage unit test * turn llsdserialize_tut into a llcommon integration test * re-enable the (quite slow) llsdserialize test on win32 now that it doesn't have to run on every recompile * re-enable all llmessage unit tests on linux viewer builds
2009-10-08DEV-41080 expand the test case for LLStringUtil::containsNonprintable()Adam Moss
2009-10-08DEV-41081 - better than using the msvc kludge for suppressing warnings about ↵Adam Moss
memcpy, don't actually use memcpy - use our own safe 'copy' method. also stripNonprintable() is probably a little faster now...
2009-10-08suppress win32 warning about strcpy. yuck.Adam Moss
2009-10-08DEV-41090 convert legacy llrand tut test into a llcommon integration test.Adam Moss
2009-10-08Extend automated string tests to cover the formerly-crashing "[]" ↵Adam Moss
substitution case (EXT-1282, DEV-41081) Also 'fix' string tests to match the new expected behaviour of LLStringUtil::format(). They must have been failing dreadfully before, but the legacy tut tests aren't run in a viewer-only build, so...
2009-10-08DEV-41081 turn llstring_tut into a real llcommon unit (well, integration :() ↵Adam Moss
test.