Commit Graph

85 Commits (ec00f7f14fbf16992b71ddd54e583ba07fdfd523)

Author SHA1 Message Date
Brad Payne (Vir Linden) a04a706c1b merge 2013-05-21 16:18:48 -04:00
Oz Linden ddd5659f81 merge changes for DRTVWR-294 2013-04-19 10:11:29 -04:00
Don Kjer beeefb4526 Renaming HTTP_HEADER_* into HTTP_IN_HEADER_* and HTTP_OUT_HEADER_* to make it more clear which header strings should be used for incoming vs outgoing situations.
Using constants for commonly used llhttpnode context strings.
2013-04-04 21:50:45 +00:00
Brad Payne (Vir Linden) 7c37af37d4 merge 2013-04-03 11:28:00 -04:00
Nyx Linden 7ea7b236d8 BUILDFIX commit policy fixes 2013-04-02 18:32:57 -04:00
Graham Madarasz bf6182daa8 Update Mac and Windows breakpad builds to latest 2013-03-29 07:50:08 -07:00
Don Kjer f945415210 Large changes to the LLCurl::Responder API, as well as pulling in some changes to common libraries from the server codebase:
* Additional error checking in http handlers.
* Uniform log spam for http errors.
* Switch to using constants for http heads and status codes.
* Fixed bugs in incorrectly checking if parsing LLSD xml resulted in an error.
* Reduced spam regarding LLSD parsing errors in the default completedRaw http handler.  It should not longer be necessary to short-circuit completedRaw to avoid spam.
* Ported over a few bug fixes from the server code.
* Switch mode http status codes to use S32 instead of U32.
* Ported LLSD::asStringRef from server code; avoids copying strings all over the place.
* Ported server change to LLSD::asBinary; this always returns a reference now instead of copying the entire binary blob.
* Ported server pretty notation format (and pretty binary format) to llsd serialization.

* The new LLCurl::Responder API no longer has two error handlers to choose from.  Overriding the following methods have been deprecated:
** error - use httpFailure
** errorWithContent - use httpFailure
** result - use httpSuccess
** completed - use httpCompleted
** completedHeader - no longer necessary; call getResponseHeaders() from a completion method to obtain these headers.

* In order to 'catch' a completed http request, override one of these methods:
** httpSuccess - Called for any 2xx status code.
** httpFailure - Called for any non-2xx status code.
** httpComplete - Called for all status codes.  Default implementation is to call either httpSuccess or httpFailure.
* It is recommended to keep these methods protected/private in order to avoid triggering of these methods without using a 'push' method (see below).

* Uniform error handling should followed whenever possible by calling a variant of this during httpFailure:
** llwarns << dumpResponse() << llendl;
* Be sure to include LOG_CLASS(your_class_name) in your class in order for the log entry to give more context.

* In order to 'push' a result into the responder, you should no longer call error, errorWithContent, result, or completed.
* Nor should you directly call httpSuccess/Failure/Completed (unless passing a message up to a parent class).
* Instead, you can set the internal content of a responder and trigger a corresponding method using the following methods:
** successResult - Sets results and calls httpSuccess
** failureResult - Sets results and calls httpFailure
** completedResult - Sets results and calls httpCompleted

* To obtain information about a the response from a reponder method, use the following getters:
** getStatus - HTTP status code
** getReason - Reason string
** getContent - Content (Parsed body LLSD)
** getResponseHeaders - Response Headers (LLSD map)
** getHTTPMethod - HTTP method of the request
** getURL - URL of the request

* It is still possible to override completeRaw if you want to manipulate data directly out of LLPumpIO.

* See indra/llmessage/llcurl.h for more information.
2013-03-13 06:26:25 +00:00
Nyx Linden 11fe124ae9 merging in viewer-beta.
Most of the merge was clean, a couple conflicts.
Brought over a couple patches manually for llpolymesh.
2013-01-24 16:22:49 -05:00
Nat Goodspeed 36f094d508 MAINT-2168: Backed out changeset fb93eecd462d, reapply fix
Now that we've backed out the premature push, reapply the actual fix to
propagate it appropriately.
2012-12-21 09:03:06 -05:00
Nat Goodspeed 144fcf62fb MAINT-2168: Backed out changeset 797318b62275, pushed to wrong repo
This changeset was prematurely pushed to the wrong repository. Back it out
to propagate it the right way.
2012-12-21 09:01:09 -05:00
Nat Goodspeed 747784a9b1 MAINT-2168: fail with real message if required var PORT not set.
llhttpclient_test.cpp is only supposed to be run by test_llsdmessage_peer.py,
as specified in llmessage/CMakeLists.txt. test_llsdmessage_peer.py sets the
environment variable PORT before running INTEGRATION_TEST_llhttpclient. While
it's not yet clear under what circumstances INTEGRATION_TEST_llhttpclient
could find PORT not set (getenv() returning NULL), it's obvious that in that
case, the previous code might well crash. Make it at least fail with an
explanatory message rather than a mysterious large negative integer. In
theory, occurrences of that message could help us solve the underlying issue.
2012-12-21 08:52:39 -05:00
prep e0432f98ee SH-3563. Pull and merge from viewer-development. Modest code changes to fix alignment issue in llAppearance. 2012-11-28 16:36:34 -05:00
Don Kjer 95f3fb45ae Cherry-picked windows build fixes from sunshine-experimental 2012-09-24 19:42:58 +00:00
Dave Parks 20e1f567d5 Fix for tests 2012-10-03 15:17:55 -05:00
William Todd Stinson a766e26db4 Backing out the changes contributing to DRTVWR-167 and DRTVWR-179 from the repository. 2012-09-10 10:37:02 -07:00
simon@Simon-PC.lindenlab.com 08c6c5b78d Added test back in, skip() call need to be removed. 2012-06-29 14:30:44 -07:00
Dave Parks db5d1b851a merge 2012-06-28 13:50:35 -05:00
Oz Linden 6abcd55b50 merge changes for DRTVWR-162 2012-06-08 11:41:10 -04:00
Nat Goodspeed ce563795e1 MAINT-1144: Merge llhttpclient_test.cpp fix back to tip 2012-06-07 05:47:50 -04:00
Nat Goodspeed d167ebe35f MAINT-1144: Try to fix Windows build error in llhttpclient_test.cpp. 2012-06-07 05:46:47 -04:00
Nat Goodspeed 89ea7ccfc7 Automated merge with file:///Users/nat/linden/viewer-maint-1144 2012-06-06 23:21:07 -04:00
Nat Goodspeed 3d1cb7ef11 MAINT-1144: Re-enable skipped LLHTTPClient tests with local server.
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.
2012-06-06 23:12:11 -04:00
Nat Goodspeed cd05a244da MAINT-1144: Break out llhttpclient_tut as standalone integration test.
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.
2012-06-06 19:57:58 -04:00
Oz Linden 1d01ad1162 merge changes for DRTVWR-151 2012-05-24 20:35:25 -04:00
Oz Linden 92ae8c8472 WOLF-318: change default verbosity of some unit tests to keep them out of the logs when passing
WOLF-363: (partial) correct ordering of cleaning build dir vs running
          'autobuild install'
