mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
[ORC] Add unit test for HasMaterializationSideEffectsOnly failure behavior.
This commit is contained in:
parent
f252e214b7
commit
4dfbee4abb
@ -110,7 +110,7 @@ TEST_F(CoreAPIsStandardTest, ResolveUnrequestedSymbol) {
|
||||
EXPECT_TRUE(Result.count(Foo)) << "Expected result for \"Foo\"";
|
||||
}
|
||||
|
||||
TEST_F(CoreAPIsStandardTest, MaterializationSideEffctsOnlyTest) {
|
||||
TEST_F(CoreAPIsStandardTest, MaterializationSideEffctsOnlyBasic) {
|
||||
// Test that basic materialization-side-effects-only symbols work as expected:
|
||||
// that they can be emitted without being resolved, that queries for them
|
||||
// don't return until they're emitted, and that they don't appear in query
|
||||
@ -147,6 +147,24 @@ TEST_F(CoreAPIsStandardTest, MaterializationSideEffctsOnlyTest) {
|
||||
EXPECT_TRUE(Result->empty()) << "Lookup result contained unexpected value";
|
||||
}
|
||||
|
||||
TEST_F(CoreAPIsStandardTest, MaterializationSideEffectsOnlyFailuresPersist) {
|
||||
// Test that when a MaterializationSideEffectsOnly symbol is failed it
|
||||
// remains in the failure state rather than vanishing.
|
||||
|
||||
cantFail(JD.define(std::make_unique<SimpleMaterializationUnit>(
|
||||
SymbolFlagsMap(
|
||||
{{Foo, JITSymbolFlags::Exported |
|
||||
JITSymbolFlags::MaterializationSideEffectsOnly}}),
|
||||
[&](MaterializationResponsibility R) { R.failMaterialization(); })));
|
||||
|
||||
EXPECT_THAT_EXPECTED(
|
||||
ES.lookup(makeJITDylibSearchOrder(&JD), SymbolLookupSet({Foo})),
|
||||
Failed());
|
||||
EXPECT_THAT_EXPECTED(
|
||||
ES.lookup(makeJITDylibSearchOrder(&JD), SymbolLookupSet({Foo})),
|
||||
Failed());
|
||||
}
|
||||
|
||||
TEST_F(CoreAPIsStandardTest, RemoveSymbolsTest) {
|
||||
// Test that:
|
||||
// (1) Missing symbols generate a SymbolsNotFound error.
|
||||
|
Loading…
Reference in New Issue
Block a user