<feed xmlns='http://www.w3.org/2005/Atom'>
<title>viewer.git/indra/llcorehttp/tests/test_httpoperation.hpp, branch 26.1.1</title>
<subtitle>Megapahit's fork of the Second Life viewer.
</subtitle>
<id>https://www.megapahit.org/viewer.git/atom?h=26.1.1</id>
<link rel='self' href='https://www.megapahit.org/viewer.git/atom?h=26.1.1'/>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/'/>
<updated>2024-09-09T10:02:34Z</updated>
<entry>
<title>Changes towards C++20 compatibility (#2520)</title>
<updated>2024-09-09T10:02:34Z</updated>
<author>
<name>Ansariel Hiller</name>
<email>Ansariel@users.noreply.github.com</email>
</author>
<published>2024-09-09T10:02:34Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=d91d39fa0f7f4f204d6fb7ff66b9817e498dbd61'/>
<id>urn:sha1:d91d39fa0f7f4f204d6fb7ff66b9817e498dbd61</id>
<content type='text'>
</content>
</entry>
<entry>
<title>#824 Process source files in bulk: replace tabs with spaces, convert CRLF to LF, and trim trailing whitespaces as needed</title>
<updated>2024-04-29T04:56:09Z</updated>
<author>
<name>Andrey Lihatskiy</name>
<email>alihatskiy@productengine.com</email>
</author>
<published>2024-04-29T04:43:28Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=1b68f71348ecf3983b76b40d7940da8377f049b7'/>
<id>urn:sha1:1b68f71348ecf3983b76b40d7940da8377f049b7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>DRTVWR-476: Remove special llcorehttp test memory manager.</title>
<updated>2020-03-25T22:44:04Z</updated>
<author>
<name>Nat Goodspeed</name>
<email>nat@lindenlab.com</email>
</author>
<published>2019-06-27T14:57:34Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=2902f23a4193d93c2e96daa45587a8c597c0a831'/>
<id>urn:sha1:2902f23a4193d93c2e96daa45587a8c597c0a831</id>
<content type='text'>
NickyD discovered that the substitute default allocator used for llcorehttp
tests was returning badly-aligned storage, which caused access violations on
alignment-sensitive data such as std::atomic. Thanks Nicky!!

Moreover, the llcorehttp test assertions regarding memory usage, well-
intentioned though they are, have been causing us trouble for years. Many have
already been disabled.

The problem is that use of test_allocator.h affected *everything* defined with
that header file's declarations visible. That inevitably included specific
functions in other subsystems. Those functions then (unintentionally) consumed
the special allocator, throwing off the memory tracking and making certain
memory-related assertions consistently fail.

This is a particular, observable bad effect of One Definition Rule violations.
Within a given program, C++ allows multiple definitions for the same entity,
but requires that all such definitions be the same. Partial visibility of the
global operator new() and operator delete() overrides meant that some
definitions of certain entities used the default global allocator, some used
llcorehttp's. There may have been other, more subtle bad effects of these ODR
violations.

If one wanted to reimplement verification of the memory consumption of
llcorehttp classes:

* Each llcorehttp class (for which memory tracking was desired) should declare
  class-specific operator new() and operator delete() methods. Naturally,
  these would all consume a central llcorehttp-specific allocator, but that
  allocator should *not* be named global operator new().
* Presumably that would require runtime indirection to allow using the default
  allocator in production while substituting the special allocator for tests.
* Recording and verifying the memory consumption in each test should be
  performed in the test-object constructor and destructor, rather than being
  sprinkled throughout the test&lt;n&gt;() methods.
* With that mechanism in place, the test object should provide methods to
  adjust (or entirely disable) memory verification for a particular test.
* The test object should also provide a "yes, we're still consuming llcorehttp
  memory" method to be used for spot checks in the middle of tests -- instead
  of sprinkling in explicit comparisons as before.
* In fact, the llcorehttp test object in each test_*.hpp file should be
  derived from a central llcorehttp test-object base class providing those
  methods.
</content>
</entry>
<entry>
<title>merge with 4.0.3-release</title>
<updated>2016-04-04T19:53:09Z</updated>
<author>
<name>Oz Linden</name>
<email>oz@lindenlab.com</email>
</author>
<published>2016-04-04T19:53:09Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=9be58e915a6c69de280ccabd3019e9ac40beed26'/>
<id>urn:sha1:9be58e915a6c69de280ccabd3019e9ac40beed26</id>
<content type='text'>
</content>
</entry>
<entry>
<title>remove execute permission from many files that should not have it</title>
<updated>2015-11-10T14:48:56Z</updated>
<author>
<name>Oz Linden</name>
<email>oz@lindenlab.com</email>
</author>
<published>2015-11-10T14:48:56Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=c8726aba303bcf1207b730a344536e25491420bc'/>
<id>urn:sha1:c8726aba303bcf1207b730a344536e25491420bc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MAINT-5271: Converted internal pointers to internal operation to managed shared pointers. Removed direct cast and dereference of handles.</title>
<updated>2015-10-16T18:40:48Z</updated>
<author>
<name>Rider Linden</name>
<email>rider@lindenlab.com</email>
</author>
<published>2015-10-16T18:40:48Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=8d334ca1bf51dc1a0020f53cdd7a3927bdb7740c'/>
<id>urn:sha1:8d334ca1bf51dc1a0020f53cdd7a3927bdb7740c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MAINT-5732: Update unit tests</title>
<updated>2015-10-15T18:03:13Z</updated>
<author>
<name>Rider Linden</name>
<email>rider@lindenlab.com</email>
</author>
<published>2015-10-15T18:03:13Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=b30e408a42a95d68dd7d32e4391b59d108d086c4'/>
<id>urn:sha1:b30e408a42a95d68dd7d32e4391b59d108d086c4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update Mac and Windows breakpad builds to latest</title>
<updated>2013-03-29T14:50:08Z</updated>
<author>
<name>Graham Madarasz</name>
<email>graham@lindenlab.com</email>
</author>
<published>2013-03-29T14:50:08Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=bf6182daa8b4d7cea79310547f71d7a3155e17b0'/>
<id>urn:sha1:bf6182daa8b4d7cea79310547f71d7a3155e17b0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>HTTP Proxy, PUT &amp; POST, unit tests and refactoring.</title>
<updated>2012-06-12T21:42:33Z</updated>
<author>
<name>Monty Brandenberg</name>
<email>monty@lindenlab.com</email>
</author>
<published>2012-06-12T21:42:33Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=7adeb3923728ca84a309a6af141c148ce38066fc'/>
<id>urn:sha1:7adeb3923728ca84a309a6af141c148ce38066fc</id>
<content type='text'>
Implemented/modified PUT &amp; POST to not used chunked encoding for the request.
Made the unit test much happier and probably a better thing for the pipeline.
Have a cheesy static &amp; dynamic proxy capability using both local options and
a way to wire into LLProxy in llmessages.  Not a clean thing but it will get
the proxy path working with both socks5 &amp; http proxies.  Refactoring to get
rid of unneeded library handler and unified an HttpStatus return for all
requests.  Big batch of code removed as a result of that and more is possible
as well as some syscall avoidance with a bit more work.  Boosted the unit
tests for simple PUT &amp; POST test which revealed the test harness does *not*
like chunked encoding so we'll avoid it for now (and don't really need it
in any of our schemes).
</content>
</entry>
<entry>
<title>Build llcorehttp as part of a viewer dependency with unit tests.  This required</title>
<updated>2012-05-07T19:16:31Z</updated>
<author>
<name>Monty Brandenberg</name>
<email>monty@lindenlab.com</email>
</author>
<published>2012-05-07T19:16:31Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=74d59e7128bb02a4b49af99e44f437a736a3f62b'/>
<id>urn:sha1:74d59e7128bb02a4b49af99e44f437a736a3f62b</id>
<content type='text'>
boost::thread and the easiest path to that was to go with the 1.48 Boost release
in the 3P tree (eliminating a fork for a modified 1.45 packaging).  One unit test,
the most important one, is failing in test_httprequest but that can be attended
to later.  This test issues a GET to http://localhost:2/ and that is hitting the
wire but the libcurl plumbing isn't delivering the failure, only the eventual
timeout.  An unexpected change in behavior.
</content>
</entry>
</feed>
