summaryrefslogtreecommitdiff
path: root/indra/test
AgeCommit message (Collapse)Author
2012-01-17Any proper RAII class must either handle copying or be noncopyable.Nat Goodspeed
NamedTempFile makes no attempt to deal with copying, therefore make it noncopyable.
2012-01-17Make NamedTempFile::peep() a public member for debugging unit tests.Nat Goodspeed
2012-01-13Extract APR and temp-fixture-file helper code to indra/test.Nat Goodspeed
Specifically: Introduce ManageAPR class in indra/test/manageapr.h. This is useful for a simple test program without lots of static constructors. Extract NamedTempFile from llsdserialize_test.cpp to indra/test/ namedtempfile.h. Refactor to use APR file operations rather than platform- dependent APIs. Use NamedTempFile for llprocesslauncher_test.cpp.
2011-12-01Automated merge with http://hg.secondlife.com/viewer-developmentNat Goodspeed
2011-12-01LLSD-14: Move LLSD::(outstanding|allocation)Count() to free functions.Nat Goodspeed
Free functions can be unconditionally compiled into the .o file, but conditionally hidden in the header file. Static class methods don't have that flexibility: without a declaration in the header file, you can't compile a function definition in the .cpp file. That makes it awkward to use the same llcommon build for production and for unit tests. Why make the function declarations conditional at all? These are debugging functions. They break the abstraction, they peek under the covers. Production code should not use them. Making them conditional on an #ifdef symbol in the unit-test source file means the compiler would reject any use by production code. Put differently, it allows us to assert with confidence that only unit tests do use them. Put new free functions in (lowercase) llsd namespace so as not to clutter global namespace. Tweak the one known consumer (llsd_new_tut.cpp) accordingly.
2011-11-18Re-added some missing calls to apr_pool_destroy() that I failed to readd ↵Logan Dethrow
after the thread local storage rollback. Also added a call to LLProxy::cleanupClass() to prevent indra/test from segfaulting on exit.
2011-11-17LLSD-14: Add tests from Simon's server-trunk changeset 3852648182db.Nat Goodspeed
That changeset provides most of the changes previously checked in on this Jira (viewer changeset 22b293aae639). Bring over the code he added to llsd_new_tut.cpp as well.
2011-11-17LLSD-14: Bring over llsd.{h,cpp} enhancements from server-trunk.Nat Goodspeed
Because new enum values have been added to the LLSD type field, a few external switch statements must be adjusted to suppress fatal warnings, even though we never expect to encounter an LLSD instance containing any of the new values.
2011-10-20Fixed test build issues caused by merging. Still encountering pthread assert ↵Logan Dethrow
after running indra/test
2011-10-19Merged with viewer-development.Logan Dethrow
2011-10-12Removed one ugly const_cast, the other one is needed for the time being.Logan Dethrow
2011-10-05Changed the handling of the different naming of fpclassify on windows and ↵Logan Dethrow
Linux in llsd_new_tut.cpp to be more clean at Nat's recommendation.
2011-09-16Removed the bool version of the linux exception catching macro in ↵Logan Dethrow
llevents_tut.cpp.
2011-09-16Fixed linux exception catching macros in llevents_tut.cpp. All tests now ↵Logan Dethrow
pass on a lenny build machine.
2011-09-15Changed extra linux exception handling into a pair of macros.Logan Dethrow
2011-09-15Added extra exception catching code to llevents_tut.cpp to fix linux test ↵Logan Dethrow
failures.
2011-09-15Fixed CMakeLists.txt line ending.Logan Dethrow
2011-09-15Backed out changeset 19aa1a773410Logan Dethrow
2011-09-14Copied newer version of llevents_tut from server. Fixed line ending in ↵Logan Dethrow
CMakeLists.txt.
2011-09-13Always build indra/test, run if LL_TESTS is enabled. Removed python test run ↵Logan Dethrow
command since there are no python tests in the viewer.
2011-09-09Re-enabled llapp_tut.cpp test for testing. Copied llapp_tut.cpp from server ↵Logan Dethrow
directory. The commented line indicates threading breakage in the LLApp test, but I have not seen evidence of this so far while testing on linux.
2011-09-09Re-enabled and fixed llsd_new_tut.cpp by copying the fixed version from the ↵Logan Dethrow
server test directory.
2011-09-09Fixed llhttpclient_tut.cpp by initializing the LLCurl class during test setup.Logan Dethrow
2011-09-09Removed some spurious newlines that I introduced into CMakeLists.txt.Logan Dethrow
2011-09-09Fixed indra test dynamic library issues.Logan Dethrow
2011-06-29Got indra/test to build. Fails to run due to missing .so files.Logan Dethrow
2011-02-23MergeXiaohong Bao
2011-02-09STORM-937 : Fix python scripts shebang line and license header for consistencyMerov Linden
2011-02-05Introduces a LLThreadLocalData class that can beAleric Inglewood
accessed through the static LLThread::tldata(). Currently this object contains two (public) thread-local objects: a LLAPRRootPool and a LLVolatileAPRPool. The first is the general memory pool used by this thread (and this thread alone), while the second is intended for short lived memory allocations (needed for APR). The advantages of not mixing those two is that the latter is used most frequently, and as a result of it's nature can be destroyed and reconstructed on a "regular" basis. This patch adds LLAPRPool (completely replacing the old one), which is a wrapper around apr_pool_t* and has complete thread-safity checking. Whenever an apr call requires memory for some resource, a memory pool in the form of an LLAPRPool object can be created with the same life-time as this resource; assuring clean up of the memory no sooner, but also not much later than the life-time of the resource that needs the memory. Many, many function calls and constructors had the pool parameter simply removed (it is no longer the concern of the developer, if you don't write code that actually does an libapr call then you are no longer bothered with memory pools at all). However, I kept the notion of short-lived and long-lived allocations alive (see my remark in the jira here: https://jira.secondlife.com/browse/STORM-864?focusedCommentId=235356&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-235356 which requires that the LLAPRFile API needs to allow the user to specify how long they think a file will stay open. By choosing 'short_lived' as default for the constructor that immediately opens a file, the number of instances where this needs to be specified is drastically reduced however (obviously, any automatic LLAPRFile is short lived). *** Addressed Boroondas remarks in https://codereview.secondlife.com/r/99/ regarding (doxygen) comments. This patch effectively only changes comments. Includes some 'merge' stuff that ended up in llvocache.cpp (while starting as a bug fix, now only resulting in a cleanup). *** Added comment 'The use of apr_pool_t is OK here'. Added this comment on every line where apr_pool_t is correctly being used. This should make it easier to spot (future) errors where someone started to use apr_pool_t; you can just grep all sources for 'apr_pool_t' and immediately see where it's being used while LLAPRPool should have been used. Note that merging this patch is very easy: If there are no other uses of apr_pool_t in the code (one grep) and it compiles, then it will work. *** Second Merge (needed to remove 'delete mCreationMutex' from LLImageDecodeThread::~LLImageDecodeThread). *** Added back #include <apr_pools.h>. Apparently that is needed on libapr version 1.2.8., the version used by Linden Lab, for calls to apr_queue_*. This is a bug in libapr (we also include <apr_queue.h>, that is fixed in (at least) 1.3.7. Note that 1.2.8 is VERY old. Even 1.3.x is old. *** License fixes (GPL -> LGPL). And typo in comments. Addresses merov's comments on the review board. *** Added Merov's compile fixes for windows.
2010-12-16VWR-24251: Fix -DLL_TESTS:BOOL=ON on standalone when Tut is installed in a ↵Aleric Inglewood
non-standard directory. If tut/tut.hpp isn't installed in a standard include directory all tests fail because the found include directory for tut isn't passed to the compiler. This patch fixes this by passing it. Note that using include_directories() in a Find*.cmake file is bad practise. The correct way is to set an include dir variable and call include_directories() once. It certainly doesn't work for the tests anyway because the tests are all over the place and include_directories is on a per folder basis. What is needed is to set it for each (test) target. However, there is no TARGET_INCLUDE_DIRECTORIES. The closest thing that we have is to set the COMPILE_FLAGS property for a target. Fortunately, standalone is only used for linux, so we can just use -I${TUT_INCLUDE_DIR} to get the effect we want.
2010-08-25forcing all the teamcity service messages to be spat out at once per suite ↵Aaron Terrell (Enus)
to avoid incorrect TC reporting
2010-08-24seems that build out put sometimes concatenates and we miss a line in our ↵Aaron Terrell (Enus)
reporting parse, adding newlines at the beginning of each case out
2010-08-24commenting out object delete as windows builds are complaining: '[LogScan] ↵Aaron Terrell (Enus)
e:\w-enus_viewer-tut-teamcity\latest\indra\test\test.cpp(466) : error C2220: warning treated as error - no 'object' file generated [LogScan] e:\w-enus_viewer-tut-teamcity\latest\indra\test\test.cpp(466) : warning C4702: unreachable code'
2010-08-24subclassing is working, thanks to changes to the subclass constructor and ↵Aaron Terrell (Enus)
ridding it of member variables
2010-08-24clean commit of teamcity service message related changes of unit test ↵Aaron Terrell (Enus)
reporting into a clean repo
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2010-06-21Remove tab chars inherited with file...Nat Goodspeed
2010-06-18Centralize LD_LIBRARY_PATH logic with new SET_TEST_PATH macro.Nat Goodspeed
Add ${SHARED_LIB_STAGING_DIR_RELEASE} to LD_LIBRARY_PATH for executing tests: otherwise Debug-build tests can't find (e.g.) the aprutil DLL, for which we don't build/package a debug variant. Leverage discovery that a CMake macro can accept a target variable name argument for LL_TEST_COMMAND macro.
2010-03-08Fix breaking indra/test/llpermissions_tut.cpp tests.Nat Goodspeed
Certain tests of allowModifyBy(), allowCopyBy() and allowMoveBy() were computing a bit-shifted S32 value and testing that the method return value matched that specific bit. Whoever originally coded the test probably started with allowModifyBy() == TRUE, but observed that it didn't work. Instead of just testing for nonzero, in the spirit of BOOL, he then determined the specific BOOL value (typedef for 'int') returned by each test so he could still compare for equality. In other words, the tests were far too knowledgeable about the method implementation. At some point these methods were changed to return C++ standard 'bool' instead, so the internal bit-masking operations got mapped to 'true' and 'false' anyway, making it impossible for the original equality comparison to succeed. Fix tests accordingly. Use ensure_equals("msg", expr1, expr2) instead of ensure("msg", expr1 == expr2). On failure, the former will report the actual mismatched values. Remove other extraneous Microsoft-style "BOOL" usage (e.g. expr == TRUE).
2010-02-03Skip fragile (local ISP dependent) llhttpclient integration test.Nat Goodspeed
2009-12-03Resync indra/test's LD_LIBRARY_PATH with ADD_INTEGRATION_TESTNat Goodspeed
2009-12-03Reconcile llsdutil_tut.cpp with Kent's LLSD API changeNat Goodspeed
2009-11-30DEV-43463: Keep LLEventPump's LLStandardSignal alive during post()Nat Goodspeed
Replace LLEventPump's boost::scoped_ptr<LLStandardSignal> with boost::shared_ptr. Take a local stack copy of that shared_ptr in post() methods, and invoke the signal through that copy. This guards against scenario in which LLEventPump gets destroyed during signal invocation. (See Jira for details.) Re-enable Mani's test case that used to crash. Introduce ll_template_cast<> to allow a template function to recognize a parameter of a particular type. Introduce LLListenerWrapper mechanism to support wrapper objects for LLEventPump listeners. You instantiate an LLListenerWrapper subclass object inline in the listen() call (typically with llwrap<>), passing it the real listener, trusting it to forward the eventual call. Introduce prototypical LLCoutListener and LLLogListener subclasses for illustrative and diagnostic purposes. Test that LLLogListener doesn't block recognizing LLEventTrackable base class bound into wrapped listener.
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-41405 convert llxfer test to a llmessage integration test.Adam Moss
2009-10-16DEV-41404 convert monolithic tut llinventoryparcel test to llinventory ↵Adam Moss
integration test.
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