Age | Commit message (Collapse) | Author |
|
|
|
|
|
Over the years we've skipped more and more of the tests in
llhttpclient_test.cpp (nee llhttpclient_tut.cpp) because they've relied on
particular behaviors from Internet sites not under our control.
We skipped a test that fetches llsd+xml from secondlife.com because
"secondlife.com is not reliable enough for unit tests."
We skipped a test that tries to observe a failure with "http://www.invalid"
because some local ISPs turn "no such domain" DNS errors into valid pages
offering the requester to buy the specified domain name.
Today we've had to skip tests attempting to contact "http://www.google.com"
for reasons we haven't yet diagnosed, but that probably have to do with
Google's IPv6 rollout.
Use local temp server test_llsdmessage_peer.py as the success destination,
eliminating DNS, Internet access and remote server behavior as failure modes.
Use idle localhost port for failure test.
Re-enable all skipped LLHTTPClient tests!
Re-enable on Windows!
In support of these tests, modify test_llsdmessage_peer.py:
Support HEAD as no-data variant of GET.
Change GET result dict to avoid resembling an error response -- confusing.
Make GET/POST return actual dict rather than undecorated string "success".
Because of that last, change llcapabilitylistener_test.cpp and
llsdmessage_test.cpp to extract "reply" key from response rather than
expecting response to be a string itself.
|
|
indra/test/llhttpclient_tut.cpp ==> indra/llmessage/tests/llhttpclient_test.cpp,
with corresponding CMakeLists.txt changes in their respective directories.
This first commit merely moves the test source file without changing it --
separating out moves from edits simplifies code review.
|
|
|
|
the logs when passing
WOLF-363: (partial) correct ordering of cleaning build dir vs running
'autobuild install'
|
|
In the course of re-enabling the indra/test tests last year, Log generalized a
workaround I'd introduced in llsdmessage_test.cpp. In Linux viewer land, a
test program trying to catch an expected exception can't seem to catch it by
its specific class (across the libllcommon.so boundary), but must instead
catch std::runtime_error and validate the typeid().name() string. Log added a
macro for this idiom in llevents_tut.cpp. Generalize that macro further for
normal-case processing as well, move it to a header file of its own and use it
in all known places -- plus the new exception-catching tests in
llprocess_test.cpp.
|
|
Turns out that BaseHTTPServer.HTTPServer turns on that flag by default, which
causes freeport() to fail (on Windows only?), happily instantiating multiple
servers on the same port. Change known instances, fix freeport() docstring to
highlight the issue. Add freeport() unit tests to verify expected behavior.
|
|
Make testrunner.py module interpret $INTEGRATION_TEST_VERBOSE environment
variable, setting module global VERBOSE. Enable/disable debug() output based
on that variable, defaulting to VERBOSE True. Add debug() output to
freeport(), including reporting exceptions.
Add debug() output to test_llsdmessage_peer.py, including normal
BaseHTTPRequestHandler output: when VERBOSE is set, don't suppress
log_request() or log_error() output.
Add C++ verbose() function to query $INTEGRATION_TEST_VERBOSE, broken out as
two functions so we only have to interpret the value once. Default to 'true'.
Move C++ commtest_data::getport(variable) function to global namespace, broken
out as two functions to cache the value. Report value received when verbose()
returns true.
|
|
|
|
In indra/llmessage/tests/testrunner.py, introduce new freeport() function to
try a caller-specified expression (such as instantiating an object that will
listen on a server port) with a range of candidate port numbers until the
expression produces a value instead of EADDRINUSE exception.
Change test_llsdmessage_peer.py and test_llxmlrpc_peer.py to use freeport() to
construct their server class inline BEFORE launching the thread that will run
it, then pass that server's serve_forever method to daemon thread. Also set
os.environ["PORT"] to selected environment variable before running subject
test program.
In indra/llmessage/tests/commtest.h, introduce commtest_data::getport() to
read port number from specified environment variable, throwing exception if
variable not set or non-numeric. Construct default LLHost from getport("PORT")
instead of hardcoded constant.
Change indra/newview/tests/llxmlrpclistener_test.cpp to use commtest_data::
getport("PORT") instead of hardcoded constant. Also use LLSD::with() rather
than older LLSD::insert() syntax.
HOWEVER -- I am irritated to discover that llxmlrpclistener_test IS NOT RUN or
even built by newview/CMakeLists.txt! It's not even commented out -- it's
entirely deleted! I am determined to restore this test. However, as it will
take some fiddling with new link-time dependencies, that will be a separate
commit.
|
|
|
|
|
|
lookup test as linux.org was not being resolved as expected
|
|
|
|
|
|
|
|
|
|
|
|
|
|
failing in opensource environment
|
|
|
|
|
|
/Users/Aimee/Documents/Work/Linden-Lab/Development/viewer/convert/viewer-identity-evolution
|
|
|
|
docs to remove that naming schema
|
|
|
|
We have no C++ libraries for parsing RFC 1123 dates, so parsing "Expires"
headers is risky. max-age delta-seconds is easier to parse and equivalent
for this use. Also added unit tests for max-age parsing. Pair-programmed
with Huseby.
|
|
|
|
|
|
|
|
|
|
It looks as though someone tried to reactivate the skip()ped test by replacing
"google.com" with "linux.org" and deleting the skip() call. Unfortunately the
edit went wrong: the instance of "google.com" in the skip() call was replaced,
and the line declaring hostStr = "google.com" was deleted. Removing the local
hostStr variable broke the compile. (Possible merge glitch?)
On the above assumption, I commented out the skip() call, reinstated the
hostStr declaration and replaced "google.com" with "linux.org" therein.
|
|
|
|
https://svn.aws.productengine.com/secondlife/pe/stable-2 into P:\svn\viewer-2.0.0-3, respecting ancestry
* Bugs: EXT-1752 EXT-1754
|
|
|
|
|
|
|
|
|
|
|
|
integration test.
|
|
|
|
|
|
|
|
|
|
|
|
* 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
|
|
This required a bit of refactoring of LLMediaDataClient:
- Created LLMediaDataClientObject ABC, which now has a
concrete impl in LLVOVolume
- Created unit test with 6 tests (for now), testing
- LLObjectMediaDataClient::fetchMedia()
- LLObjectMediaDataClient::updateMedia()
- LLObjectMediaNavigateClient::navigate()
- queue ordering
- retries
- nav bounce back
- Also ensures that ref counting works properly (this is important, because
ownership is tricky with smart pointers put into queues, peeled off
into timers that fire and auto destruct, and HTTP responders that also
auto-destruct)
- Had to fix LLCurl::Responder's stub, which was not initializing
the ref count to 0, causing the ref counting tests to fail
(boy, that was hard to find!).
Reviewed by Callum
|
|
|
|
|