Skip to content

Commit

Permalink
[Analysis] Only run plugins tests if plugins are actually enabled
Browse files Browse the repository at this point in the history
When plugins aren't enabled, don't try to run plugins tests. Don't
enable plugins unconditionally based on the platform, instead check
if LLVM shared library is actually being built which may not be the
case for every host configuration, even if the host itself supports
plugins.

This addresses test failures introduced by r360891/D59464.

Differential Revision: https://reviews.llvm.org/D62050

llvm-svn: 360991
  • Loading branch information
petrhosek committed May 17, 2019
1 parent ad7199f commit b7804ef
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 17 deletions.
4 changes: 2 additions & 2 deletions clang/test/Analysis/checker-plugins.c
@@ -1,9 +1,9 @@
// REQUIRES: plugins

// RUN: %clang_analyze_cc1 -verify %s \
// RUN: -load %llvmshlibdir/SampleAnalyzerPlugin%pluginext \
// RUN: -analyzer-checker='example.MainCallChecker'

// REQUIRES: plugins

// Test that the MainCallChecker example analyzer plugin loads and runs.

int main();
Expand Down
3 changes: 2 additions & 1 deletion clang/test/CMakeLists.txt
Expand Up @@ -24,7 +24,8 @@ llvm_canonicalize_cmake_booleans(
CLANG_ENABLE_STATIC_ANALYZER
ENABLE_BACKTRACES
HAVE_LIBZ
LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
LLVM_ENABLE_PER_TARGET_RUNTIME_DIR
LLVM_ENABLE_PLUGINS)

configure_lit_site_cfg(
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
Expand Down
8 changes: 1 addition & 7 deletions clang/test/lit.cfg.py
Expand Up @@ -85,13 +85,7 @@
os.path.join(config.clang_tools_dir, 'hmaptool'))))

# Plugins (loadable modules)
# TODO: This should be supplied by Makefile or autoconf.
if sys.platform in ['win32', 'cygwin']:
has_plugins = config.enable_shared
else:
has_plugins = True

if has_plugins and config.llvm_plugin_ext:
if config.has_plugins and config.llvm_plugin_ext:
config.available_features.add('plugins')

# Set available features we allow tests to conditionalize on.
Expand Down
1 change: 1 addition & 0 deletions clang/test/lit.site.cfg.py.in
Expand Up @@ -27,6 +27,7 @@ config.enable_backtrace = @ENABLE_BACKTRACES@
config.host_arch = "@HOST_ARCH@"
config.python_executable = "@PYTHON_EXECUTABLE@"
config.use_z3_solver = lit_config.params.get('USE_Z3_SOLVER', "@USE_Z3_SOLVER@")
config.has_plugins = @LLVM_ENABLE_PLUGINS@

# Support substitution of the tools and libs dirs with user parameters. This is
# used when we can't determine the tool dir at configuration time.
Expand Down
10 changes: 3 additions & 7 deletions llvm/cmake/modules/HandleLLVMOptions.cmake
Expand Up @@ -920,14 +920,10 @@ endif()

# Plugin support
# FIXME: Make this configurable.
if(WIN32 OR CYGWIN)
if(BUILD_SHARED_LIBS OR LLVM_BUILD_LLVM_DYLIB)
set(LLVM_ENABLE_PLUGINS ON)
else()
set(LLVM_ENABLE_PLUGINS OFF)
endif()
else()
if(BUILD_SHARED_LIBS OR LLVM_BUILD_LLVM_DYLIB)
set(LLVM_ENABLE_PLUGINS ON)
else()
set(LLVM_ENABLE_PLUGINS OFF)
endif()

# By default we should enable LLVM_ENABLE_IDE only for multi-configuration
Expand Down

0 comments on commit b7804ef

Please sign in to comment.