Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/unittests/ExecutionEngine/Orc/GlobalMappingLayerTest.cpp
Show All 27 Lines | [](const std::string &Name, bool ExportedSymbolsOnly) -> JITSymbol { | ||||
if (Name == "bar") | if (Name == "bar") | ||||
return llvm::JITSymbol(0x4567, JITSymbolFlags::Exported); | return llvm::JITSymbol(0x4567, JITSymbolFlags::Exported); | ||||
return nullptr; | return nullptr; | ||||
}; | }; | ||||
GlobalMappingLayer<decltype(TestBaseLayer)> L(TestBaseLayer); | GlobalMappingLayer<decltype(TestBaseLayer)> L(TestBaseLayer); | ||||
// Test addModule interface. | // Test addModule interface. | ||||
int H = cantFail(L.addModule(nullptr, nullptr)); | int H = llvm_cantFail(L.addModule(nullptr, nullptr)); | ||||
EXPECT_EQ(H, 42) << "Incorrect result from addModule"; | EXPECT_EQ(H, 42) << "Incorrect result from addModule"; | ||||
// Test fall-through for missing symbol. | // Test fall-through for missing symbol. | ||||
auto FooSym = L.findSymbol("foo", true); | auto FooSym = L.findSymbol("foo", true); | ||||
EXPECT_FALSE(FooSym) << "Found unexpected symbol."; | EXPECT_FALSE(FooSym) << "Found unexpected symbol."; | ||||
// Test fall-through for symbol in base layer. | // Test fall-through for symbol in base layer. | ||||
auto BarSym = L.findSymbol("bar", true); | auto BarSym = L.findSymbol("bar", true); | ||||
EXPECT_EQ(cantFail(BarSym.getAddress()), | EXPECT_EQ(llvm_cantFail(BarSym.getAddress()), | ||||
static_cast<JITTargetAddress>(0x4567)) | static_cast<JITTargetAddress>(0x4567)) | ||||
<< "Symbol lookup fall-through failed."; | << "Symbol lookup fall-through failed."; | ||||
// Test setup of a global mapping. | // Test setup of a global mapping. | ||||
L.setGlobalMapping("foo", 0x0123); | L.setGlobalMapping("foo", 0x0123); | ||||
auto FooSym2 = L.findSymbol("foo", true); | auto FooSym2 = L.findSymbol("foo", true); | ||||
EXPECT_EQ(cantFail(FooSym2.getAddress()), | EXPECT_EQ(llvm_cantFail(FooSym2.getAddress()), | ||||
static_cast<JITTargetAddress>(0x0123)) | static_cast<JITTargetAddress>(0x0123)) | ||||
<< "Symbol mapping setup failed."; | << "Symbol mapping setup failed."; | ||||
// Test removal of a global mapping. | // Test removal of a global mapping. | ||||
L.eraseGlobalMapping("foo"); | L.eraseGlobalMapping("foo"); | ||||
auto FooSym3 = L.findSymbol("foo", true); | auto FooSym3 = L.findSymbol("foo", true); | ||||
EXPECT_FALSE(FooSym3) << "Symbol mapping removal failed."; | EXPECT_FALSE(FooSym3) << "Symbol mapping removal failed."; | ||||
} | } | ||||
} | } |