From 05a3203d8274a0a0999faad128f629614b8d62c5 Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Wed, 26 Sep 2012 17:04:57 -0700
Subject: SH-3275 WIP Run viewer metrics for object update messages fixed
 various issues related to unit tests and LLThreadLocalPtr initialization and
 teardown

---
 indra/test/test.cpp | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

(limited to 'indra/test')

diff --git a/indra/test/test.cpp b/indra/test/test.cpp
index dc8580fe69..2b66c6aa26 100644
--- a/indra/test/test.cpp
+++ b/indra/test/test.cpp
@@ -512,15 +512,10 @@ int main(int argc, char **argv)
 	ctype_workaround();
 #endif
 
-	apr_initialize();
-	apr_pool_t* pool = NULL;
-	if(APR_SUCCESS != apr_pool_create(&pool, NULL))
-	{
-		std::cerr << "Unable to initialize pool" << std::endl;
-		return 1;
-	}
+	ll_init_apr();
+
 	apr_getopt_t* os = NULL;
-	if(APR_SUCCESS != apr_getopt_init(&os, pool, argc, argv))
+	if(APR_SUCCESS != apr_getopt_init(&os, gAPRPoolp, argc, argv))
 	{
 		std::cerr << "apr_getopt_init() failed" << std::endl;
 		return 1;
@@ -602,7 +597,7 @@ int main(int argc, char **argv)
 	if (LOGFAIL)
 	{
 		LLError::ELevel level = LLError::decodeLevel(LOGFAIL);
-		replayer.reset(new LLReplayLogReal(level, pool));
+		replayer.reset(new LLReplayLogReal(level, gAPRPoolp));
 	}
 	else
 	{
@@ -646,7 +641,7 @@ int main(int argc, char **argv)
 		s.close();
 	}
 
-	apr_terminate();
+	ll_cleanup_apr();
 
 	int retval = (success ? 0 : 1);
 	return retval;
-- 
cgit v1.2.3


From c136b432140f892a56d4996d5ed77e903ff0b32d Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Thu, 15 Nov 2012 19:46:09 -0800
Subject: SH-3406 WIP convert fast timers to lltrace system eliminated min and
 max macros from windows.h got rest of viewer to compile against llfasttimer
 changes

---
 indra/test/test.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

(limited to 'indra/test')

diff --git a/indra/test/test.cpp b/indra/test/test.cpp
index 2b66c6aa26..8bd302ce7a 100644
--- a/indra/test/test.cpp
+++ b/indra/test/test.cpp
@@ -40,6 +40,7 @@
 #include "tests/wrapllerrs.h"             // RecorderProxy
 #include "stringize.h"
 #include "namedtempfile.h"
+#include "lltrace.h"
 
 #include "apr_pools.h"
 #include "apr_getopt.h"
@@ -513,7 +514,8 @@ int main(int argc, char **argv)
 #endif
 
 	ll_init_apr();
-
+	LLTrace::init();
+	
 	apr_getopt_t* os = NULL;
 	if(APR_SUCCESS != apr_getopt_init(&os, gAPRPoolp, argc, argv))
 	{
-- 
cgit v1.2.3


From 68413515029f50713c70e4adec3ce6fd1022d59f Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Sun, 6 Jan 2013 21:37:31 -0800
Subject: SH-3468 WIP add memory tracking base class fix for unit test
 failures...cleanup apr without destroying pools, allowing LLProxy to clean
 itself up as a singleton (and avoiding spurious dependencies associated with
 manually destorying singletons that rely on apr pools)

---
 indra/test/test.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra/test')

diff --git a/indra/test/test.cpp b/indra/test/test.cpp
index 8bd302ce7a..d75040393c 100644
--- a/indra/test/test.cpp
+++ b/indra/test/test.cpp
@@ -643,7 +643,7 @@ int main(int argc, char **argv)
 		s.close();
 	}
 
-	ll_cleanup_apr();
+	ll_cleanup_apr(false);
 
 	int retval = (success ? 0 : 1);
 	return retval;
-- 
cgit v1.2.3


From 3c341a11ab7b8f3fd18afcf3f50af6dfafa632c2 Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Tue, 8 Jan 2013 00:25:07 -0800
Subject: SH-3468 WIP add memory tracking base class more fixes for unit test
 crashes added llcommon initialization/teardown for unit tests that indirectly
 trigger lltrace changed access of atomic refcount to use
 preincrement/decrement operators to reflect desired semantics always call
 apr_initialize in LLCommon::initClass, even if already initialized...apr does
 internal reference counting to keep things straight

---
 indra/test/io.cpp                 | 11 ++++++++++-
 indra/test/llhttpdate_tut.cpp     |  9 +++++++++
 indra/test/lliohttpserver_tut.cpp |  7 +++++++
 indra/test/test.cpp               |  2 +-
 4 files changed, 27 insertions(+), 2 deletions(-)

(limited to 'indra/test')

diff --git a/indra/test/io.cpp b/indra/test/io.cpp
index ce747f667d..f2b4a5339c 100644
--- a/indra/test/io.cpp
+++ b/indra/test/io.cpp
@@ -44,6 +44,7 @@
 #include "llsdrpcclient.h"
 #include "llsdrpcserver.h"
 #include "llsdserialize.h"
+#include "llcommon.h"
 #include "lluuid.h"
 #include "llinstantmessage.h"
 
@@ -830,6 +831,7 @@ namespace tut
 	public:
 		PumpAndChainTestData()
 		{
+			LLCommon::initClass();
 			apr_pool_create(&mPool, NULL);
 			mPump = new LLPumpIO(mPool);
 		}
@@ -839,6 +841,7 @@ namespace tut
 			mChain.clear();
 			delete mPump;
 			apr_pool_destroy(mPool);
+			LLCommon::cleanupClass();
 		}
 	};
 	typedef test_group<PumpAndChainTestData>	PumpAndChainTestGroup;
@@ -909,6 +912,7 @@ namespace tut
 		
 		pipe_and_pump_fitness()
 		{
+			LLCommon::initClass();
 			LLFrameTimer::updateFrameTime();
 			apr_pool_create(&mPool, NULL);
 			mPump = new LLPumpIO(mPool);
@@ -923,6 +927,7 @@ namespace tut
 			mSocket.reset();
 			delete mPump;
 			apr_pool_destroy(mPool);
+			LLCommon::cleanupClass();
 		}
 
 	protected:
@@ -1186,8 +1191,12 @@ namespace tut
 			LLSimpleRPCResponse(LLSD* response) :
 				mResponsePtr(response)
 			{
+				LLCommon::initClass();
+			}
+			~LLSimpleRPCResponse() 
+			{
+				LLCommon::cleanupClass();
 			}
