summaryrefslogtreecommitdiff
path: root/indra/test/lltut.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/test/lltut.h')
-rwxr-xr-xindra/test/lltut.h95
1 files changed, 55 insertions, 40 deletions
diff --git a/indra/test/lltut.h b/indra/test/lltut.h
index 5428be3719..6cb670b2a3 100755
--- a/indra/test/lltut.h
+++ b/indra/test/lltut.h
@@ -30,6 +30,60 @@
#define LL_LLTUT_H
#include "is_approx_equal_fraction.h" // instead of llmath.h
+#include <cstring>
+
+class LLDate;
+class LLSD;
+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,
+ 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);
+
+ 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);
+
+ void ensure_ends_with(const std::string& msg,
+ const std::string& actual, const std::string& expectedEnd);
+
+ void ensure_contains(const std::string& msg,
+ const std::string& actual, const std::string& expectedSubString);
+
+ void ensure_does_not_contain(const std::string& msg,
+ const std::string& actual, const std::string& expectedSubString);
+}
+
+// This is an odd place to #include an important contributor -- but the usual
+// rules are reversed here. Instead of the overloads above referencing tut.hpp
+// features, we need calls in tut.hpp template functions to dispatch to our
+// overloads declared above.
// turn off warnings about unused functions from clang for tut package
#pragma clang diagnostic push
@@ -37,12 +91,7 @@
#include <tut/tut.hpp>
#pragma clang diagnostic pop
-#include <cstring>
-
-class LLDate;
-class LLSD;
-class LLURI;
-
+// The functions BELOW this point actually consume tut.hpp functionality.
namespace tut
{
inline void ensure_approximately_equals(const char* msg, F64 actual, F64 expected, U32 frac_bits)
@@ -112,40 +161,6 @@ namespace tut
{
ensure_not_equals(NULL, actual, expected);
}
-
-
- 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,
- const LLURI& actual, const LLURI& expected);
-
- void ensure_equals(const char* 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);
-
- void ensure_ends_with(const std::string& msg,
- const std::string& actual, const std::string& expectedEnd);
-
- void ensure_contains(const std::string& msg,
- const std::string& actual, const std::string& expectedSubString);
-
- void ensure_does_not_contain(const std::string& msg,
- const std::string& actual, const std::string& expectedSubString);
}
-
#endif // LL_LLTUT_H