diff --git a/llvm/utils/lit/lit/llvm/config.py b/llvm/utils/lit/lit/llvm/config.py --- a/llvm/utils/lit/lit/llvm/config.py +++ b/llvm/utils/lit/lit/llvm/config.py @@ -407,13 +407,13 @@ configuration's PATH.""" # If the override is specified in the environment, use it without # validation. + tool = None if search_env: tool = self.config.environment.get(search_env) - if tool: - return tool - # Otherwise look in the path. - tool = lit.util.which(name, self.config.environment['PATH']) + if not tool: + # Otherwise look in the path. + tool = lit.util.which(name, self.config.environment['PATH']) if required and not tool: message = "couldn't find '{}' program".format(name) diff --git a/llvm/utils/lit/tests/Inputs/use-tool-search-env/lit.cfg b/llvm/utils/lit/tests/Inputs/use-tool-search-env/lit.cfg new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/use-tool-search-env/lit.cfg @@ -0,0 +1,11 @@ +import lit.formats +config.name = 'search-env' +config.suffixes = ['.txt'] +config.test_format = lit.formats.ShTest() +config.test_source_root = None +config.test_exec_root = None +import lit.llvm +lit.llvm.initialize(lit_config, config) +import os.path +lit.llvm.llvm_config.with_environment('TOOL_LOCATION', os.path.dirname(__file__) + '/test.tool') +lit.llvm.llvm_config.use_llvm_tool('test-tool', search_env='TOOL_LOCATION') diff --git a/llvm/utils/lit/tests/Inputs/use-tool-search-env/test.tool b/llvm/utils/lit/tests/Inputs/use-tool-search-env/test.tool new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-tool-search-env/true.txt b/llvm/utils/lit/tests/Inputs/use-tool-search-env/true.txt new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/use-tool-search-env/true.txt @@ -0,0 +1 @@ +# RUN: true diff --git a/llvm/utils/lit/tests/use-tool-search-env.py b/llvm/utils/lit/tests/use-tool-search-env.py new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/use-tool-search-env.py @@ -0,0 +1,7 @@ +## Show that lit reports the path to tools picked up via the use_llvm_tool +## function when the tool is found via an environment variable. + +# RUN: %{lit} %{inputs}/use-tool-search-env 2>&1 | \ +# RUN: FileCheck %s -DDIR=%p + +# CHECK: note: using test-tool: [[DIR]]{{[\\/]}}Inputs{{[\\/]}}use-tool-search-env{{[\\/]}}test.tool