#ifdef TESTS_BUILD #include #include "../CInterface/Core.hpp" #include "../extern/catch.hpp" #include "../src/Library/Exceptions/CreatureException.hpp" TEST_CASE("When throwing exception, what() is readable", "[Utilities][Exception]") { bool hasCaught = false; try { THROW("foobar"); } catch (const ArbUt::Exception& e) { hasCaught = true; INFO(e.what()); REQUIRE(std::string(e.what()) == "[ExceptionTests.cpp:10] foobar"); } REQUIRE(hasCaught); } TEST_CASE("C Interface exception", "[Utilities][Exception]") { ExceptionHandler::SetLastArbUtException("foo", ArbUt::Exception("foobar"), 1); REQUIRE(std::string(ExceptionHandler::GetLastException()) == "[foo] foobar"); #if !WINDOWS #ifndef DEBUG REQUIRE(std::string(ExceptionHandler::GetLastExceptionStacktrace()) != ""); #else REQUIRE(std::string(ExceptionHandler::GetLastExceptionStacktrace()) == "ExceptionTests.cpp[20] ____C_A_T_C_H____T_E_S_T____3()\n"); #endif #endif } #endif