-			~LLSimpleRPCResponse() {}
 			virtual bool response(LLPumpIO* pump)
 			{
 				*mResponsePtr = mReturnValue;
diff --git a/indra/test/llhttpdate_tut.cpp b/indra/test/llhttpdate_tut.cpp
index 46684bb9dc..d6f0ba5e66 100644
--- a/indra/test/llhttpdate_tut.cpp
+++ b/indra/test/llhttpdate_tut.cpp
@@ -29,6 +29,7 @@
 #include "lltut.h"
 
 #include "lldate.h"
+#include "llcommon.h"
 #include "llframetimer.h"
 
 #include <time.h>
@@ -38,6 +39,14 @@ namespace tut
 {
     struct httpdate_data
     {
+		httpdate_data() 
+		{ 
+			LLCommon::initClass();
+		}
+		~httpdate_data() 
+		{ 
+			LLCommon::cleanupClass();
+		}
         LLDate some_date;
     };
     typedef test_group<httpdate_data> httpdate_test;
diff --git a/indra/test/lliohttpserver_tut.cpp b/indra/test/lliohttpserver_tut.cpp
index 2fdc455f45..e7af09f80b 100644
--- a/indra/test/lliohttpserver_tut.cpp
+++ b/indra/test/lliohttpserver_tut.cpp
@@ -31,6 +31,7 @@
 #include "lliohttpserver.h"
 #include "llsdhttpserver.h"
 #include "llsdserialize.h"
+#include "llcommon.h"
 
 #include "llpipeutil.h"
 
@@ -76,11 +77,17 @@ namespace tut
 		HTTPServiceTestData()
 			: mResponse(NULL)
 		{
+			LLCommon::initClass();
 			LLHTTPStandardServices::useServices();
 			LLHTTPRegistrar::buildAllServices(mRoot);
 			mRoot.addNode("/delayed/echo", new DelayedEcho(this));
 			mRoot.addNode("/wire/hello", new LLHTTPNodeForPipe<WireHello>);
 		}
+
+		~HTTPServiceTestData()
+		{
+			LLCommon::cleanupClass();
+		}
 		
 		LLHTTPNode mRoot;
 		LLHTTPNode::ResponsePtr mResponse;
diff --git a/indra/test/test.cpp b/indra/test/test.cpp
index d75040393c..8bd302ce7a 100644
--- a/indra/test/test.cpp
+++ b/indra/test/test.cpp
@@ -643,7 +643,7 @@ int main(int argc, char **argv)
 		s.close();
 	}
 
-	ll_cleanup_apr(false);
+	ll_cleanup_apr();
 
 	int retval = (success ? 0 : 1);
 	return retval;
-- 
cgit v1.2.3


From 0ba9a00c3116b69745f2d5070ce772d5d4965dbf Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Tue, 8 Jan 2013 23:50:27 -0800
Subject: SH-3468 WIP add memory tracking base class cleaned up hacks used to
 get unit tests working LLTrace::init now supports recursive
 initialization/cleanup put NOMINMAX back in win32 header wrappers

---
 indra/test/io.cpp                 | 6 ------
 indra/test/llhttpdate_tut.cpp     | 2 --
 indra/test/lliohttpserver_tut.cpp | 2 --
 indra/test/test.cpp               | 2 +-
 4 files changed, 1 insertion(+), 11 deletions(-)

(limited to 'indra/test')

diff --git a/indra/test/io.cpp b/indra/test/io.cpp
index f2b4a5339c..b3eabc2e8a 100644
--- a/indra/test/io.cpp
+++ b/indra/test/io.cpp
@@ -831,7 +831,6 @@ namespace tut
 	public:
 		PumpAndChainTestData()
 		{
-			LLCommon::initClass();
 			apr_pool_create(&mPool, NULL);
 			mPump = new LLPumpIO(mPool);
 		}
@@ -841,7 +840,6 @@ namespace tut
 			mChain.clear();
 			delete mPump;
 			apr_pool_destroy(mPool);
-			LLCommon::cleanupClass();
 		}
 	};
 	typedef test_group<PumpAndChainTestData>	PumpAndChainTestGroup;
@@ -912,7 +910,6 @@ namespace tut
 		
 		pipe_and_pump_fitness()
 		{
-			LLCommon::initClass();
 			LLFrameTimer::updateFrameTime();
 			apr_pool_create(&mPool, NULL);
 			mPump = new LLPumpIO(mPool);
@@ -927,7 +924,6 @@ namespace tut
 			mSocket.reset();
 			delete mPump;
 			apr_pool_destroy(mPool);
-			LLCommon::cleanupClass();
 		}
 
 	protected:
