phoenix-firestorm/indra/llcommon/tests
Nat Goodspeed 71ec081dbf DRTVWR-476: Infrastructure to help manage long-lived coroutines.
Introduce LLCoros::Stop exception, with subclasses Stopping, Stopped and
Shutdown. Add LLCoros::checkStop(), intended to be called periodically by any
coroutine with nontrivial lifespan. It checks the LLApp status and, unless
isRunning(), throws one of these new exceptions.

Make LLCoros::toplevel() catch Stop specially and log forcible coroutine
termination.

Now that LLApp status matters even in a test program, introduce a trivial
LLTestApp subclass whose sole function is to make isRunning() true.
(LLApp::setStatus() is protected: only a subclass can call it.) Add LLTestApp
instances to lleventcoro_test.cpp and lllogin_test.cpp.

Make LLCoros::toplevel() accept parameters by value rather than by const
reference so we can continue using them even after context switches.

Make private LLCoros::get_CoroData() static. Given that we've observed some
coroutines living past LLCoros destruction, making the caller call
LLCoros::instance() is more dangerous than encapsulating it within a static
method -- since the encapsulated call can check LLCoros::wasDeleted() first
and do something reasonable instead. This also eliminates the need for both a
const and non-const overload.

Defend LLCoros::delete_CoroData() (cleanup function for fiber_specific_ptr for
CoroData, implicitly called after coroutine termination) against calls after
~LLCoros().

Add a status string to coroutine-local data, with LLCoro::setStatus(),
getStatus() and RAII class TempStatus.

Add an optional 'when' string argument to LLCoros::printActiveCoroutines().
Make ~LLCoros() print the coroutines still active at destruction.
2019-10-22 16:49:29 -04:00
..
StringVec.h remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
bitpack_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
commonmisc_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
listener.h Add LLEventThrottle tests; actually *all* lleventfilter.cpp tests. 2017-05-10 15:04:18 -04:00
llallocator_heap_profile_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llallocator_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llbase64_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llcond_test.cpp DRTVWR-476: Add basic tests for LLCond. 2019-07-18 17:32:08 +02:00
lldate_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
lldeadmantimer_test.cpp merge with release 2014-02-24 18:45:59 -08:00
lldependencies_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llerror_test.cpp DRTVWR-447: Move test<5> and writeMsgNeedsEscaping() into sequence. 2018-10-17 16:42:59 -04:00
lleventcoro_test.cpp DRTVWR-476: Infrastructure to help manage long-lived coroutines. 2019-10-22 16:49:29 -04:00
lleventdispatcher_test.cpp [DRTVWR-476] - fix compiler errors 32 bit windows build 2019-06-10 15:56:44 -07:00
lleventfilter_test.cpp DRTVWR-476: Add LLEventLogProxy, LLEventLogProxyFor<T>. 2019-10-16 09:15:47 -04:00
llexception_test.cpp MAINT-5011: Add llexception_test.cpp with tests (and conclusions). 2016-08-17 10:45:06 -04:00
llframetimer_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llheteromap_test.cpp MAINT-5232: Ensure custom operator<<() overload is visible to TUT. 2016-10-13 07:11:18 -04:00
llinstancetracker_test.cpp [DRTVWR-476] - temporary skip failing llinstancetracker tests to get TC build working 2019-06-05 01:31:30 -07:00
lllazy_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llleap_test.cpp SL-10153: Review and rationalize fetching paths from environment. 2018-12-14 15:38:13 -05:00
llmemtype_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llpounceable_test.cpp MAINT-5232: Make LLPounceable noncopyable. 2015-05-29 16:37:15 -04:00
llprocess_test.cpp DRTVWR-476: Improve llprocess_test.cpp diagnostic output. 2019-09-10 17:21:34 -04:00
llprocessor_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llprocinfo_test.cpp SH-4153 Port user and system cpu accounting from example program. 2013-05-02 15:43:58 +00:00
llrand_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llsdserialize_test.cpp SL-10153: Review and rationalize fetching paths from environment. 2018-12-14 15:38:13 -05:00
llsingleton_test.cpp MAINT-5232: Normalize LLSingleton subclasses. 2016-09-15 20:18:12 -04:00
llstreamqueue_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llstring_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
lltrace_test.cpp fixed things so that trace recordings can be read from even while active 2013-10-21 14:22:21 -07:00
lltreeiterators_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llunits_test.cpp fixed bad logic in unit test 2013-08-27 18:59:32 -07:00
lluri_test.cpp SL-10954 Unit test escapePathAndData 2019-05-07 20:36:19 +03:00
stringize_test.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
wrapllerrs.h SL-821: Add WSTRINGIZE() and DEWSTRINGIZE() macros for wide strings. 2018-05-17 05:45:36 -04:00