summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2014-10-23 20:23:08 -0700
committerNat Goodspeed <nat@lindenlab.com>2014-10-23 20:23:08 -0700
commit918e2b629bd3dadfbe5288c0d72d93bcca1b8cfe (patch)
treeb5ae202882071bf8e954b5bcb875305e37d0dc41 /indra
parent642c334efa2dbd0bafca5b0dbb11a986cd5ab4a9 (diff)
Bring in new TUT library build. Clean up ensure_equals() overloads.
The new TUT library build eliminates the ambiguity about ensure_equals(const char*, ...) versus ensure_equals(const std::string&, ...). Now it's all based on const std::string&. Remove pointless const char* overloads and ambiguous forwarding templates. With clang in Xcode 6, any new datatypes we intend to use with ensure_equals() must have operator<<(std::ostream&, datatype) declared BEFORE lltut.h #includes tut.hpp. Reorder code in certain test source files to guarantee that visibility.
Diffstat (limited to 'indra')
-rwxr-xr-xindra/llcommon/tests/lldependencies_test.cpp46
-rwxr-xr-xindra/llcommon/tests/llstring_test.cpp4
-rwxr-xr-xindra/newview/tests/lllogininstance_test.cpp4
-rwxr-xr-xindra/test/lltut.cpp18
-rwxr-xr-xindra/test/lltut.h21
5 files changed, 40 insertions, 53 deletions
diff --git a/indra/llcommon/tests/lldependencies_test.cpp b/indra/llcommon/tests/lldependencies_test.cpp
index 5395d785b6..b5e189a465 100755
--- a/indra/llcommon/tests/lldependencies_test.cpp
+++ b/indra/llcommon/tests/lldependencies_test.cpp
@@ -37,29 +37,14 @@
// associated header
#include "../lldependencies.h"
// other Linden headers
-#include "../test/lltut.h"
-
-using boost::assign::list_of;
#if LL_WINDOWS
#pragma warning (disable : 4675) // "resolved by ADL" -- just as I want!
#endif
-typedef LLDependencies<> StringDeps;
-typedef StringDeps::KeyList StringList;
-
-// We use the very cool boost::assign::list_of() construct to specify vectors
-// of strings inline. For reasons on which I'm not entirely clear, though, it
-// needs a helper function. You can use list_of() to construct an implicit
-// StringList (std::vector<std::string>) by conversion, e.g. for a function
-// parameter -- but if you simply write StringList(list_of("etc.")), you get
-// ambiguity errors. Shrug!
-template<typename CONTAINER>
-CONTAINER make(const CONTAINER& data)
-{
- return data;
-}
-
+/*****************************************************************************
+* Display helpers: must be defined BEFORE lltut.h!
+*****************************************************************************/
// Display an arbitary value as itself...
template<typename T>
std::ostream& display(std::ostream& out, const T& value)
@@ -113,6 +98,31 @@ std::ostream& operator<<(std::ostream& out, const std::set<ENTRY>& set)
return out;
}
+/*****************************************************************************
+* Now we can #include lltut.h
+*****************************************************************************/
+#include "../test/lltut.h"
+
+/*****************************************************************************
+* Other helpers
+*****************************************************************************/
+using boost::assign::list_of;
+
+typedef LLDependencies<> StringDeps;
+typedef StringDeps::KeyList StringList;
+
+// We use the very cool boost::assign::list_of() construct to specify vectors
+// of strings inline. For reasons on which I'm not entirely clear, though, it
+// needs a helper function. You can use list_of() to construct an implicit
+// StringList (std::vector<std::string>) by conversion, e.g. for a function
+// parameter -- but if you simply write StringList(list_of("etc.")), you get
+// ambiguity errors. Shrug!
+template<typename CONTAINER>
+CONTAINER make(const CONTAINER& data)
+{
+ return data;
+}
+
const std::string& extract_key(const LLDependencies<>::value_type& entry)
{
return entry.first;
diff --git a/indra/llcommon/tests/llstring_test.cpp b/indra/llcommon/tests/llstring_test.cpp
index 93d3968dbf..a7aa347222 100755
--- a/indra/llcommon/tests/llstring_test.cpp
+++ b/indra/llcommon/tests/llstring_test.cpp
@@ -27,11 +27,11 @@
*/
#include "linden_common.h"
-#include "../test/lltut.h"
#include <boost/assign/list_of.hpp>
#include "../llstring.h"
-#include "StringVec.h"
+#include "StringVec.h" // must come BEFORE lltut.h
+#include "../test/lltut.h"
using boost::assign::list_of;
diff --git a/indra/newview/tests/lllogininstance_test.cpp b/indra/newview/tests/lllogininstance_test.cpp
index adeb848e03..9ee6403739 100755
--- a/indra/newview/tests/lllogininstance_test.cpp
+++ b/indra/newview/tests/lllogininstance_test.cpp
@@ -488,7 +488,7 @@ namespace tut
template<> template<>
void lllogininstance_object::test<3>()
{
- skip();
+ skip("test fails with Xcode 6, skipping");
set_test_name("Test Mandatory Update User Accepts");
@@ -517,7 +517,7 @@ namespace tut
template<> template<>
void lllogininstance_object::test<4>()
{
- skip();
+ skip("test fails with Xcode 6, skipping");
set_test_name("Test Mandatory Update User Decline");
diff --git a/indra/test/lltut.cpp b/indra/test/lltut.cpp
index 2730fb34d7..5a8ee87afd 100755
--- a/indra/test/lltut.cpp
+++ b/indra/test/lltut.cpp
@@ -38,14 +38,14 @@
namespace tut
{
- void ensure_equals(const char* msg, const LLDate& actual,
+ void ensure_equals(const std::string& msg, const LLDate& actual,
const LLDate& expected)
{
ensure_equals(msg,
actual.secondsSinceEpoch(), expected.secondsSinceEpoch());
}
- void ensure_equals(const char* msg, const LLURI& actual,
+ void ensure_equals(const std::string& msg, const LLURI& actual,
const LLURI& expected)
{
ensure_equals(msg,
@@ -61,18 +61,12 @@ namespace tut
// if the LLSD::Binary type ever diverges from what we expect in lltut.h,
// that divergence will produce an error: no definition will match that
// declaration.
- void ensure_equals(const char* msg,
- const LLSD::Binary& actual, const LLSD::Binary& expected)
- {
- ensure_equals(std::string(msg? msg : ""), actual, expected);
- }
-
void ensure_equals(const std::string& msg,
const LLSD::Binary& actual, const LLSD::Binary& expected)
{
ensure_equals(msg + " size", actual.size(), expected.size());
- std::vector<U8>::const_iterator i, j;
+ LLSD::Binary::const_iterator i, j;
int k;
for (i = actual.begin(), j = expected.begin(), k = 0;
i != actual.end();
@@ -82,12 +76,6 @@ namespace tut
}
}
- void ensure_equals(const char* m, const LLSD& actual,
- const LLSD& expected)
- {
- ensure_equals(std::string(m? m : ""), actual, expected);
- }
-
void ensure_equals(const std::string& msg, const LLSD& actual,
const LLSD& expected)
{
diff --git a/indra/test/lltut.h b/indra/test/lltut.h
index 6cb670b2a3..b334fb51e2 100755
--- a/indra/test/lltut.h
+++ b/indra/test/lltut.h
@@ -38,35 +38,24 @@ class LLURI;
namespace tut
{
- template <class T,class Q>
void ensure_equals(const std::string& msg,
- const Q& actual,const T& expected)
- { ensure_equals(msg.c_str(), actual, expected); }
-
- void ensure_equals(const char* msg,
const LLDate& actual, const LLDate& expected);
- void ensure_equals(const char* msg,
+ void ensure_equals(const std::string& msg,
const LLURI& actual, const LLURI& expected);
// std::vector<U8> is the current definition of LLSD::Binary. Because
// we're only forward-declaring LLSD in this header file, we can't
// directly reference that nested type. If the build complains that
- // there's no definition for either of these declarations, it could be
- // that LLSD::Binary has changed, and that these declarations must be
- // adjusted to match.
- void ensure_equals(const char* msg,
- const std::vector<U8>& actual, const std::vector<U8>& expected);
-
+ // there's no definition for this declaration, it could be that
+ // LLSD::Binary has changed, and that this declaration must be adjusted to
+ // match.
void ensure_equals(const std::string& msg,
const std::vector<U8>& actual, const std::vector<U8>& expected);
- void ensure_equals(const char* msg,
- const LLSD& actual, const LLSD& expected);
-
void ensure_equals(const std::string& msg,
const LLSD& actual, const LLSD& expected);
-
+
void ensure_starts_with(const std::string& msg,
const std::string& actual, const std::string& expectedStart);