From 98d8313847c51b415009c9131a0aed14380de1a6 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Wed, 22 Oct 2014 12:00:03 -0400 Subject: added skip to llerror_test of nested logging, noted in todo file --- indra/llcommon/tests/llerror_test.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'indra/llcommon/tests') diff --git a/indra/llcommon/tests/llerror_test.cpp b/indra/llcommon/tests/llerror_test.cpp index 3cefe83440..8084a05288 100755 --- a/indra/llcommon/tests/llerror_test.cpp +++ b/indra/llcommon/tests/llerror_test.cpp @@ -38,6 +38,7 @@ namespace { +# pragma clang diagnostic ignored "-Wunused-function" static bool fatalWasCalled; void fatalCall(const std::string&) { fatalWasCalled = true; } } @@ -383,8 +384,8 @@ namespace if (n1 == std::string::npos) { std::stringstream ss; - ss << message << ": " << "expected to find a copy of " << expected - << " in actual " << actual; + ss << message << ": " << "expected to find a copy of '" << expected + << "' in actual '" << actual << "'"; throw tut::failure(ss.str().c_str()); } } @@ -476,6 +477,7 @@ namespace tut // handle nested logging void ErrorTestObject::test<7>() { + skip("Fails on clang TODO"); outerLogger(); ensure_message_contains(0, "inside"); ensure_message_contains(1, "outside(moo)"); -- cgit v1.3 From 428adcb35c2d68700adfebfd14ab1dbae3af654e Mon Sep 17 00:00:00 2001 From: callum_linden Date: Wed, 22 Oct 2014 10:12:36 -0700 Subject: Update to build on Xcode 6.0 (fix unit tests): remove unused functions that trigger clang warnings --- indra/llcommon/tests/llerror_test.cpp | 13 ------------- 1 file changed, 13 deletions(-) (limited to 'indra/llcommon/tests') diff --git a/indra/llcommon/tests/llerror_test.cpp b/indra/llcommon/tests/llerror_test.cpp index a5aaff10c5..3cefe83440 100755 --- a/indra/llcommon/tests/llerror_test.cpp +++ b/indra/llcommon/tests/llerror_test.cpp @@ -36,14 +36,6 @@ #include "../test/lltut.h" -namespace -{ - void test_that_error_h_includes_enough_things_to_compile_a_message() - { - LL_INFOS() << "!" << LL_ENDL; - } -} - namespace { static bool fatalWasCalled; @@ -381,8 +373,6 @@ namespace }; std::string logFromNamespace(bool id) { return Foo::logFromNamespace(id); } - std::string logFromClassWithNoLogTypeMember(bool id) { ClassWithNoLogType c; return c.logFromMember(id); } - std::string logFromClassWithNoLogTypeStatic(bool id) { return ClassWithNoLogType::logFromStatic(id); } std::string logFromClassWithLogTypeMember(bool id) { ClassWithLogType c; return c.logFromMember(id); } std::string logFromClassWithLogTypeStatic(bool id) { return ClassWithLogType::logFromStatic(id); } @@ -435,9 +425,6 @@ namespace tut testLogName(mRecorder, logFromStatic); testLogName(mRecorder, logFromAnon); testLogName(mRecorder, logFromNamespace); - //testLogName(mRecorder, logFromClassWithNoLogTypeMember, "ClassWithNoLogType"); - //testLogName(mRecorder, logFromClassWithNoLogTypeStatic, "ClassWithNoLogType"); - // XXX: figure out what the exepcted response is for these testLogName(mRecorder, logFromClassWithLogTypeMember, "ClassWithLogType"); testLogName(mRecorder, logFromClassWithLogTypeStatic, "ClassWithLogType"); } -- cgit v1.3 From 0bcfb017cec463f6bf79efcc45754dbe6ddb20a2 Mon Sep 17 00:00:00 2001 From: callum_linden Date: Wed, 22 Oct 2014 11:03:00 -0700 Subject: Update to build on Xcode 6.0 (fix unit tests): skip llerror_test test for now - operator << issues on clang --- indra/llcommon/tests/llerror_test.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'indra/llcommon/tests') diff --git a/indra/llcommon/tests/llerror_test.cpp b/indra/llcommon/tests/llerror_test.cpp index 3cefe83440..2939ae1ece 100755 --- a/indra/llcommon/tests/llerror_test.cpp +++ b/indra/llcommon/tests/llerror_test.cpp @@ -476,6 +476,9 @@ namespace tut // handle nested logging void ErrorTestObject::test<7>() { +#if LL_DARWIN + skip("Skip known failure on clang and intelc due to operator << differences"); +#endif outerLogger(); ensure_message_contains(0, "inside"); ensure_message_contains(1, "outside(moo)"); -- cgit v1.3 From 221c521f23e7c661e0c36fcd7a8b40b9db18608f Mon Sep 17 00:00:00 2001 From: callum_linden Date: Wed, 22 Oct 2014 11:38:56 -0700 Subject: Update to build on Xcode 6.0 (fix unit tests): remove unused statement warning --- indra/llcommon/tests/lleventcoro_test.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'indra/llcommon/tests') diff --git a/indra/llcommon/tests/lleventcoro_test.cpp b/indra/llcommon/tests/lleventcoro_test.cpp index cb5e15eff2..2096807e53 100755 --- a/indra/llcommon/tests/lleventcoro_test.cpp +++ b/indra/llcommon/tests/lleventcoro_test.cpp @@ -94,7 +94,6 @@ using coroutines::coroutine; template bool match(Iter first, Iter last, std::string match) { std::string::iterator i = match.begin(); - i != match.end(); for(; (first != last) && (i != match.end()); ++i) { if (*first != *i) return false; -- cgit v1.3 From 04291ba319a6e68f2c2e9bd8e299878b93424452 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Wed, 22 Oct 2014 16:42:18 -0400 Subject: correct merge error in llerror_test.cpp --- indra/llcommon/tests/llerror_test.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'indra/llcommon/tests') diff --git a/indra/llcommon/tests/llerror_test.cpp b/indra/llcommon/tests/llerror_test.cpp index 8084a05288..febfa782ca 100755 --- a/indra/llcommon/tests/llerror_test.cpp +++ b/indra/llcommon/tests/llerror_test.cpp @@ -39,6 +39,14 @@ namespace { # pragma clang diagnostic ignored "-Wunused-function" + void test_that_error_h_includes_enough_things_to_compile_a_message() + { + LL_INFOS() << "!" << LL_ENDL; + } +} + +namespace +{ static bool fatalWasCalled; void fatalCall(const std::string&) { fatalWasCalled = true; } } -- cgit v1.3 From 9e9779d3f88a35bd9d3eb949b6fa08a36b505d5f Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Wed, 22 Oct 2014 21:20:10 -0400 Subject: Remove unit test case that relied on undefined order of evaluation in: 'cout << a() << b()' the order of evaluation of a() and b() is undefined. --- XCODE_6_UPGRADES_TODO.txt | 3 --- indra/llcommon/tests/llerror_test.cpp | 21 +++------------------ 2 files changed, 3 insertions(+), 21 deletions(-) (limited to 'indra/llcommon/tests') diff --git a/XCODE_6_UPGRADES_TODO.txt b/XCODE_6_UPGRADES_TODO.txt index 8f11590810..1330e33910 100644 --- a/XCODE_6_UPGRADES_TODO.txt +++ b/XCODE_6_UPGRADES_TODO.txt @@ -12,6 +12,3 @@ Weird folder name "build-darwin-i386/newview/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Second Life.app" - likely causes because those $() should be ${} for CMake? - No, it's something else - lots of occurences in build-darwin folder but where do they come from? .... libjpeg is placed in lib folder vs lib/release - change it to match others - -* test 7 fails in indra/llcommon/tests/llerror_test.cpp - added skip - may be a test infrastructure failure diff --git a/indra/llcommon/tests/llerror_test.cpp b/indra/llcommon/tests/llerror_test.cpp index 1ac72d13bf..fee9492618 100755 --- a/indra/llcommon/tests/llerror_test.cpp +++ b/indra/llcommon/tests/llerror_test.cpp @@ -453,11 +453,6 @@ namespace return "bar"; } - void uberLogger() - { - LL_INFOS() << "uber(" << outerLogger() << "," << innerLogger() << ")" << LL_ENDL; - } - class LogWhileLogging { public: @@ -485,25 +480,15 @@ namespace tut // handle nested logging void ErrorTestObject::test<7>() { -#if LL_DARWIN - skip("Skip known failure on clang and intelc due to operator << differences"); -#endif outerLogger(); ensure_message_contains(0, "inside"); ensure_message_contains(1, "outside(moo)"); ensure_message_count(2); - uberLogger(); - ensure_message_contains(2, "inside"); - ensure_message_contains(3, "inside"); - ensure_message_contains(4, "outside(moo)"); - ensure_message_contains(5, "uber(bar,moo)"); - ensure_message_count(6); - metaLogger(); - ensure_message_contains(6, "logging"); - ensure_message_contains(7, "meta(baz)"); - ensure_message_count(8); + ensure_message_contains(2, "logging"); + ensure_message_contains(3, "meta(baz)"); + ensure_message_count(4); } template<> template<> -- cgit v1.3 From 918e2b629bd3dadfbe5288c0d72d93bcca1b8cfe Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 23 Oct 2014 20:23:08 -0700 Subject: 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. --- autobuild.xml | 4 +-- indra/llcommon/tests/lldependencies_test.cpp | 46 +++++++++++++++++----------- indra/llcommon/tests/llstring_test.cpp | 4 +-- indra/newview/tests/lllogininstance_test.cpp | 4 +-- indra/test/lltut.cpp | 18 ++--------- indra/test/lltut.h | 21 +++---------- 6 files changed, 42 insertions(+), 55 deletions(-) (limited to 'indra/llcommon/tests') diff --git a/autobuild.xml b/autobuild.xml index a43aed5e60..9e665dad6f 100755 --- a/autobuild.xml +++ b/autobuild.xml @@ -2148,9 +2148,9 @@ archive hash - ff1ecca950d779721267ef854eb2d845 + 253519023e73d03fcb3feb2f7a2a8835 url - 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 + 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 name common 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) by conversion, e.g. for a function -// parameter -- but if you simply write StringList(list_of("etc.")), you get -// ambiguity errors. Shrug! -template -CONTAINER make(const CONTAINER& data) -{ - return data; -} - +/***************************************************************************** +* Display helpers: must be defined BEFORE lltut.h! +*****************************************************************************/ // Display an arbitary value as itself... template std::ostream& display(std::ostream& out, const T& value) @@ -113,6 +98,31 @@ std::ostream& operator<<(std::ostream& out, const std::set& 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) by conversion, e.g. for a function +// parameter -- but if you simply write StringList(list_of("etc.")), you get +// ambiguity errors. Shrug! +template +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 #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::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 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 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& actual, const std::vector& 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& actual, const std::vector& 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); -- cgit v1.3