@@ -1191,11 +1187,9 @@ namespace tut
 			LLSimpleRPCResponse(LLSD* response) :
 				mResponsePtr(response)
 			{
-				LLCommon::initClass();
 			}
 			~LLSimpleRPCResponse() 
 			{
-				LLCommon::cleanupClass();
 			}
 			virtual bool response(LLPumpIO* pump)
 			{
diff --git a/indra/test/llhttpdate_tut.cpp b/indra/test/llhttpdate_tut.cpp
index d6f0ba5e66..ecf734ee90 100644
--- a/indra/test/llhttpdate_tut.cpp
+++ b/indra/test/llhttpdate_tut.cpp
@@ -41,11 +41,9 @@ namespace tut
     {
 		httpdate_data() 
 		{ 
-			LLCommon::initClass();
 		}
 		~httpdate_data() 
 		{ 
-			LLCommon::cleanupClass();
 		}
         LLDate some_date;
     };
diff --git a/indra/test/lliohttpserver_tut.cpp b/indra/test/lliohttpserver_tut.cpp
index e7af09f80b..3fa5c8dd42 100644
--- a/indra/test/lliohttpserver_tut.cpp
+++ b/indra/test/lliohttpserver_tut.cpp
@@ -77,7 +77,6 @@ namespace tut
 		HTTPServiceTestData()
 			: mResponse(NULL)
 		{
-			LLCommon::initClass();
 			LLHTTPStandardServices::useServices();
 			LLHTTPRegistrar::buildAllServices(mRoot);
 			mRoot.addNode("/delayed/echo", new DelayedEcho(this));
@@ -86,7 +85,6 @@ namespace tut
 
 		~HTTPServiceTestData()
 		{
-			LLCommon::cleanupClass();
 		}
 		
 		LLHTTPNode mRoot;
diff --git a/indra/test/test.cpp b/indra/test/test.cpp
index 8bd302ce7a..28de88201c 100644
--- a/indra/test/test.cpp
+++ b/indra/test/test.cpp
@@ -514,8 +514,8 @@ int main(int argc, char **argv)
 #endif
 
 	ll_init_apr();
-	LLTrace::init();
 	
+	LLTrace::init();
 	apr_getopt_t* os = NULL;
 	if(APR_SUCCESS != apr_getopt_init(&os, gAPRPoolp, argc, argv))
 	{
-- 
cgit v1.2.3


From ae028e79872f166db8e514ca3b442c7807d6ebdb Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Thu, 11 Apr 2013 19:08:57 -0700
Subject: removed unused data structures

---
 indra/test/CMakeLists.txt        |   1 -
 indra/test/lluuidhashmap_tut.cpp | 455 ---------------------------------------
 2 files changed, 456 deletions(-)
 delete mode 100644 indra/test/lluuidhashmap_tut.cpp

(limited to 'indra/test')

diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt
index 816f1d7175..271b7fe647 100644
--- a/indra/test/CMakeLists.txt
+++ b/indra/test/CMakeLists.txt
@@ -52,7 +52,6 @@ set(test_SOURCE_FILES
     llstreamtools_tut.cpp
     lltemplatemessagebuilder_tut.cpp
     lltut.cpp
-    lluuidhashmap_tut.cpp
     message_tut.cpp
     test.cpp
     )
diff --git a/indra/test/lluuidhashmap_tut.cpp b/indra/test/lluuidhashmap_tut.cpp
deleted file mode 100644
index 9712a613f4..0000000000
--- a/indra/test/lluuidhashmap_tut.cpp
+++ /dev/null
@@ -1,455 +0,0 @@
-/** 
- * @file lluuidhashmap_tut.cpp
- * @author Adroit
- * @date 2007-02
- * @brief Test cases for LLUUIDHashMap
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#include <tut/tut.hpp>
-#include "linden_common.h"
-#include "lluuidhashmap.h"
-#include "llsdserialize.h"
-#include "lldir.h"
-#include "stringize.h"
-#include <iostream>
-#include <fstream>
-
-namespace tut
-{
-	class UUIDTableEntry
-	{
-	public:
-		UUIDTableEntry()
-		{
-			mID.setNull();
-			mValue = 0;
-		}
-		
-		UUIDTableEntry(const LLUUID& id, U32 value)
-		{
-			mID = id;
-			mValue = value;
-		}
-
-		~UUIDTableEntry(){};
-
-		static BOOL uuidEq(const LLUUID &uuid, const UUIDTableEntry &id_pair)
-		{
-			if (uuid == id_pair.mID)
-			{
-				return TRUE;
-			}
-			return FALSE;
-		}
-
-		const LLUUID& getID() { return mID; }
-		const U32& getValue() { return mValue; }
-
-	protected:
-		LLUUID	mID;
-		U32  mValue;
-	};
-
-	struct hashmap_test
-	{
-	};
-
-	typedef test_group<hashmap_test> hash_index_t;
-	typedef hash_index_t::object hash_index_object_t;
-	tut::hash_index_t tut_hash_index("hashmap_test");
-
-	// stress test
-	template<> template<>
-	void hash_index_object_t::test<1>()
-	{
-		set_test_name("stress test");
-		// As of 2012-10-10, I (nat) have observed sporadic failures of this
-		// test: "set/get did not work." The trouble is that since test data
-		// are randomly generated with every run, it is impossible to debug a
-		// test failure. One is left with the uneasy suspicion that
-		// LLUUID::generate() can sometimes produce duplicates even within the
-		// moderately small number requested here. Since rerunning the test
-		// generally allows it to pass, it's too easy to shrug and forget it.
-		// The following code is intended to support reproducing such test
-		// failures. The idea is that, on test failure, we save the generated
-		// data to a canonical filename in a temp directory. Then on every
-		// subsequent run, we check for that filename. If it exists, we reload
-		// that specific data rather than generating fresh data -- which
-		// should presumably reproduce the same test failure. But we inform
-		// the user that to resume normal (random) test runs, s/he need only
-		// delete that file. And since it's in a temp directory, sooner or
-		// later the system will clean it up anyway.
-		const char* tempvar = "TEMP";
-		const char* tempdir = getenv(tempvar); // Windows convention
-		if (! tempdir)
-		{
-			tempvar = "TMPDIR";
-			tempdir = getenv(tempvar); // Mac convention
-		}
-		if (! tempdir)
-		{
-			// reset tempvar to the first var we check; it's just a
-			// recommendation
-			tempvar = "TEMP";
-			tempdir = "/tmp";		// Posix in general
-		}
-		std::string savefile(gDirUtilp->add(tempdir, "lluuidhashmap_tut.save.txt"));
-		const int numElementsToCheck = 32*256*32;
-		std::vector<LLUUID> idList;
-		if ((! getenv("TEAMCITY_PROJECT_NAME")) && gDirUtilp->fileExists(savefile))
-		{
-			// This is not a TeamCity build, and we have saved data from a
-			// previous failed run. Reload that data.
-			std::ifstream inf(savefile.c_str());
-			if (! inf.is_open())
-			{
-				fail(STRINGIZE("Although save file '" << savefile << "' exists, it cannot be opened"));
-			}
-			std::string item;
-			while (std::getline(inf, item))
-			{
-				idList.push_back(LLUUID(item));
-			}
-			std::cout << "Reloaded " << idList.size() << " items from '" << savefile << "'";
-			if (idList.size() != numElementsToCheck)
-			{
-				std::cout << " (expected " << numElementsToCheck << ")";
-			}
-			std::cout << " -- delete this file to generate new data" << std::endl;
-		}
-		else
-		{
-			// This is a TeamCity build, or (normal case) savefile does not
-			// exist: regenerate idList from scratch.
-			for (int i = 0; i < numElementsToCheck; ++i)
-			{
-				LLUUID id;
-				id.generate();
-				idList.push_back(id);
-			}
-		}
-
-		LLUUIDHashMap<UUIDTableEntry, 32>	hashTable(UUIDTableEntry::uuidEq, UUIDTableEntry());
-		int i;
-		
-		for (i = 0; i < idList.size(); ++i)
-		{
-			UUIDTableEntry entry(idList[i], i);
-			hashTable.set(idList[i], entry);
-		}
-
-		try
-		{
-			for (i = 0; i < idList.size(); i++)
-			{
-				LLUUID idToCheck = idList[i];
-				UUIDTableEntry entryToCheck = hashTable.get(idToCheck);
-				ensure_equals(STRINGIZE("set/get ID (entry " << i << ")").c_str(),
-							  entryToCheck.getID(), idToCheck);
-				ensure_equals(STRINGIZE("set/get value (ID " << idToCheck << ")").c_str(),
-							  entryToCheck.getValue(), (size_t)i);
-			}
-
-			for (i = 0; i < idList.size(); i++)
-			{
-				LLUUID idToCheck = idList[i];
-				if (i % 2 != 0)
-				{
-					hashTable.remove(idToCheck);
-				}
-			}
-
-			for (i = 0; i < idList.size(); i++)
-			{
-				LLUUID idToCheck = idList[i];
-				ensure("remove or check did not work", (i % 2 == 0 && hashTable.check(idToCheck)) || (i % 2 != 0 && !hashTable.check(idToCheck)));
-			}
-		}
-		catch (const failure&)
-		{
-			// One of the above tests failed. Try to save idList to repro with
-			// a later run.
-			std::ofstream outf(savefile.c_str());
-			if (! outf.is_open())
-			{
-				// Sigh, don't use fail() here because we want to preserve
-				// the original test failure.
-				std::cout << "Cannot open file '" << savefile
-						  << "' to save data -- check and fix " << tempvar << std::endl;
-			}
-			else
-			{
-				// outf.is_open()
-				for (int i = 0; i < idList.size(); ++i)
-				{
-					outf << idList[i] << std::endl;
-				}
-				std::cout << "Saved " << idList.size() << " entries to '" << savefile
-						  << "' -- rerun test to debug with these" << std::endl;
-			}
-			// re-raise the same exception -- we WANT this test failure to
-			// be reported! We just needed to save the data on the way out.
-			throw;
-		}
-	}
-
-	// test removing all but one element. 
-	template<> template<>
-	void hash_index_object_t::test<2>()
-	{
-		LLUUIDHashMap<UUIDTableEntry, 2>	hashTable(UUIDTableEntry::uuidEq, UUIDTableEntry());
-		const int numElementsToCheck = 5;
-		std::vector<LLUUID> idList(numElementsToCheck*10);
-		int i;
-		
-		for (i = 0; i < numElementsToCheck; i++)
-		{
-			LLUUID id;
-			id.generate();
-			UUIDTableEntry entry(id, i);
-			hashTable.set(id, entry);
-			idList[i] = id;
-		}
-
-		ensure("getLength failed", hashTable.getLength() == numElementsToCheck);
-
-		// remove all but the last element
-		for (i = 0; i < numElementsToCheck-1; i++)
-		{
-			LLUUID idToCheck = idList[i];
-			hashTable.remove(idToCheck);
-		}
-
-		// there should only be one element left now.
-		ensure("getLength failed", hashTable.getLength() == 1);
-
-		for (i = 0; i < numElementsToCheck; i++)
-		{
-			LLUUID idToCheck = idList[i];
-			if (i != numElementsToCheck - 1)
-			{
-				ensure("remove did not work", hashTable.check(idToCheck)  == FALSE);
-			}
-			else
-			{
-				UUIDTableEntry entryToCheck = hashTable.get(idToCheck);
-				ensure("remove did not work", entryToCheck.getID() == idToCheck && entryToCheck.getValue() == (size_t)i);
-			}
-		}
-	}
-
-	// test overriding of value already set. 
-	template<> template<>
-	void hash_index_object_t::test<3>()
-	{
-		LLUUIDHashMap<UUIDTableEntry, 5>	hashTable(UUIDTableEntry::uuidEq, UUIDTableEntry());
-		const int numElementsToCheck = 10;
-		std::vector<LLUUID> idList(numElementsToCheck);
-		int i;
-		
-		for (i = 0; i < numElementsToCheck; i++)
-		{
-			LLUUID id;
-			id.generate();
-			UUIDTableEntry entry(id, i);
-			hashTable.set(id, entry);
-			idList[i] = id;
-		}
-
-		for (i = 0; i < numElementsToCheck; i++)
-		{
-			LLUUID id = idList[i];
-			// set new entry with value = i+numElementsToCheck
-			UUIDTableEntry entry(id, i+numElementsToCheck);
-			hashTable.set(id, entry);
-		}
-
-		for (i = 0; i < numElementsToCheck; i++)
-		{
-			LLUUID idToCheck = idList[i];
-			UUIDTableEntry entryToCheck = hashTable.get(idToCheck);
-			ensure("set/get did not work", entryToCheck.getID() == idToCheck && entryToCheck.getValue() == (size_t)(i+numElementsToCheck));
-		}
-	}
-
-	// test removeAll() 
-	template<> template<>
-	void hash_index_object_t::test<4>()
-	{
-		LLUUIDHashMap<UUIDTableEntry, 5>	hashTable(UUIDTableEntry::uuidEq, UUIDTableEntry());
-		const int numElementsToCheck = 10;
-		std::vector<LLUUID> idList(numElementsToCheck);
-		int i;
-		
-		for (i = 0; i < numElementsToCheck; i++)
-		{
-			LLUUID id;
-			id.generate();
-			UUIDTableEntry entry(id, i);
-			hashTable.set(id, entry);
-			idList[i] = id;
-		}
-
-		hashTable.removeAll();
-		ensure("removeAll failed", hashTable.getLength() == 0);
-	}
-
-
-	// test sparse map - force it by creating 256 entries that fall into 256 different nodes 
-	template<> template<>
-	void hash_index_object_t::test<5>()
-	{
-		LLUUIDHashMap<UUIDTableEntry, 2>	hashTable(UUIDTableEntry::uuidEq, UUIDTableEntry());
-		const int numElementsToCheck = 256;
-		std::vector<LLUUID> idList(numElementsToCheck);
-		int i;
-		
-		for (i = 0; i < numElementsToCheck; i++)
-		{
-			LLUUID id;
-			id.generate();
-			// LLUUIDHashMap uses mData[0] to pick the bucket
-			// overwrite mData[0] so that it ranges from 0 to 255
-			id.mData[0] = i; 
-			UUIDTableEntry entry(id, i);
-			hashTable.set(id, entry);
-			idList[i] = id;
-		}
-
-		for (i = 0; i < numElementsToCheck; i++)
-		{
-			LLUUID idToCheck = idList[i];
-			UUIDTableEntry entryToCheck = hashTable.get(idToCheck);
-			ensure("set/get did not work for sparse map", entryToCheck.getID() == idToCheck && entryToCheck.getValue() == (size_t)i);
-		}
-
-		for (i = 0; i < numElementsToCheck; i++)
-		{
-			LLUUID idToCheck = idList[i];
-			if (i % 2 != 0)
-			{
-				hashTable.remove(idToCheck);
-			}
-		}
-
-		for (i = 0; i < numElementsToCheck; i++)
-		{
-			LLUUID idToCheck = idList[i];
-			ensure("remove or check did not work for sparse map", (i % 2 == 0 && hashTable.check(idToCheck)) || (i % 2 != 0 && !hashTable.check(idToCheck)));
-		}
-	}
-
-	// iterator
-	template<> template<>
-	void hash_index_object_t::test<6>()
-	{
-		LLUUIDHashMap<UUIDTableEntry, 2>	hashTable(UUIDTableEntry::uuidEq, UUIDTableEntry());
-		LLUUIDHashMapIter<UUIDTableEntry, 2> hashIter(&hashTable);
-		const int numElementsToCheck = 256;
-		std::vector<LLUUID> idList(numElementsToCheck);
-		int i;
-		
-		for (i = 0; i < numElementsToCheck; i++)
-		{
-			LLUUID id;
-			id.generate();
-			// LLUUIDHashMap uses mData[0] to pick the bucket
-			// overwrite mData[0] so that it ranges from 0 to 255
-			// to create a sparse map
-			id.mData[0] = i; 
-			UUIDTableEntry entry(id, i);
-			hashTable.set(id, entry);
-			idList[i] = id;
-		}
-
-		hashIter.first();
-		int numElementsIterated = 0;
-		while(!hashIter.done())
-		{
-			numElementsIterated++;
-			UUIDTableEntry tableEntry = *hashIter;
-			LLUUID id = tableEntry.getID();
-			hashIter.next();
-			ensure("Iteration failed for sparse map", tableEntry.getValue() < (size_t)numElementsToCheck && idList[tableEntry.getValue()] ==  tableEntry.getID());
-		}
-
-		ensure("iteration count failed", numElementsIterated == numElementsToCheck);
-	}
-
-	// remove after middle of iteration
-	template<> template<>
-	void hash_index_object_t::test<7>()
-	{
-		LLUUIDHashMap<UUIDTableEntry, 2>	hashTable(UUIDTableEntry::uuidEq, UUIDTableEntry());
-		LLUUIDHashMapIter<UUIDTableEntry, 2> hashIter(&hashTable);
-		const int numElementsToCheck = 256;
-		std::vector<LLUUID> idList(numElementsToCheck);
-		int i;
-		
-		LLUUID uuidtoSearch;
-		for (i = 0; i < numElementsToCheck; i++)
-		{
-			LLUUID id;
-			id.generate();
-			// LLUUIDHashMap uses mData[0] to pick the bucket
-			// overwrite mData[0] so that it ranges from 0 to 255
-			// to create a sparse map
-			id.mData[0] = i; 
-			UUIDTableEntry entry(id, i);
-			hashTable.set(id, entry);
-			idList[i] = id;
-
-			// pick uuid somewhere in the middle
-			if (i == 5)
-			{
-				uuidtoSearch = id;
-			}
-		}
-
-		hashIter.first();
-		int numElementsIterated = 0;
-		while(!hashIter.done())
-		{
-			numElementsIterated++;
-			UUIDTableEntry tableEntry = *hashIter;
-			LLUUID id = tableEntry.getID();
-			if (uuidtoSearch == id)
-			{
-				break;
-			}
-			hashIter.next();
-		}
-
-		// current iterator implementation will not allow any remove operations
-		// until ALL elements have been iterated over. this seems to be 
-		// an unnecessary restriction. Iterator should have a method to
-		// reset() its state so that further operations (inckuding remove)
-		// can be performed on the HashMap without having to iterate thru 
-		// all the remaining nodes. 
-		
-//		 hashIter.reset();
-//		 hashTable.remove(uuidtoSearch);
-//		 ensure("remove after iteration reset failed", hashTable.check(uuidtoSearch) == FALSE);
-	}
-}
-- 
cgit v1.2.3


From 04bdc8ba83c297945dd60489c241b88adf892ff4 Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Mon, 1 Jul 2013 17:04:01 -0700
Subject: SH-4294 FIX Interesting: Statistics Texture cache hit rate is always
 0% also, removed LLTrace::init and cleanup removed derived class
 implementation of memory stat for LLMemTrackable is automatic now

---
 indra/test/test.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

(limited to 'indra/test')

diff --git a/indra/test/test.cpp b/indra/test/test.cpp
index 28de88201c..10f71a2843 100755
--- a/indra/test/test.cpp
+++ b/indra/test/test.cpp
@@ -41,6 +41,7 @@
 #include "stringize.h"
 #include "namedtempfile.h"
 #include "lltrace.h"
+#include "lltracethreadrecorder.h"
 
 #include "apr_pools.h"
 #include "apr_getopt.h"
@@ -483,6 +484,8 @@ void wouldHaveCrashed(const std::string& message)
 	tut::fail("llerrs message: " + message);
 }
 
+static LLTrace::ThreadRecorder* sMasterThreadRecorder = NULL;
+
 int main(int argc, char **argv)
 {
 	// The following line must be executed to initialize Google Mock
@@ -515,7 +518,11 @@ int main(int argc, char **argv)
 
 	ll_init_apr();
 	
-	LLTrace::init();
+	if (!sMasterThreadRecorder)
+	{
+		sMasterThreadRecorder = new LLTrace::ThreadRecorder();
+		LLTrace::set_master_thread_recorder(sMasterThreadRecorder);
+	}
 	apr_getopt_t* os = NULL;
 	if(APR_SUCCESS != apr_getopt_init(&os, gAPRPoolp, argc, argv))
 	{
-- 
cgit v1.2.3


From e740fcc959572a6faa2350a1e73cbddcef4cf30b Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Wed, 31 Jul 2013 10:23:18 -0700
Subject: BUILDFIX: removed usage of llversionserver.h

---
 indra/test/lltemplatemessagebuilder_tut.cpp | 7 +++----
 indra/test/message_tut.cpp                  | 7 +++----
 2 files changed, 6 insertions(+), 8 deletions(-)

(limited to 'indra/test')

diff --git a/indra/test/lltemplatemessagebuilder_tut.cpp b/indra/test/lltemplatemessagebuilder_tut.cpp
index 6c0b70edd2..381826658b 100755
--- a/indra/test/lltemplatemessagebuilder_tut.cpp
+++ b/indra/test/lltemplatemessagebuilder_tut.cpp
@@ -35,7 +35,6 @@
 #include "llquaternion.h"
 #include "lltemplatemessagebuilder.h"
 #include "lltemplatemessagereader.h"
-#include "llversionserver.h"
 #include "message_prehash.h"
 #include "u64.h"
 #include "v3dmath.h"
@@ -59,9 +58,9 @@ namespace tut
 				const F32 circuit_timeout=100;
 
 				start_messaging_system("notafile", 13035,
-									   LL_VERSION_MAJOR,
-									   LL_VERSION_MINOR,        
-									   LL_VERSION_PATCH,        
+									   1,
+									   0,        
+									   0,        
 									   FALSE,        
 									   "notasharedsecret",
 									   NULL,
diff --git a/indra/test/message_tut.cpp b/indra/test/message_tut.cpp
index d971b33475..4c0463c65c 100755
--- a/indra/test/message_tut.cpp
+++ b/indra/test/message_tut.cpp
@@ -32,7 +32,6 @@
 #include "llapr.h"
 #include "llmessageconfig.h"
 #include "llsdserialize.h"
-#include "llversionserver.h"
 #include "message.h"
 #include "message_prehash.h"
 
@@ -72,9 +71,9 @@ namespace tut
 
 			// currently test disconnected message system
 			start_messaging_system("notafile", 13035,
-								   LL_VERSION_MAJOR,
-								   LL_VERSION_MINOR,        
-								   LL_VERSION_PATCH,        
+								   1,
+								   0,        
+								   0,        
 								   FALSE,        
 								   "notasharedsecret",
 								   NULL,
-- 
cgit v1.2.3


From cc31b4ae7934010762b8aaaa7e190c74a1cd7820 Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Mon, 12 Aug 2013 20:05:16 -0700
Subject: SH-4399 FIX: Interesting: Texture console MB Bound 0/384 and texture
 queue bounces once per second SH-4346 FIX: Interesting: some integer
 Statistics are displayed as floating point after crossing region boundary
 made llerrs/infos/etc properly variadic wrt tags LL_INFOS("A", "B", "C")
 works, for example fixed unit tests remove llsimplestat

---
 indra/test/io.cpp                 | 58 +++++++++++++++++++--------------------
 indra/test/llblowfish_tut.cpp     |  4 +--
 indra/test/lliohttpserver_tut.cpp |  4 +--
 indra/test/llpermissions_tut.cpp  |  4 +--
 indra/test/llpipeutil.cpp         |  4 +--
 indra/test/llsaleinfo_tut.cpp     |  4 +--
 6 files changed, 39 insertions(+), 39 deletions(-)

(limited to 'indra/test')

diff --git a/indra/test/io.cpp b/indra/test/io.cpp
index 261422e9fc..97726c2b92 100755
--- a/indra/test/io.cpp
+++ b/indra/test/io.cpp
@@ -877,11 +877,11 @@ namespace tut
 	public:
 		double_construct()
 		{
-			llinfos << "constructed" << llendl;
+			LL_INFOS() << "constructed" << LL_ENDL;
 		}
 		~double_construct()
 		{
-			llinfos << "destroyed" << llendl;
+			LL_INFOS() << "destroyed" << LL_ENDL;
 		}
 	};
 	typedef test_group<double_construct> double_construct_test_group;
@@ -938,11 +938,11 @@ namespace tut
 	template<> template<>
 	void fitness_test_object::test<1>()
 	{
-		lldebugs << "fitness_test_object::test<1>()" << llendl;
+		LL_DEBUGS() << "fitness_test_object::test<1>()" << LL_ENDL;
 
 		// Set up the server
-		//lldebugs << "fitness_test_object::test<1> - setting up server."
-		//	 << llendl;
+		//LL_DEBUGS() << "fitness_test_object::test<1> - setting up server."
+		//	 << LL_ENDL;
 		LLPumpIO::chain_t chain;
 		typedef LLCloneIOFactory<LLPipeStringInjector> emitter_t;
 		emitter_t* emitter = new emitter_t(
@@ -957,18 +957,18 @@ namespace tut
 		mPump->addChain(chain, NEVER_CHAIN_EXPIRY_SECS);
 
 		// We need to tickle the pump a little to set up the listen()
-		//lldebugs << "fitness_test_object::test<1> - initializing server."
-		//	 << llendl;
+		//LL_DEBUGS() << "fitness_test_object::test<1> - initializing server."
+		//	 << LL_ENDL;
 		pump_loop(mPump, 0.1f);
 
 		// Set up the client
-		//lldebugs << "fitness_test_object::test<1> - connecting client."
-		//	 << llendl;
+		//LL_DEBUGS() << "fitness_test_object::test<1> - connecting client."
+		//	 << LL_ENDL;
 		LLSocket::ptr_t client = LLSocket::create(mPool, LLSocket::STREAM_TCP);
 		LLHost server_host("127.0.0.1", SERVER_LISTEN_PORT);
 		bool connected = client->blockingConnect(server_host);
 		ensure("Connected to server", connected);
-		lldebugs << "connected" << llendl;
+		LL_DEBUGS() << "connected" << LL_ENDL;
 
 		// We have connected, since the socket reader does not block,
 		// the first call to read data will return EAGAIN, so we need
@@ -988,7 +988,7 @@ namespace tut
 	template<> template<>
 	void fitness_test_object::test<2>()
 	{
-		lldebugs << "fitness_test_object::test<2>()" << llendl;
+		LL_DEBUGS() << "fitness_test_object::test<2>()" << LL_ENDL;
 
 		// Set up the server
 		LLPumpIO::chain_t chain;
@@ -1011,7 +1011,7 @@ namespace tut
 		LLHost server_host("127.0.0.1", SERVER_LISTEN_PORT);
 		bool connected = client->blockingConnect(server_host);
 		ensure("Connected to server", connected);
-		lldebugs << "connected" << llendl;
+		LL_DEBUGS() << "connected" << LL_ENDL;
 
 		// We have connected, since the socket reader does not block,
 		// the first call to read data will return EAGAIN, so we need
@@ -1031,7 +1031,7 @@ namespace tut
 	template<> template<>
 	void fitness_test_object::test<3>()
 	{
-		lldebugs << "fitness_test_object::test<3>()" << llendl;
+		LL_DEBUGS() << "fitness_test_object::test<3>()" << LL_ENDL;
 
 		// Set up the server
 		LLPumpIO::chain_t chain;
@@ -1054,7 +1054,7 @@ namespace tut
 		LLHost server_host("127.0.0.1", SERVER_LISTEN_PORT);
 		bool connected = client->blockingConnect(server_host);
 		ensure("Connected to server", connected);
-		lldebugs << "connected" << llendl;
+		LL_DEBUGS() << "connected" << LL_ENDL;
 
 		// We have connected, since the socket reader does not block,
 		// the first call to read data will return EAGAIN, so we need
@@ -1074,7 +1074,7 @@ namespace tut
 	template<> template<>
 	void fitness_test_object::test<4>()
 	{
-		lldebugs << "fitness_test_object::test<4>()" << llendl;
+		LL_DEBUGS() << "fitness_test_object::test<4>()" << LL_ENDL;
 
 		// Set up the server
 		LLPumpIO::chain_t chain;
@@ -1097,7 +1097,7 @@ namespace tut
 		LLHost server_host("127.0.0.1", SERVER_LISTEN_PORT);
 		bool connected = client->blockingConnect(server_host);
 		ensure("Connected to server", connected);
-		lldebugs << "connected" << llendl;
+		LL_DEBUGS() << "connected" << LL_ENDL;
 
 		// We have connected, since the socket reader does not block,
 		// the first call to read data will return EAGAIN, so we need
@@ -1133,18 +1133,18 @@ namespace tut
 		pump_loop(mPump, 0.1f);
 		U32 count = mPump->runningChains();
 		ensure_equals("server chain onboard", count, 1);
-		lldebugs << "** Server is up." << llendl;
+		LL_DEBUGS() << "** Server is up." << LL_ENDL;
 
 		// Set up the client
 		LLSocket::ptr_t client = LLSocket::create(mPool, LLSocket::STREAM_TCP);
 		LLHost server_host("127.0.0.1", SERVER_LISTEN_PORT);
 		bool connected = client->blockingConnect(server_host);
 		ensure("Connected to server", connected);
-		lldebugs << "connected" << llendl;
+		LL_DEBUGS() << "connected" << LL_ENDL;
 		pump_loop(mPump,0.1f);
 		count = mPump->runningChains();
 		ensure_equals("server chain onboard", count, 2);
-		lldebugs << "** Client is connected." << llendl;
+		LL_DEBUGS() << "** Client is connected." << LL_ENDL;
 
 		// We have connected, since the socket reader does not block,
 		// the first call to read data will return EAGAIN, so we need
@@ -1160,20 +1160,20 @@ namespace tut
 		pump_loop(mPump,0.1f);
 		count = mPump->runningChains();
 		// ensure_equals("client chain onboard", count, 3); commented out because it fails frequently - appears to be timing sensitive
-		lldebugs << "** request should have been sent." << llendl;
+		LL_DEBUGS() << "** request should have been sent." << LL_ENDL;
 
 		// pump for long enough the the client socket closes, and the
 		// server socket should not be closed yet.
 		pump_loop(mPump,0.2f);
 		count = mPump->runningChains();
 		ensure_equals("client chain timed out ", count, 2);
-		lldebugs << "** client chain should be closed." << llendl;
+		LL_DEBUGS() << "** client chain should be closed." << LL_ENDL;
 
 		// At this point, the socket should be closed by the timeout
 		pump_loop(mPump,1.0f);
 		count = mPump->runningChains();
 		ensure_equals("accepted socked close", count, 1);
-		lldebugs << "** Sleeper should have timed out.." << llendl;
+		LL_DEBUGS() << "** Sleeper should have timed out.." << LL_ENDL;
 	}
 }
 
@@ -1305,8 +1305,8 @@ namespace tut
 		LLSD request;
 		request = 1;
 		pump_loop(request);
-		//llinfos << "request: " << *request << llendl;
-		//llinfos << "response: " << *mResponse << llendl;
+		//LL_INFOS() << "request: " << *request << LL_ENDL;
+		//LL_INFOS() << "response: " << *mResponse << LL_ENDL;
 		ensure_equals("integer request response", mResponse.asInteger(), 1);
 	}
 
@@ -1559,7 +1559,7 @@ namespace tut
 		mResponse->getString(actual);
 		if(actual != expected)
 		{
-			//llwarns << "iteration " << i << llendl;
+			//LL_WARNS() << "iteration " << i << LL_ENDL;
 			std::ostringstream e_str;
 			std::string::iterator iter = expected.begin();
 			std::string::iterator end = expected.end();
@@ -1569,8 +1569,8 @@ namespace tut
 			}
 			e_str << std::endl;
 			llsd_serialize_string(e_str, expected);
-			llwarns << "expected size: " << expected.size() << llendl;
-			llwarns << "expected:	  " << e_str.str() << llendl;
+			LL_WARNS() << "expected size: " << expected.size() << LL_ENDL;
+			LL_WARNS() << "expected:	  " << e_str.str() << LL_ENDL;
 
 			std::ostringstream a_str;
 			iter = actual.begin();
@@ -1581,8 +1581,8 @@ namespace tut
 			}
 			a_str << std::endl;
 			llsd_serialize_string(a_str, actual);
-			llwarns << "actual size:	  " << actual.size() << llendl;
-			llwarns << "actual:		" << a_str.str() << llendl;
+			LL_WARNS() << "actual size:	  " << actual.size() << LL_ENDL;
+			LL_WARNS() << "actual:		" << a_str.str() << LL_ENDL;
 		}
 		ensure_equals("binary string request response", actual, expected);
 		delete request;
diff --git a/indra/test/llblowfish_tut.cpp b/indra/test/llblowfish_tut.cpp
index 2573cab81f..96e30f4e1e 100755
--- a/indra/test/llblowfish_tut.cpp
+++ b/indra/test/llblowfish_tut.cpp
@@ -65,14 +65,14 @@ namespace tut
 			}
 			if (!fp)
 			{
-				llwarns << "unabled to open " << filename << llendl;
+				LL_WARNS() << "unabled to open " << filename << LL_ENDL;
 				return false;
 			}
 
 			std::string good;
 			good.resize(256);
 			size_t got = fread(&good[0], 1, 256, fp);
-			lldebugs << "matchFile read " << got << llendl;
+			LL_DEBUGS() << "matchFile read " << got << LL_ENDL;
 			fclose(fp);
 			good.resize(got);
 		
diff --git a/indra/test/lliohttpserver_tut.cpp b/indra/test/lliohttpserver_tut.cpp
index 3fa5c8dd42..1513446788 100755
--- a/indra/test/lliohttpserver_tut.cpp
+++ b/indra/test/lliohttpserver_tut.cpp
@@ -321,8 +321,8 @@ namespace tut
 			stream << "<integer>42</integer>";
 		}
 		stream << "</array></llsd>";
-		llinfos << "HTTPServiceTestObject::test<7>"
-				<< stream.str().length() << llendl;
+		LL_INFOS() << "HTTPServiceTestObject::test<7>"
+				<< stream.str().length() << LL_ENDL;
 		std::string result = httpPOST("web/echo", stream.str());
 		ensure_starts_with("large echo status", result, "HTTP/1.0 200 OK\r\n");
 	}
diff --git a/indra/test/llpermissions_tut.cpp b/indra/test/llpermissions_tut.cpp
index bc2c87ba46..8d8d47a667 100755
--- a/indra/test/llpermissions_tut.cpp
+++ b/indra/test/llpermissions_tut.cpp
@@ -407,7 +407,7 @@ namespace tut
 		LLFILE* fp = LLFile::fopen("linden_file.dat","w+");
 		if(!fp)
 		{
-			llerrs << "file couldn't be opened\n" << llendl;
+			LL_ERRS() << "file couldn't be opened\n" << LL_ENDL;
 			return;
 		}
 		LLPermissions perm,perm1;
@@ -430,7 +430,7 @@ namespace tut
 		fp = LLFile::fopen("linden_file.dat","r+");
 		if(!fp)
 		{
-			llerrs << "file couldn't be opened\n" << llendl;
+			LL_ERRS() << "file couldn't be opened\n" << LL_ENDL;
 			return;
 		}
 		ensure("Permissions import failed", perm1.importFile(fp));
diff --git a/indra/test/llpipeutil.cpp b/indra/test/llpipeutil.cpp
index db76a370e0..bb706b58d5 100755
--- a/indra/test/llpipeutil.cpp
+++ b/indra/test/llpipeutil.cpp
@@ -170,13 +170,13 @@ LLIOPipe::EStatus LLIOSleeper::process_impl(
 {
 	if(!mRespond)
 	{
-		lldebugs << "LLIOSleeper::process_impl() sleeping." << llendl;
+		LL_DEBUGS() << "LLIOSleeper::process_impl() sleeping." << LL_ENDL;
 		mRespond = true;
 		static const F64 SLEEP_TIME = 2.0;
 		pump->sleepChain(SLEEP_TIME);
 		return STATUS_BREAK;
 	}
-	lldebugs << "LLIOSleeper::process_impl() responding." << llendl;
+	LL_DEBUGS() << "LLIOSleeper::process_impl() responding." << LL_ENDL;
 	LLBufferStream ostr(channels, buffer.get());
 	ostr << "huh? sorry, I was sleeping." << std::endl;
 	return STATUS_DONE;
diff --git a/indra/test/llsaleinfo_tut.cpp b/indra/test/llsaleinfo_tut.cpp
index 2488af1d7f..5f4d9186a8 100755
--- a/indra/test/llsaleinfo_tut.cpp
+++ b/indra/test/llsaleinfo_tut.cpp
@@ -111,7 +111,7 @@ namespace tut
 		LLFILE* fp = LLFile::fopen("linden_file.dat","w+");
 		if(!fp)
 		{
-			llerrs << "file could not be opened\n" << llendl;
+			LL_ERRS() << "file could not be opened\n" << LL_ENDL;
 			return;
 		}
 			
@@ -128,7 +128,7 @@ namespace tut
 		
 		if(!fp)
 		{
-			llerrs << "file coudnt be opened\n" << llendl;
+			LL_ERRS() << "file coudnt be opened\n" << LL_ENDL;
 			return;
 		}
 		
-- 
cgit v1.2.3


From d83c51a4e1923508e31f25576761f001d731ea93 Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Wed, 14 Aug 2013 21:58:30 -0700
Subject: BUILDFIX: converted platform-specific files over to new LL_INFOS, etc
 macros

---
 indra/test/lldatapacker_tut.cpp            | 4 ++--
 indra/test/llmessagetemplateparser_tut.cpp | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

(limited to 'indra/test')

diff --git a/indra/test/lldatapacker_tut.cpp b/indra/test/lldatapacker_tut.cpp
index cf2b7870ef..b403660c13 100755
--- a/indra/test/lldatapacker_tut.cpp
+++ b/indra/test/lldatapacker_tut.cpp
@@ -349,7 +349,7 @@ namespace tut
 		LLFILE* fp = LLFile::fopen(TEST_FILE_NAME, "w+");
 		if(!fp)
 		{
-			llerrs << "File couldnt be open" <<llendl;
+			LL_ERRS() << "File couldnt be open" << LL_ENDL;
 			return;
 		}
 
@@ -404,7 +404,7 @@ namespace tut
 		LLFILE* fp = LLFile::fopen(TEST_FILE_NAME,"w+");
 		if(!fp)
 		{
-			llerrs << "File couldnt be open" <<llendl;
+			LL_ERRS() << "File couldnt be open" << LL_ENDL;
 			return;
 		}
 
diff --git a/indra/test/llmessagetemplateparser_tut.cpp b/indra/test/llmessagetemplateparser_tut.cpp
index da6d229fb5..39f834a9fc 100755
--- a/indra/test/llmessagetemplateparser_tut.cpp
+++ b/indra/test/llmessagetemplateparser_tut.cpp
@@ -171,7 +171,7 @@ namespace tut
 
 		delete var;
 	
-		// *NOTE: the parsers call llerrs on invalid input, so we can't really
+		// *NOTE: the parsers call LL_ERRS() on invalid input, so we can't really
 		// test that  :-(
 	}
 
-- 
cgit v1.2.3


From a77f42494584537489410a5157179aaadf868935 Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Fri, 23 Aug 2013 13:41:51 -0700
Subject: BUILDFIX: fix for crashes in unit tests on mac and linux

---
 indra/test/manageapr.h | 46 ----------------------------------------------
 1 file changed, 46 deletions(-)
 delete mode 100755 indra/test/manageapr.h

(limited to 'indra/test')

diff --git a/indra/test/manageapr.h b/indra/test/manageapr.h
deleted file mode 100755
index 2452fb6ae4..0000000000
--- a/indra/test/manageapr.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * @file   manageapr.h
- * @author Nat Goodspeed
- * @date   2012-01-13
- * @brief  ManageAPR class for simple test programs
- * 
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Copyright (c) 2012, Linden Research, Inc.
- * $/LicenseInfo$
- */
-
-#if ! defined(LL_MANAGEAPR_H)
-#define LL_MANAGEAPR_H
-
-#include "llapr.h"
-#include <boost/noncopyable.hpp>
-
-/**
- * Declare a static instance of this class for dead-simple ll_init_apr() at
- * program startup, ll_cleanup_apr() at termination. This is recommended for
- * use only with simple test programs. Once you start introducing static
- * instances of other classes that depend on APR already being initialized,
- * the indeterminate static-constructor-order problem rears its ugly head.
- */
-class ManageAPR: public boost::noncopyable
-{
-public:
-    ManageAPR()
-    {
-        ll_init_apr();
-    }
-
-    ~ManageAPR()
-    {
-        ll_cleanup_apr();
-    }
-
-    static std::string strerror(apr_status_t rv)
-    {
-        char errbuf[256];
-        apr_strerror(rv, errbuf, sizeof(errbuf));
-        return errbuf;
-    }
-};
-
-#endif /* ! defined(LL_MANAGEAPR_H) */
-- 
cgit v1.2.3