diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2014-10-23 20:23:08 -0700 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2014-10-23 20:23:08 -0700 |
commit | 918e2b629bd3dadfbe5288c0d72d93bcca1b8cfe (patch) | |
tree | b5ae202882071bf8e954b5bcb875305e37d0dc41 | |
parent | 642c334efa2dbd0bafca5b0dbb11a986cd5ab4a9 (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.
-rwxr-xr-x | autobuild.xml | 4 | ||||
-rwxr-xr-x | indra/llcommon/tests/lldependencies_test.cpp | 46 | ||||
-rwxr-xr-x | indra/llcommon/tests/llstring_test.cpp | 4 | ||||
-rwxr-xr-x | indra/newview/tests/lllogininstance_test.cpp | 4 | ||||
-rwxr-xr-x | indra/test/lltut.cpp | 18 | ||||
-rwxr-xr-x | indra/test/lltut.h | 21 |
6 files changed, 42 insertions, 55 deletions
diff --git a/autobuild.xml b/autobuild.xml index a43aed5e60..9e665dad6f 100755 --- a/autobuild.xml +++ b/autobuild.xml @@ -2148,9 +2148,9 @@ <key>archive</key> <map> <key>hash</key> - <string>ff1ecca950d779721267ef854eb2d845</string> + <string>253519023e73d03fcb3feb2f7a2a8835</string> <key>url</key> - <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/tut_3p-update-tut/rev/295661/arch/Linux/installer/tut-2008.11.30-common-295661.tar.bz2</string> + <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/tut_3p-update-tut/rev/295891/arch/Linux/installer/tut-2008.11.30-common-295891.tar.bz2</string> </map> <key>name</key> <string>common</string> 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); |