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.2.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.2.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.2.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.2.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.2.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. --- indra/llcommon/tests/llerror_test.cpp | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) (limited to 'indra/llcommon/tests') 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.2.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. --- indra/llcommon/tests/lldependencies_test.cpp | 46 +++++++++++++++++----------- indra/llcommon/tests/llstring_test.cpp | 4 +-- 2 files changed, 30 insertions(+), 20 deletions(-) (limited to 'indra/llcommon/tests') 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; -- cgit v1.2.3