diff options
Diffstat (limited to 'indra/test/lltut.h')
-rwxr-xr-x | indra/test/lltut.h | 85 |
1 files changed, 49 insertions, 36 deletions
diff --git a/indra/test/lltut.h b/indra/test/lltut.h index 243e869be7..9835565bb6 100755 --- a/indra/test/lltut.h +++ b/indra/test/lltut.h @@ -30,8 +30,6 @@ #define LL_LLTUT_H #include "is_approx_equal_fraction.h" // instead of llmath.h - -#include <tut/tut.hpp> #include <cstring> class LLDate; @@ -40,6 +38,55 @@ class LLURI; namespace tut { + void ensure_equals(const std::string& msg, + const LLDate& actual, const LLDate& expected); + + 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 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 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 +#if __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-function" +#endif +#include <tut/tut.hpp> +#if __clang__ +#pragma clang diagnostic pop +#endif + +// 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) { if(!is_approx_equal_fraction(actual, expected, frac_bits)) @@ -107,40 +154,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 |