diff options
Diffstat (limited to 'indra/test/lltut.h')
-rwxr-xr-x | indra/test/lltut.h | 95 |
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 |