summaryrefslogtreecommitdiff
path: root/indra/llcorehttp
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2020-07-21 11:54:11 +0300
committerAndrey Lihatskiy <alihatskiy@productengine.com>2020-07-21 11:54:11 +0300
commitae48c7c8b353d44287db06c3ad52b9ccfcf1b4e4 (patch)
treed6e97f71afbc7e31e9e16f929cb6a6070318dffc /indra/llcorehttp
parentad3f7252229e476f6e85f7b5d274aa6ee362fce1 (diff)
parent72423372d6cd7f763a5567ad75752fa4e7131d60 (diff)
Merge branch 'master' into DRTVWR-513-maint
# Conflicts: # indra/llcommon/llerror.cpp # indra/newview/llappviewerwin32.cpp # indra/newview/llimprocessing.cpp # indra/newview/llviewerjoystick.cpp
Diffstat (limited to 'indra/llcorehttp')
-rw-r--r--indra/llcorehttp/CMakeLists.txt13
-rw-r--r--indra/llcorehttp/_httpreplyqueue.h1
-rw-r--r--indra/llcorehttp/examples/http_texture_load.cpp10
-rw-r--r--indra/llcorehttp/httpcommon.cpp4
-rw-r--r--indra/llcorehttp/httpcommon.h1
-rwxr-xr-xindra/llcorehttp/tests/llcorehttp_test.cpp17
-rw-r--r--indra/llcorehttp/tests/test_allocator.cpp18
-rw-r--r--indra/llcorehttp/tests/test_allocator.h13
-rw-r--r--indra/llcorehttp/tests/test_bufferarray.hpp52
-rw-r--r--indra/llcorehttp/tests/test_bufferstream.hpp52
-rw-r--r--indra/llcorehttp/tests/test_httpheaders.hpp40
-rw-r--r--indra/llcorehttp/tests/test_httpoperation.hpp26
-rw-r--r--indra/llcorehttp/tests/test_httprequest.hpp215
-rw-r--r--indra/llcorehttp/tests/test_httprequestqueue.hpp31
-rw-r--r--indra/llcorehttp/tests/test_refcounted.hpp37
15 files changed, 45 insertions, 485 deletions
diff --git a/indra/llcorehttp/CMakeLists.txt b/indra/llcorehttp/CMakeLists.txt
index 9dbc6f447e..11b2e3e929 100644
--- a/indra/llcorehttp/CMakeLists.txt
+++ b/indra/llcorehttp/CMakeLists.txt
@@ -101,12 +101,13 @@ target_link_libraries(
)
# tests
-if (LL_TESTS)
+set(LLCOREHTTP_TESTS ON CACHE BOOL
+ "Build and run llcorehttp integration tests specifically")
+if (LL_TESTS AND LLCOREHTTP_TESTS)
SET(llcorehttp_TEST_SOURCE_FILES
- tests/test_allocator.cpp
)
- set(llcorehttp_TEST_HEADER_FILS
+ set(llcorehttp_TEST_HEADER_FILES
tests/test_httpstatus.hpp
tests/test_refcounted.hpp
tests/test_httpoperation.hpp
@@ -149,7 +150,7 @@ if (LL_TESTS)
${PYTHON_EXECUTABLE}
"${CMAKE_CURRENT_SOURCE_DIR}/tests/test_llcorehttp_peer.py"
)
-
+
if (DARWIN)
# Path inside the app bundle where we'll need to copy libraries
set(LL_TEST_DESTINATION_DIR
@@ -198,6 +199,7 @@ endif (DARWIN)
)
set(example_libs
+ ${LEGACY_STDIO_LIBS}
${LLCOREHTTP_LIBRARIES}
${WINDOWS_LIBRARIES}
${LLMESSAGE_LIBRARIES}
@@ -231,5 +233,4 @@ endif (DARWIN)
target_link_libraries(http_texture_load ${example_libs})
-endif (LL_TESTS)
-
+endif (LL_TESTS AND LLCOREHTTP_TESTS)
diff --git a/indra/llcorehttp/_httpreplyqueue.h b/indra/llcorehttp/_httpreplyqueue.h
index 0e39e22dde..928ee10a83 100644
--- a/indra/llcorehttp/_httpreplyqueue.h
+++ b/indra/llcorehttp/_httpreplyqueue.h
@@ -30,6 +30,7 @@
#include "_refcounted.h"
#include "_mutex.h"
+#include "boost/noncopyable.hpp"
namespace LLCore
diff --git a/indra/llcorehttp/examples/http_texture_load.cpp b/indra/llcorehttp/examples/http_texture_load.cpp
index b91aaf0593..c7376042b3 100644
--- a/indra/llcorehttp/examples/http_texture_load.cpp
+++ b/indra/llcorehttp/examples/http_texture_load.cpp
@@ -52,7 +52,7 @@
void init_curl();
void term_curl();
-unsigned long ssl_thread_id_callback(void);
+void ssl_thread_id_callback(CRYPTO_THREADID*);
void ssl_locking_callback(int mode, int type, const char * file, int line);
void usage(std::ostream & out);
@@ -624,7 +624,7 @@ void init_curl()
}
CRYPTO_set_locking_callback(ssl_locking_callback);
- CRYPTO_set_id_callback(ssl_thread_id_callback);
+ CRYPTO_THREADID_set_callback(ssl_thread_id_callback);
}
}
@@ -640,12 +640,12 @@ void term_curl()
}
-unsigned long ssl_thread_id_callback(void)
+void ssl_thread_id_callback(CRYPTO_THREADID* pthreadid)
{
#if defined(WIN32)
- return (unsigned long) GetCurrentThread();
+ CRYPTO_THREADID_set_pointer(pthreadid, GetCurrentThread());
#else
- return (unsigned long) pthread_self();
+ CRYPTO_THREADID_set_pointer(pthreadid, pthread_self());
#endif
}
diff --git a/indra/llcorehttp/httpcommon.cpp b/indra/llcorehttp/httpcommon.cpp
index 7c93c54cdf..e37a38b05f 100644
--- a/indra/llcorehttp/httpcommon.cpp
+++ b/indra/llcorehttp/httpcommon.cpp
@@ -40,6 +40,7 @@
#include <sstream>
#if SAFE_SSL
#include <openssl/crypto.h>
+#include <functional> // std::hash
#endif
@@ -369,7 +370,8 @@ void ssl_locking_callback(int mode, int type, const char *file, int line)
//static
unsigned long ssl_thread_id(void)
{
- return LLThread::currentID();
+ // std::thread::id is very deliberately opaque, but we can hash it
+ return std::hash<LLThread::id_t>()(LLThread::currentID());
}
#endif
diff --git a/indra/llcorehttp/httpcommon.h b/indra/llcorehttp/httpcommon.h
index e4bd4957f8..18505e0aad 100644
--- a/indra/llcorehttp/httpcommon.h
+++ b/indra/llcorehttp/httpcommon.h
@@ -193,6 +193,7 @@
#include "boost/shared_ptr.hpp"
#include "boost/weak_ptr.hpp"
#include "boost/function.hpp"
+#include "boost/noncopyable.hpp"
#include <string>
#include <curl/curl.h>
diff --git a/indra/llcorehttp/tests/llcorehttp_test.cpp b/indra/llcorehttp/tests/llcorehttp_test.cpp
index a310fc0508..362b2309ee 100755
--- a/indra/llcorehttp/tests/llcorehttp_test.cpp
+++ b/indra/llcorehttp/tests/llcorehttp_test.cpp
@@ -41,14 +41,19 @@
#include "test_httpstatus.hpp"
#include "test_refcounted.hpp"
#include "test_httpoperation.hpp"
+// As of 2019-06-28, test_httprequest.hpp consistently crashes on Mac Release
+// builds for reasons not yet diagnosed.
+#if ! (LL_DARWIN && LL_RELEASE)
#include "test_httprequest.hpp"
+#endif
#include "test_httpheaders.hpp"
#include "test_httprequestqueue.hpp"
+#include "_httpservice.h"
#include "llproxy.h"
#include "llcleanup.h"
-unsigned long ssl_thread_id_callback(void);
+void ssl_thread_id_callback(CRYPTO_THREADID*);
void ssl_locking_callback(int mode, int type, const char * file, int line);
#if 0 // lltut provides main and runner
@@ -93,7 +98,7 @@ void init_curl()
}
CRYPTO_set_locking_callback(ssl_locking_callback);
- CRYPTO_set_id_callback(ssl_thread_id_callback);
+ CRYPTO_THREADID_set_callback(ssl_thread_id_callback);
}
LLProxy::getInstance();
@@ -113,12 +118,12 @@ void term_curl()
}
-unsigned long ssl_thread_id_callback(void)
+void ssl_thread_id_callback(CRYPTO_THREADID* pthreadid)
{
#if defined(WIN32)
- return (unsigned long) GetCurrentThread();
+ CRYPTO_THREADID_set_pointer(pthreadid, GetCurrentThread());
#else
- return (unsigned long) pthread_self();
+ CRYPTO_THREADID_set_pointer(pthreadid, pthread_self());
#endif
}
@@ -172,5 +177,3 @@ void stop_thread(LLCore::HttpRequest * req)
}
}
}
-
-
diff --git a/indra/llcorehttp/tests/test_allocator.cpp b/indra/llcorehttp/tests/test_allocator.cpp
index ea12dc58eb..597e0d2fc9 100644
--- a/indra/llcorehttp/tests/test_allocator.cpp
+++ b/indra/llcorehttp/tests/test_allocator.cpp
@@ -43,16 +43,6 @@
#include <boost/thread.hpp>
-
-#if defined(WIN32)
-#define THROW_BAD_ALLOC() _THROW1(std::bad_alloc)
-#define THROW_NOTHING() _THROW0()
-#else
-#define THROW_BAD_ALLOC() throw(std::bad_alloc)
-#define THROW_NOTHING() throw()
-#endif
-
-
struct BlockHeader
{
struct Block * next;
@@ -152,19 +142,19 @@ std::size_t GetMemTotal()
}
-void * operator new(std::size_t size) THROW_BAD_ALLOC()
+void * operator new(std::size_t size) //throw(std::bad_alloc)
{
return GetMem( size );
}
-void * operator new[](std::size_t size) THROW_BAD_ALLOC()
+void * operator new[](std::size_t size) //throw(std::bad_alloc)
{
return GetMem( size );
}
-void operator delete(void * p) THROW_NOTHING()
+void operator delete(void * p) throw()
{
if (p)
{
@@ -173,7 +163,7 @@ void operator delete(void * p) THROW_NOTHING()
}
-void operator delete[](void * p) THROW_NOTHING()
+void operator delete[](void * p) throw()
{
if (p)
{
diff --git a/indra/llcorehttp/tests/test_allocator.h b/indra/llcorehttp/tests/test_allocator.h
index 3572bbc5c5..abd88f4c98 100644
--- a/indra/llcorehttp/tests/test_allocator.h
+++ b/indra/llcorehttp/tests/test_allocator.h
@@ -30,18 +30,13 @@
#include <cstdlib>
#include <new>
+#error 2019-06-27 Do not use test_allocator.h -- does not respect alignment.
+
size_t GetMemTotal();
-#if defined(WIN32)
-void * operator new(std::size_t size) _THROW1(std::bad_alloc);
-void * operator new[](std::size_t size) _THROW1(std::bad_alloc);
-void operator delete(void * p) _THROW0();
-void operator delete[](void * p) _THROW0();
-#else
-void * operator new(std::size_t size) throw (std::bad_alloc);
-void * operator new[](std::size_t size) throw (std::bad_alloc);
+void * operator new(std::size_t size); //throw (std::bad_alloc);
+void * operator new[](std::size_t size); //throw (std::bad_alloc);
void operator delete(void * p) throw ();
void operator delete[](void * p) throw ();
-#endif
#endif // TEST_ALLOCATOR_H
diff --git a/indra/llcorehttp/tests/test_bufferarray.hpp b/indra/llcorehttp/tests/test_bufferarray.hpp
index 8a2a64d970..cc4ad2a906 100644
--- a/indra/llcorehttp/tests/test_bufferarray.hpp
+++ b/indra/llcorehttp/tests/test_bufferarray.hpp
@@ -30,8 +30,6 @@
#include <iostream>
-#include "test_allocator.h"
-
using namespace LLCore;
@@ -44,7 +42,6 @@ struct BufferArrayTestData
{
// the test objects inherit from this so the member functions and variables
// can be referenced directly inside of the test functions.
- size_t mMemTotal;
};
typedef test_group<BufferArrayTestData> BufferArrayTestGroupType;
@@ -56,13 +53,9 @@ void BufferArrayTestObjectType::test<1>()
{
set_test_name("BufferArray construction");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
BufferArray * ba = new BufferArray();
ensure("One ref on construction of BufferArray", ba->getRefCount() == 1);
- ensure("Memory being used", mMemTotal < GetMemTotal());
ensure("Nothing in BA", 0 == ba->size());
// Try to read
@@ -72,9 +65,6 @@ void BufferArrayTestObjectType::test<1>()
// release the implicit reference, causing the object to be released
ba->release();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -82,9 +72,6 @@ void BufferArrayTestObjectType::test<2>()
{
set_test_name("BufferArray single write");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
BufferArray * ba = new BufferArray();
@@ -105,9 +92,6 @@ void BufferArrayTestObjectType::test<2>()
// release the implicit reference, causing the object to be released
ba->release();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
@@ -116,9 +100,6 @@ void BufferArrayTestObjectType::test<3>()
{
set_test_name("BufferArray multiple writes");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
BufferArray * ba = new BufferArray();
@@ -154,9 +135,6 @@ void BufferArrayTestObjectType::test<3>()
// release the implicit reference, causing the object to be released
ba->release();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -164,9 +142,6 @@ void BufferArrayTestObjectType::test<4>()
{
set_test_name("BufferArray overwriting");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
BufferArray * ba = new BufferArray();
@@ -208,9 +183,6 @@ void BufferArrayTestObjectType::test<4>()
// release the implicit reference, causing the object to be released
ba->release();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -218,9 +190,6 @@ void BufferArrayTestObjectType::test<5>()
{
set_test_name("BufferArray multiple writes - sequential reads");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
BufferArray * ba = new BufferArray();
@@ -255,9 +224,6 @@ void BufferArrayTestObjectType::test<5>()
// release the implicit reference, causing the object to be released
ba->release();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -265,9 +231,6 @@ void BufferArrayTestObjectType::test<6>()
{
set_test_name("BufferArray overwrite spanning blocks and appending");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
BufferArray * ba = new BufferArray();
@@ -306,9 +269,6 @@ void BufferArrayTestObjectType::test<6>()
// release the implicit reference, causing the object to be released
ba->release();
-
- // make sure we didn't leak any memory
- ensure("All memory released", mMemTotal == GetMemTotal());
}
template <> template <>
@@ -316,9 +276,6 @@ void BufferArrayTestObjectType::test<7>()
{
set_test_name("BufferArray overwrite spanning blocks and sequential writes");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
BufferArray * ba = new BufferArray();
@@ -371,9 +328,6 @@ void BufferArrayTestObjectType::test<7>()
// release the implicit reference, causing the object to be released
ba->release();
-
- // make sure we didn't leak any memory
- ensure("All memory released", mMemTotal == GetMemTotal());
}
template <> template <>
@@ -381,9 +335,6 @@ void BufferArrayTestObjectType::test<8>()
{
set_test_name("BufferArray zero-length appendBufferAlloc");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
BufferArray * ba = new BufferArray();
@@ -421,9 +372,6 @@ void BufferArrayTestObjectType::test<8>()
// release the implicit reference, causing the object to be released
ba->release();
-
- // make sure we didn't leak any memory
- ensure("All memory released", mMemTotal == GetMemTotal());
}
} // end namespace tut
diff --git a/indra/llcorehttp/tests/test_bufferstream.hpp b/indra/llcorehttp/tests/test_bufferstream.hpp
index 831c901b9d..2739a6e38e 100644
--- a/indra/llcorehttp/tests/test_bufferstream.hpp
+++ b/indra/llcorehttp/tests/test_bufferstream.hpp
@@ -30,7 +30,6 @@
#include <iostream>
-#include "test_allocator.h"
#include "llsd.h"
#include "llsdserialize.h"
@@ -45,7 +44,6 @@ struct BufferStreamTestData
{
// the test objects inherit from this so the member functions and variables
// can be referenced directly inside of the test functions.
- size_t mMemTotal;
};
typedef test_group<BufferStreamTestData> BufferStreamTestGroupType;
@@ -59,12 +57,8 @@ void BufferStreamTestObjectType::test<1>()
{
set_test_name("BufferArrayStreamBuf construction with NULL BufferArray");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
BufferArrayStreamBuf * bsb = new BufferArrayStreamBuf(NULL);
- ensure("Memory being used", mMemTotal < GetMemTotal());
// Not much will work with a NULL
ensure("underflow() on NULL fails", tst_traits_t::eof() == bsb->underflow());
@@ -78,9 +72,6 @@ void BufferStreamTestObjectType::test<1>()
// release the implicit reference, causing the object to be released
delete bsb;
bsb = NULL;
-
- // make sure we didn't leak any memory
- ensure("Allocated memory returned", mMemTotal == GetMemTotal());
}
@@ -89,12 +80,8 @@ void BufferStreamTestObjectType::test<2>()
{
set_test_name("BufferArrayStream construction with NULL BufferArray");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
BufferArrayStream * bas = new BufferArrayStream(NULL);
- ensure("Memory being used", mMemTotal < GetMemTotal());
// Not much will work with a NULL here
ensure("eof() is false on NULL", ! bas->eof());
@@ -104,9 +91,6 @@ void BufferStreamTestObjectType::test<2>()
// release the implicit reference, causing the object to be released
delete bas;
bas = NULL;
-
- // make sure we didn't leak any memory
- ensure("Allocated memory returned", mMemTotal == GetMemTotal());
}
@@ -115,13 +99,9 @@ void BufferStreamTestObjectType::test<3>()
{
set_test_name("BufferArrayStreamBuf construction with empty BufferArray");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted BufferArray with implicit reference
BufferArray * ba = new BufferArray;
BufferArrayStreamBuf * bsb = new BufferArrayStreamBuf(ba);
- ensure("Memory being used", mMemTotal < GetMemTotal());
// I can release my ref on the BA
ba->release();
@@ -130,9 +110,6 @@ void BufferStreamTestObjectType::test<3>()
// release the implicit reference, causing the object to be released
delete bsb;
bsb = NULL;
-
- // make sure we didn't leak any memory
- ensure("Allocated memory returned", mMemTotal == GetMemTotal());
}
@@ -141,24 +118,17 @@ void BufferStreamTestObjectType::test<4>()
{
set_test_name("BufferArrayStream construction with empty BufferArray");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted BufferArray with implicit reference
BufferArray * ba = new BufferArray;
{
// create a new ref counted object with an implicit reference
BufferArrayStream bas(ba);
- ensure("Memory being used", mMemTotal < GetMemTotal());
}
// release the implicit reference, causing the object to be released
ba->release();
ba = NULL;
-
- // make sure we didn't leak any memory
- ensure("Allocated memory returned", mMemTotal == GetMemTotal());
}
@@ -167,9 +137,6 @@ void BufferStreamTestObjectType::test<5>()
{
set_test_name("BufferArrayStreamBuf construction with real BufferArray");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted BufferArray with implicit reference
BufferArray * ba = new BufferArray;
const char * content("This is a string. A fragment.");
@@ -178,7 +145,6 @@ void BufferStreamTestObjectType::test<5>()
// Creat an adapter for the BufferArray
BufferArrayStreamBuf * bsb = new BufferArrayStreamBuf(ba);
- ensure("Memory being used", mMemTotal < GetMemTotal());
// I can release my ref on the BA
ba->release();
@@ -206,9 +172,6 @@ void BufferStreamTestObjectType::test<5>()
// release the implicit reference, causing the object to be released
delete bsb;
bsb = NULL;
-
- // make sure we didn't leak any memory
- ensure("Allocated memory returned", mMemTotal == GetMemTotal());
}
@@ -217,9 +180,6 @@ void BufferStreamTestObjectType::test<6>()
{
set_test_name("BufferArrayStream construction with real BufferArray");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted BufferArray with implicit reference
BufferArray * ba = new BufferArray;
//const char * content("This is a string. A fragment.");
@@ -229,7 +189,6 @@ void BufferStreamTestObjectType::test<6>()
{
// Creat an adapter for the BufferArray
BufferArrayStream bas(ba);
- ensure("Memory being used", mMemTotal < GetMemTotal());
// Basic operations
bas << "Hello" << 27 << ".";
@@ -243,10 +202,6 @@ void BufferStreamTestObjectType::test<6>()
// release the implicit reference, causing the object to be released
ba->release();
ba = NULL;
-
- // make sure we didn't leak any memory
- // ensure("Allocated memory returned", mMemTotal == GetMemTotal());
- // static U64 mem = GetMemTotal();
}
@@ -255,16 +210,12 @@ void BufferStreamTestObjectType::test<7>()
{
set_test_name("BufferArrayStream with LLSD serialization");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted BufferArray with implicit reference
BufferArray * ba = new BufferArray;
{
// Creat an adapter for the BufferArray
BufferArrayStream bas(ba);
- ensure("Memory being used", mMemTotal < GetMemTotal());
// LLSD
LLSD llsd = LLSD::emptyMap();
@@ -292,9 +243,6 @@ void BufferStreamTestObjectType::test<7>()
// release the implicit reference, causing the object to be released
ba->release();
ba = NULL;
-
- // make sure we didn't leak any memory
- // ensure("Allocated memory returned", mMemTotal == GetMemTotal());
}
diff --git a/indra/llcorehttp/tests/test_httpheaders.hpp b/indra/llcorehttp/tests/test_httpheaders.hpp
index c05f1d9429..6aefb5054b 100644
--- a/indra/llcorehttp/tests/test_httpheaders.hpp
+++ b/indra/llcorehttp/tests/test_httpheaders.hpp
@@ -30,8 +30,6 @@
#include <iostream>
-#include "test_allocator.h"
-
using namespace LLCoreInt;
@@ -43,7 +41,6 @@ struct HttpHeadersTestData
{
// the test objects inherit from this so the member functions and variables
// can be referenced directly inside of the test functions.
- size_t mMemTotal;
};
typedef test_group<HttpHeadersTestData> HttpHeadersTestGroupType;
@@ -55,19 +52,12 @@ void HttpHeadersTestObjectType::test<1>()
{
set_test_name("HttpHeaders construction");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
HttpHeaders::ptr_t headers = HttpHeaders::ptr_t(new HttpHeaders());
- ensure("Memory being used", mMemTotal < GetMemTotal());
ensure("Nothing in headers", 0 == headers->size());
// release the implicit reference, causing the object to be released
headers.reset();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -75,9 +65,6 @@ void HttpHeadersTestObjectType::test<2>()
{
set_test_name("HttpHeaders construction");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
HttpHeaders::ptr_t headers = HttpHeaders::ptr_t(new HttpHeaders());
@@ -101,9 +88,6 @@ void HttpHeadersTestObjectType::test<2>()
// release the implicit reference, causing the object to be released
headers.reset();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -111,9 +95,6 @@ void HttpHeadersTestObjectType::test<3>()
{
set_test_name("HttpHeaders basic find");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
HttpHeaders::ptr_t headers = HttpHeaders::ptr_t(new HttpHeaders());
@@ -151,9 +132,6 @@ void HttpHeadersTestObjectType::test<3>()
// release the implicit reference, causing the object to be released
headers.reset();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -161,9 +139,6 @@ void HttpHeadersTestObjectType::test<4>()
{
set_test_name("HttpHeaders normalized header entry");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
HttpHeaders::ptr_t headers = HttpHeaders::ptr_t(new HttpHeaders());
@@ -251,9 +226,6 @@ void HttpHeadersTestObjectType::test<4>()
// release the implicit reference, causing the object to be released
headers.reset();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
// Verify forward iterator finds everything as expected
@@ -262,9 +234,6 @@ void HttpHeadersTestObjectType::test<5>()
{
set_test_name("HttpHeaders iterator tests");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
HttpHeaders::ptr_t headers = HttpHeaders::ptr_t(new HttpHeaders());
@@ -337,9 +306,6 @@ void HttpHeadersTestObjectType::test<5>()
// release the implicit reference, causing the object to be released
headers.reset();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
// Reverse iterators find everything as expected
@@ -348,9 +314,6 @@ void HttpHeadersTestObjectType::test<6>()
{
set_test_name("HttpHeaders reverse iterator tests");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
HttpHeaders::ptr_t headers = HttpHeaders::ptr_t(new HttpHeaders());
@@ -421,9 +384,6 @@ void HttpHeadersTestObjectType::test<6>()
// release the implicit reference, causing the object to be released
headers.reset();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
} // end namespace tut
diff --git a/indra/llcorehttp/tests/test_httpoperation.hpp b/indra/llcorehttp/tests/test_httpoperation.hpp
index e7df2337de..c6407e8d04 100644
--- a/indra/llcorehttp/tests/test_httpoperation.hpp
+++ b/indra/llcorehttp/tests/test_httpoperation.hpp
@@ -31,8 +31,6 @@
#include <iostream>
-#include "test_allocator.h"
-
using namespace LLCoreInt;
@@ -60,7 +58,6 @@ namespace tut
{
// the test objects inherit from this so the member functions and variables
// can be referenced directly inside of the test functions.
- size_t mMemTotal;
};
typedef test_group<HttpOperationTestData> HttpOperationTestGroupType;
@@ -72,19 +69,12 @@ namespace tut
{
set_test_name("HttpOpNull construction");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
HttpOperation::ptr_t op (new HttpOpNull());
ensure(op.use_count() == 1);
- ensure(mMemTotal < GetMemTotal());
-
- // release the implicit reference, causing the object to be released
- op.reset();
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
+ // release the implicit reference, causing the object to be released
+ op.reset();
}
template <> template <>
@@ -92,9 +82,6 @@ namespace tut
{
set_test_name("HttpOpNull construction with handlers");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// Get some handlers
LLCore::HttpHandler::ptr_t h1 (new TestHandler());
@@ -109,13 +96,10 @@ namespace tut
// release the reference, releasing the operation but
// not the handlers.
- op.reset();
- ensure(mMemTotal != GetMemTotal());
-
- // release the handlers
- h1.reset();
+ op.reset();
- ensure(mMemTotal == GetMemTotal());
+ // release the handlers
+ h1.reset();
}
}
diff --git a/indra/llcorehttp/tests/test_httprequest.hpp b/indra/llcorehttp/tests/test_httprequest.hpp
index e65588e48f..3cdd17919d 100644
--- a/indra/llcorehttp/tests/test_httprequest.hpp
+++ b/indra/llcorehttp/tests/test_httprequest.hpp
@@ -39,7 +39,6 @@
#include <boost/regex.hpp>
#include <sstream>
-#include "test_allocator.h"
#include "llcorehttp_test.h"
@@ -75,7 +74,6 @@ struct HttpRequestTestData
{
// the test objects inherit from this so the member functions and variables
// can be referenced directly inside of the test functions.
- size_t mMemTotal;
int mHandlerCalls;
HttpStatus mStatus;
};
@@ -196,27 +194,19 @@ void HttpRequestTestObjectType::test<1>()
HttpRequest * req = NULL;
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
try
{
// Get singletons created
HttpRequest::createService();
-
+
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory being used", mMemTotal < GetMemTotal());
-
+
// release the request object
delete req;
req = NULL;
HttpRequest::destroyService();
-
- // make sure we didn't leak any memory
- // nat 2017-08-15 don't: requires total stasis in every other subsystem
-// ensure("Memory returned", mMemTotal == GetMemTotal());
}
catch (...)
{
@@ -235,9 +225,6 @@ void HttpRequestTestObjectType::test<2>()
HttpRequest * req = NULL;
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
try
{
// Get singletons created
@@ -245,7 +232,6 @@ void HttpRequestTestObjectType::test<2>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory being used", mMemTotal < GetMemTotal());
// Issue a NoOp
HttpHandle handle = req->requestNoOp(LLCore::HttpHandler::ptr_t());
@@ -255,17 +241,11 @@ void HttpRequestTestObjectType::test<2>()
delete req;
req = NULL;
- // We're still holding onto the operation which is
- // sitting, unserviced, on the request queue so...
- ensure("Memory being used 2", mMemTotal < GetMemTotal());
-
// Request queue should have two references: global singleton & service object
ensure("Two references to request queue", 2 == HttpRequestQueue::instanceOf()->getRefCount());
// Okay, tear it down
HttpRequest::destroyService();
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory returned", mMemTotal == GetMemTotal());
}
catch (...)
{
@@ -293,9 +273,6 @@ void HttpRequestTestObjectType::test<3>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -311,7 +288,6 @@ void HttpRequestTestObjectType::test<3>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
// Issue a NoOp
HttpHandle handle = req->requestNoOp(handlerp);
@@ -360,8 +336,6 @@ void HttpRequestTestObjectType::test<3>()
HttpRequest::destroyService();
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
}
catch (...)
{
@@ -386,9 +360,6 @@ void HttpRequestTestObjectType::test<4>()
LLCore::HttpHandler::ptr_t handler1p(&handler1, NoOpDeletor);
LLCore::HttpHandler::ptr_t handler2p(&handler2, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req1 = NULL;
@@ -407,7 +378,6 @@ void HttpRequestTestObjectType::test<4>()
// create a new ref counted object with an implicit reference
req1 = new HttpRequest();
req2 = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
// Issue some NoOps
HttpHandle handle = req1->requestNoOp(handler1p);
@@ -466,8 +436,6 @@ void HttpRequestTestObjectType::test<4>()
HttpRequest::destroyService();
ensure("Two handler calls on the way out", 3 == mHandlerCalls);
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
}
catch (...)
{
@@ -491,9 +459,6 @@ void HttpRequestTestObjectType::test<5>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -509,7 +474,6 @@ void HttpRequestTestObjectType::test<5>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
// Issue a Spin
HttpHandle handle = req->requestSpin(1);
@@ -535,15 +499,6 @@ void HttpRequestTestObjectType::test<5>()
// Shut down service
HttpRequest::destroyService();
-
- // Check memory usage
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
- // This memory test should work but could give problems as it
- // relies on the worker thread picking up a friendly request
- // to shutdown. Doing so, it drops references to things and
- // we should go back to where we started. If it gives you
- // problems, look into the code before commenting things out.
}
catch (...)
{
@@ -566,9 +521,6 @@ void HttpRequestTestObjectType::test<6>()
// references to it after completion of this method.
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -586,7 +538,6 @@ void HttpRequestTestObjectType::test<6>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
// Issue a Spin
HttpHandle handle = req->requestSpin(0); // Hard spin
@@ -612,13 +563,6 @@ void HttpRequestTestObjectType::test<6>()
// Shut down service
HttpRequest::destroyService();
-
- // Check memory usage
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- // ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
- // This memory test won't work because we're killing the thread
- // hard with the hard spinner. There's no opportunity to join
- // nicely so many things leak or get destroyed unilaterally.
}
catch (...)
{
@@ -643,9 +587,6 @@ void HttpRequestTestObjectType::test<7>()
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -662,7 +603,6 @@ void HttpRequestTestObjectType::test<7>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
opts = HttpOptions::ptr_t(new HttpOptions());
opts->setRetries(1); // Don't try for too long - default retries take about 18S
@@ -726,14 +666,6 @@ void HttpRequestTestObjectType::test<7>()
HttpRequest::destroyService();
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
-
-#if 0 // defined(WIN32)
- // Can't do this on any platform anymore, the LL logging system holds
- // on to memory and produces what looks like memory leaks...
-
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
-#endif
}
catch (...)
{
@@ -761,9 +693,6 @@ void HttpRequestTestObjectType::test<8>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -779,7 +708,6 @@ void HttpRequestTestObjectType::test<8>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
// Issue a GET that *can* connect
mStatus = HttpStatus(200);
@@ -835,15 +763,6 @@ void HttpRequestTestObjectType::test<8>()
HttpRequest::destroyService();
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
-
-#if 0 // defined(WIN32)
- // Can only do this memory test on Windows. On other platforms,
- // the LL logging system holds on to memory and produces what looks
- // like memory leaks...
-
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
-#endif
}
catch (...)
{
@@ -870,9 +789,6 @@ void HttpRequestTestObjectType::test<9>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -888,7 +804,6 @@ void HttpRequestTestObjectType::test<9>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
// Issue a GET that *can* connect
mStatus = HttpStatus(200);
@@ -946,15 +861,6 @@ void HttpRequestTestObjectType::test<9>()
HttpRequest::destroyService();
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
-
-#if 0 // defined(WIN32)
- // Can only do this memory test on Windows. On other platforms,
- // the LL logging system holds on to memory and produces what looks
- // like memory leaks...
-
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
-#endif
}
catch (...)
{
@@ -981,9 +887,6 @@ void HttpRequestTestObjectType::test<10>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -1000,7 +903,6 @@ void HttpRequestTestObjectType::test<10>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
// Issue a GET that *can* connect
static const char * body_text("Now is the time for all good men...");
@@ -1063,14 +965,6 @@ void HttpRequestTestObjectType::test<10>()
HttpRequest::destroyService();
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
-
-#if 0 // defined(WIN32)
- // Can't do this on any platform anymore, the LL logging system holds
- // on to memory and produces what looks like memory leaks...
-
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
-#endif
}
catch (...)
{
@@ -1100,9 +994,6 @@ void HttpRequestTestObjectType::test<11>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -1119,7 +1010,6 @@ void HttpRequestTestObjectType::test<11>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
// Issue a GET that *can* connect
static const char * body_text("Now is the time for all good men...");
@@ -1182,15 +1072,6 @@ void HttpRequestTestObjectType::test<11>()
HttpRequest::destroyService();
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
-
-#if 0 // defined(WIN32)
- // Can only do this memory test on Windows. On other platforms,
- // the LL logging system holds on to memory and produces what looks
- // like memory leaks...
-
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
-#endif
}
catch (...)
{
@@ -1220,9 +1101,6 @@ void HttpRequestTestObjectType::test<12>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -1241,7 +1119,6 @@ void HttpRequestTestObjectType::test<12>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
// Issue a GET that *can* connect
mStatus = HttpStatus(200);
@@ -1299,14 +1176,6 @@ void HttpRequestTestObjectType::test<12>()
HttpRequest::destroyService();
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
-
-#if 0 // defined(WIN32)
- // Can't do this on any platform anymore, the LL logging system holds
- // on to memory and produces what looks like memory leaks...
-
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
-#endif
}
catch (...)
{
@@ -1338,9 +1207,6 @@ void HttpRequestTestObjectType::test<13>()
TestHandler2 handler(this, "handler");
handler.mHeadersRequired.reserve(20); // Avoid memory leak test failure
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -1360,7 +1226,6 @@ void HttpRequestTestObjectType::test<13>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
opts = HttpOptions::ptr_t(new HttpOptions());
opts->setWantHeaders(true);
@@ -1428,15 +1293,6 @@ void HttpRequestTestObjectType::test<13>()
HttpRequest::destroyService();
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
-
-#if 0 // defined(WIN32)
- // Can only do this memory test on Windows. On other platforms,
- // the LL logging system holds on to memory and produces what looks
- // like memory leaks...
-
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
-#endif
}
catch (...)
{
@@ -1462,9 +1318,6 @@ void HttpRequestTestObjectType::test<14>()
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
std::string url_base(get_base_url() + "/sleep/"); // path to a 30-second sleep
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -1481,7 +1334,6 @@ void HttpRequestTestObjectType::test<14>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
opts = HttpOptions::ptr_t(new HttpOptions);
opts->setRetries(0); // Don't retry
@@ -1546,14 +1398,6 @@ void HttpRequestTestObjectType::test<14>()
HttpRequest::destroyService();
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
-
-#if 0 // defined(WIN32)
- // Can't do this on any platform anymore, the LL logging system holds
- // on to memory and produces what looks like memory leaks...
-
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
-#endif
}
catch (...)
{
@@ -1586,9 +1430,6 @@ void HttpRequestTestObjectType::test<15>()
// for memory return tests.
handler.mCheckContentType = "application/llsd+xml";
handler.mCheckContentType.clear();
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -1604,7 +1445,6 @@ void HttpRequestTestObjectType::test<15>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
// Issue a GET that *can* connect
mStatus = HttpStatus(200);
@@ -1662,15 +1502,6 @@ void HttpRequestTestObjectType::test<15>()
HttpRequest::destroyService();
ensure("Two handler calls on the way out", 2 == mHandlerCalls);
-
-#if 0 // defined(WIN32)
- // Can only do this memory test on Windows. On other platforms,
- // the LL logging system holds on to memory and produces what looks
- // like memory leaks...
-
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
-#endif
}
catch (...)
{
@@ -1701,9 +1532,6 @@ void HttpRequestTestObjectType::test<16>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -1943,9 +1771,6 @@ void HttpRequestTestObjectType::test<17>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -2131,9 +1956,6 @@ void HttpRequestTestObjectType::test<18>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -2320,9 +2142,6 @@ void HttpRequestTestObjectType::test<19>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -2503,9 +2322,6 @@ void HttpRequestTestObjectType::test<20>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -2711,9 +2527,6 @@ void HttpRequestTestObjectType::test<21>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -2915,9 +2728,6 @@ void HttpRequestTestObjectType::test<22>()
// Create before memory record as the string copy will bump numbers.
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpOptions::ptr_t options;
@@ -2939,7 +2749,6 @@ void HttpRequestTestObjectType::test<22>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
// ======================================
// Issue bug2295 GETs that will get a 206
@@ -3073,14 +2882,6 @@ void HttpRequestTestObjectType::test<22>()
// Shut down service
HttpRequest::destroyService();
-
-#if 0 // defined(WIN32)
- // Can't do this on any platform anymore, the LL logging system holds
- // on to memory and produces what looks like memory leaks...
-
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
-#endif
}
catch (...)
{
@@ -3117,9 +2918,6 @@ void HttpRequestTestObjectType::test<23>()
TestHandler2 handler(this, "handler");
LLCore::HttpHandler::ptr_t handlerp(&handler, NoOpDeletor);
std::string url_base(get_base_url() + "/503/"); // path to 503 generators
-
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
mHandlerCalls = 0;
HttpRequest * req = NULL;
@@ -3136,7 +2934,6 @@ void HttpRequestTestObjectType::test<23>()
// create a new ref counted object with an implicit reference
req = new HttpRequest();
- ensure("Memory allocated on construction", mMemTotal < GetMemTotal());
opts = HttpOptions::ptr_t(new HttpOptions());
opts->setRetries(1); // Retry once only
@@ -3210,14 +3007,6 @@ void HttpRequestTestObjectType::test<23>()
// Shut down service
HttpRequest::destroyService();
-
-#if 0 // defined(WIN32)
- // Can't do this on any platform anymore, the LL logging system holds
- // on to memory and produces what looks like memory leaks...
-
- // printf("Old mem: %d, New mem: %d\n", mMemTotal, GetMemTotal());
- ensure("Memory usage back to that at entry", mMemTotal == GetMemTotal());
-#endif
}
catch (...)
{
diff --git a/indra/llcorehttp/tests/test_httprequestqueue.hpp b/indra/llcorehttp/tests/test_httprequestqueue.hpp
index ef4ce0479b..dba9e0b250 100644
--- a/indra/llcorehttp/tests/test_httprequestqueue.hpp
+++ b/indra/llcorehttp/tests/test_httprequestqueue.hpp
@@ -30,7 +30,6 @@
#include <iostream>
-#include "test_allocator.h"
#include "_httpoperation.h"
@@ -45,7 +44,6 @@ struct HttpRequestqueueTestData
{
// the test objects inherit from this so the member functions and variables
// can be referenced directly inside of the test functions.
- size_t mMemTotal;
};
typedef test_group<HttpRequestqueueTestData> HttpRequestqueueTestGroupType;
@@ -57,20 +55,13 @@ void HttpRequestqueueTestObjectType::test<1>()
{
set_test_name("HttpRequestQueue construction");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
HttpRequestQueue::init();
ensure("One ref on construction of HttpRequestQueue", HttpRequestQueue::instanceOf()->getRefCount() == 1);
- ensure("Memory being used", mMemTotal < GetMemTotal());
// release the implicit reference, causing the object to be released
HttpRequestQueue::term();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -78,9 +69,6 @@ void HttpRequestqueueTestObjectType::test<2>()
{
set_test_name("HttpRequestQueue refcount works");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
HttpRequestQueue::init();
@@ -91,13 +79,9 @@ void HttpRequestqueueTestObjectType::test<2>()
HttpRequestQueue::term();
ensure("One ref after term() called", rq->getRefCount() == 1);
- ensure("Memory being used", mMemTotal < GetMemTotal());
// Drop ref
rq->release();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -105,9 +89,6 @@ void HttpRequestqueueTestObjectType::test<3>()
{
set_test_name("HttpRequestQueue addOp/fetchOp work");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
HttpRequestQueue::init();
@@ -126,9 +107,6 @@ void HttpRequestqueueTestObjectType::test<3>()
// release the singleton, hold on to the object
HttpRequestQueue::term();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -136,9 +114,6 @@ void HttpRequestqueueTestObjectType::test<4>()
{
set_test_name("HttpRequestQueue addOp/fetchAll work");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
HttpRequestQueue::init();
@@ -164,9 +139,6 @@ void HttpRequestqueueTestObjectType::test<4>()
// release the singleton, hold on to the object
HttpRequestQueue::term();
-
- // We're still holding onto the ops.
- ensure(mMemTotal < GetMemTotal());
// Release them
ops.clear();
@@ -177,9 +149,6 @@ void HttpRequestqueueTestObjectType::test<4>()
// op->release();
// }
}
-
- // Should be clean
- ensure("All memory returned", mMemTotal == GetMemTotal());
}
} // end namespace tut
diff --git a/indra/llcorehttp/tests/test_refcounted.hpp b/indra/llcorehttp/tests/test_refcounted.hpp
index 5dff143e5d..2310812d5a 100644
--- a/indra/llcorehttp/tests/test_refcounted.hpp
+++ b/indra/llcorehttp/tests/test_refcounted.hpp
@@ -28,9 +28,8 @@
#include "_refcounted.h"
-#include "test_allocator.h"
-
-#if 0 // disable all of this because it's hanging win64 builds?
+// disable all of this because it's hanging win64 builds?
+#if ! (LL_WINDOWS && ADDRESS_SIZE == 64)
using namespace LLCoreInt;
namespace tut
@@ -39,7 +38,6 @@ namespace tut
{
// the test objects inherit from this so the member functions and variables
// can be referenced directly inside of the test functions.
- size_t mMemTotal;
};
typedef test_group<RefCountedTestData> RefCountedTestGroupType;
@@ -51,18 +49,12 @@ namespace tut
{
set_test_name("RefCounted construction with implicit count");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
RefCounted * rc = new RefCounted(true);
ensure(rc->getRefCount() == 1);
// release the implicit reference, causing the object to be released
rc->release();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -70,9 +62,6 @@ namespace tut
{
set_test_name("RefCounted construction without implicit count");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
// create a new ref counted object with an implicit reference
RefCounted * rc = new RefCounted(false);
ensure(rc->getRefCount() == 0);
@@ -83,8 +72,6 @@ namespace tut
// release the implicit reference, causing the object to be released
rc->release();
-
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -92,9 +79,6 @@ namespace tut
{
set_test_name("RefCounted addRef and release");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
RefCounted * rc = new RefCounted(false);
for (int i = 0; i < 1024; ++i)
@@ -108,9 +92,6 @@ namespace tut
{
rc->release();
}
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -118,9 +99,6 @@ namespace tut
{
set_test_name("RefCounted isLastRef check");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
RefCounted * rc = new RefCounted(true);
// with only one reference, isLastRef should be true
@@ -128,9 +106,6 @@ namespace tut
// release it to clean up memory
rc->release();
-
- // make sure we didn't leak any memory
- ensure(mMemTotal == GetMemTotal());
}
template <> template <>
@@ -138,9 +113,6 @@ namespace tut
{
set_test_name("RefCounted noRef check");
- // record the total amount of dynamically allocated memory
- mMemTotal = GetMemTotal();
-
RefCounted * rc = new RefCounted(false);
// set the noRef
@@ -148,10 +120,7 @@ namespace tut
// with only one reference, isLastRef should be true
ensure(rc->getRefCount() == RefCounted::NOT_REF_COUNTED);
-
- // allow this memory leak, but check that we're leaking a known amount
- ensure(mMemTotal == (GetMemTotal() - sizeof(RefCounted)));
}
}
-#endif // if 0
+#endif // disabling on Win64
#endif // TEST_LLCOREINT_REF_COUNTED_H_