diff options
Diffstat (limited to 'indra/test')
| -rw-r--r-- | indra/test/test.cpp | 68 | 
1 files changed, 2 insertions, 66 deletions
| diff --git a/indra/test/test.cpp b/indra/test/test.cpp index 1239b34d04..d1c65d6aa7 100644 --- a/indra/test/test.cpp +++ b/indra/test/test.cpp @@ -36,6 +36,7 @@  #include "linden_common.h"  #include "llerrorcontrol.h" +#include "llexception.h"  #include "lltut.h"  #include "chained_callback.h"  #include "stringize.h" @@ -68,13 +69,6 @@  #pragma warning (pop)  #endif -// On Mac, got: -// #error "Boost.Stacktrace requires `_Unwind_Backtrace` function. Define -// `_GNU_SOURCE` macro or `BOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED` if -// _Unwind_Backtrace is available without `_GNU_SOURCE`." -#define BOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED -#include <boost/stacktrace.hpp> -  #include <fstream>  void wouldHaveCrashed(const std::string& message); @@ -524,64 +518,6 @@ void wouldHaveCrashed(const std::string& message)  static LLTrace::ThreadRecorder* sMasterThreadRecorder = NULL; -// this is used in platform-generic code -- define outside #if LL_WINDOWS -struct Windows_SEH_exception: public std::runtime_error -{ -    Windows_SEH_exception(const std::string& what): std::runtime_error(what) {} -}; - -#if LL_WINDOWS - -static constexpr U32 STATUS_MSC_EXCEPTION = 0xE06D7363; // compiler specific -static constexpr U32 STATUS_STACK_FULL    = 0xC00000FD; - -U32 seh_filter(U32 code, struct _EXCEPTION_POINTERS*) -{ -    if (code == STATUS_MSC_EXCEPTION) -    { -        // C++ exception, go on -- but TUT is supposed to have caught those already?! -        return EXCEPTION_CONTINUE_SEARCH; -    } -    else -    { -        // This is a non-C++ exception, e.g. hardware check. -        // By the time the handler gets control, the stack has been unwound, -        // so report the stack trace now at filter() time. -        // Sadly, even though, at the time of this writing, stack overflow is -        // the problem we would most like to diagnose, calling another -        // function when the stack is already blown only terminates us faster. -        if (code != STATUS_STACK_FULL) -        { -            std::cerr << boost::stacktrace::stacktrace() << std::endl; -        } -        // pass control into the handler block -        return EXCEPTION_EXECUTE_HANDLER; -    } -} - -template <typename CALLABLE0, typename CALLABLE1> -void seh_catcher(CALLABLE0&& trycode, CALLABLE1&& handler) -{ -    __try -    { -        trycode(); -    } -    __except (seh_filter(GetExceptionCode(), GetExceptionInformation())) -    { -        handler(GetExceptionCode()); -    } -} - -#else  // not LL_WINDOWS - -template <typename CALLABLE0, typename CALLABLE1> -void seh_catcher(CALLABLE0&& trycode, CALLABLE1&&) -{ -    trycode(); -} - -#endif // not LL_WINDOWS -  int main(int argc, char **argv)  {      // The following line must be executed to initialize Google Mock @@ -734,7 +670,7 @@ int main(int argc, char **argv)              }          },          // __except -        [mycallback](U32 code) +        [mycallback](U32 code, const std::string& /*stacktrace*/)          {              static std::map<U32, const char*> codes = {                  { 0xC0000005, "Access Violation" }, | 
