Fix PluginsTests failure on Windows buildbots by enabling it everywhere
authorReid Kleckner <rnk@google.com>
Wed, 25 Apr 2018 20:16:24 +0000 (20:16 +0000)
committerReid Kleckner <rnk@google.com>
Wed, 25 Apr 2018 20:16:24 +0000 (20:16 +0000)
lit is picking up a stale executable in the unittests tree, which is
failing on Windows.

To simplify the CMake and avoid problems like this in the future, now we
always compile the test, but the test exits successfully when plugins
are not enabled.

llvm-svn: 330867

llvm/unittests/Passes/CMakeLists.txt
llvm/unittests/Passes/PluginsTest.cpp

index a64f809..d26ee50 100644 (file)
@@ -1,26 +1,30 @@
 set(LLVM_LINK_COMPONENTS Support Passes Core)
 
+# If plugins are disabled, this test will disable itself at runtime. Otherwise,
+# reconfiguring with plugins disabled will leave behind a stale executable.
 if (LLVM_ENABLE_PLUGINS)
-  add_llvm_unittest(PluginsTests PluginsTest.cpp)
-  export_executable_symbols(PluginsTests)
+  add_definitions(-DLLVM_ENABLE_PLUGINS)
+endif()
 
-  add_library(TestPlugin MODULE TestPlugin.cxx)
+add_llvm_unittest(PluginsTests PluginsTest.cpp)
+export_executable_symbols(PluginsTests)
 
-  set_output_directory(TestPlugin
-    BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
-    LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
-    )
+add_library(TestPlugin MODULE TestPlugin.cxx)
 
-  set_target_properties(TestPlugin
-    PROPERTIES PREFIX ""
-    SUFFIX ".so"
-    )
+set_output_directory(TestPlugin
+  BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
+  LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
+  )
 
-  if (WIN32 OR CYGWIN OR LLVM_EXPORT_SYMBOLS_FOR_PLUGINS)
-    llvm_map_components_to_libnames(LLVM_DEPS ${LLVM_LINK_COMPONENTS})
-    target_link_libraries(TestPlugin ${LLVM_DEPS})
-  endif()
+set_target_properties(TestPlugin
+  PROPERTIES PREFIX ""
+  SUFFIX ".so"
+  )
 
-  add_dependencies(TestPlugin intrinsics_gen)
-  add_dependencies(PluginsTests TestPlugin)
+if (WIN32 OR CYGWIN OR LLVM_EXPORT_SYMBOLS_FOR_PLUGINS)
+  llvm_map_components_to_libnames(LLVM_DEPS ${LLVM_LINK_COMPONENTS})
+  target_link_libraries(TestPlugin ${LLVM_DEPS})
 endif()
+
+add_dependencies(TestPlugin intrinsics_gen)
+add_dependencies(PluginsTests TestPlugin)
index ad5c75c..8ec43d1 100644 (file)
@@ -37,6 +37,11 @@ static std::string LibPath(const std::string Name = "TestPlugin") {
 }
 
 TEST(PluginsTests, LoadPlugin) {
+#if !defined(LLVM_ENABLE_PLUGINS)
+  // Disable the test if plugins are disabled.
+  return;
+#endif
+
   auto PluginPath = LibPath();
   ASSERT_NE("", PluginPath);