#if ENABLE_UNIT_TESTS #include "../../../external/Catch/catch.hpp" #include #include "../../Clang/ClangSymbolParser.h" using namespace mapfileparser; TEST_CASE("ClangSymbolParser_ThrowsAnExceptionOnEmptyInput") { REQUIRE_THROWS_AS(ClangSymbolParser::Parse(""), std::runtime_error); } TEST_CASE("ClangSymbolParser_ParsersA32BitSymbol") { ClangSymbol clangSymbol = ClangSymbolParser::Parse(" 0x00001F40\t0x000000D0\t[ 3] _U3CRegisterObjectU3Ec__AnonStorey2__ctor_m12113"); REQUIRE(0x00001F40 == clangSymbol.symbol.start); REQUIRE(0x000000D0 == clangSymbol.symbol.length); REQUIRE("_U3CRegisterObjectU3Ec__AnonStorey2__ctor_m12113" == clangSymbol.symbol.name); REQUIRE(3 == clangSymbol.objectFileIndex); } TEST_CASE("ClangSymbolParser_ParsersA64BitSymbol") { ClangSymbol clangSymbol = ClangSymbolParser::Parse(" 0x100EC9264\t0x0000004C\t[709] __ZNK5Umbra11TomeContext10getGateMapEPKv"); REQUIRE(0x100EC9264 == clangSymbol.symbol.start); REQUIRE(0x0000004C == clangSymbol.symbol.length); REQUIRE("__ZNK5Umbra11TomeContext10getGateMapEPKv" == clangSymbol.symbol.name); REQUIRE(709 == clangSymbol.objectFileIndex); } #endif // ENABLE_UNIT_TESTS