2012-04-25 16:45:24 -04:00
Nat Goodspeed 10ab4adc86 Fix llprocess_test.cpp's exception catching for Linux.
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.
2012-02-15 13:44:43 -05:00
Nat Goodspeed 43616131dc CHOP-661: Fix HTTPServer usage to turn off allow_reuse_address.
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.
2011-07-07 22:21:59 -04:00
Nat Goodspeed 7e322d837f CHOP-661: Add information to try to zero in on remaining failures.
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.
2011-05-23 22:16:38 -04:00
Dave Parks 8a92612fd9 merge 2011-05-16 12:34:15 -05:00
Nat Goodspeed 8e8eb76eb9 CHOP-661: add and use code to listen on next available server port.
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.
2011-05-10 08:21:21 -04:00
Loren Shih 47781184fc Automated merge up from viewer-development into mesh-development 2011-04-04 10:42:52 -04:00
Loren Shih dc3823b629 Automated merge up from viewer-development into mesh-development 2011-02-28 11:05:33 -05:00
Merov Linden 0a397313f5 Fix llhost integration test: replaced linux.org by lindenlab.com in the DNS lookup test as linux.org was not being resolved as expected 2011-02-25 15:32:58 -08:00
Oz Linden ed73c8bf63 pull latest changes from viewer-vs2010 2011-02-24 22:27:08 -05:00
Oz Linden 415b3ca1da Automated merge with ssh://bitbucket.org/jenn_linden/viewer-vs2010 2011-02-23 06:47:57 -05:00
Alain Linden 3e11fad96e update vstool to support vs2010. 2011-02-22 13:13:02 -08:00
Oz Linden d982fbfc06 change host reverse lookup test to use our own host (linux.org failed) 2011-02-21 07:19:24 -05:00
Loren Shih dfafbf9f12 Automated merge up from viewer-development into mesh-development 2011-02-18 10:23:08 -05:00
Merov Linden 896bc12a2b STORM-937 : Fix python scripts shebang line and license header for consistency 2011-02-09 15:23:07 -08:00
leyla_linden 1b366dfe72 SH-734 [REGRESSION] INTEGRATION_TEST_llsdmessage and _capabilitylistener failing in opensource environment 2011-02-01 15:34:00 -08:00
Aimee Linden cfbb639aa6 Standardize test name to match class name on LLAvatarNameCache 2010-09-04 19:37:58 +01:00
Aimee Linden e45b3c6884 Correct license on newly exported files to LGPL. 2010-09-04 19:35:27 +01:00
Aimee Linden ffae589843 Post-convert merge by convert_monolith.py from /Users/Aimee/Documents/Work/Linden-Lab/Development/viewer/convert/viewer-identity-evolution 2010-09-03 17:41:39 +01:00
Aaron Terrell (Enus) 48743cbd41 standardizing test suite names as class name under test 2010-08-24 23:41:47 -07:00
Aaron Terrell (Enus) 27e74d25a1 fixing test names for reporting purposes - removing ' test'. also, updated docs to remove that naming schema 2010-08-24 22:26:07 -07:00
Oz Linden 06b0d72efa Change license from GPL to LGPL (version 2.1) 2010-08-13 07:24:57 -04:00
James Cook c0257c7fff DEV-49633 fixed, use Cache-Control max-age for display name expiration
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.
2010-05-06 16:29:51 -07:00
Mark Palange (Mani) 0b450b6003 Changing viewer unit test licenses to viewergpl 2010-02-12 16:32:28 -08:00
Nat Goodspeed 3d463ec43e Work around Linux viewer test program catch failure 2009-12-03 13:51:44 -08:00
Steve Bennetts afe6350160 merge from texture-pipeline 2009-11-06 12:15:41 -08:00