TEST(PluginsTests, LoadPlugin) { #if !defined(LLVM_ENABLE_PLUGINS) // Disable the test if plugins are disabled. return; #endif auto PluginPath = LibPath(); ASSERT_NE("", PluginPath); Expected<PassPlugin> Plugin = PassPlugin::Load(PluginPath); ASSERT_TRUE(!!Plugin) << "Plugin path: " << PluginPath; ASSERT_EQ(TEST_PLUGIN_NAME, Plugin->getPluginName()); ASSERT_EQ(TEST_PLUGIN_VERSION, Plugin->getPluginVersion()); PassBuilder PB; ModulePassManager PM; ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, "plugin-pass"), Failed()); Plugin->registerPassBuilderCallbacks(PB); ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, "plugin-pass"), Succeeded()); }