diff --git a/llvm/utils/lit/tests/Inputs/use-tool-search-env/test.tool b/llvm/utils/lit/tests/Inputs/use-llvm-tool-required/found rename from llvm/utils/lit/tests/Inputs/use-tool-search-env/test.tool rename to llvm/utils/lit/tests/Inputs/use-llvm-tool-required/found diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool-required/found.exe b/llvm/utils/lit/tests/Inputs/use-llvm-tool-required/found.exe new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool-required/lit.cfg b/llvm/utils/lit/tests/Inputs/use-llvm-tool-required/lit.cfg new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/use-llvm-tool-required/lit.cfg @@ -0,0 +1,12 @@ +import lit.formats +config.name = 'use-llvm-tool-required' +config.suffixes = ['.txt'] +config.test_format = lit.formats.ShTest() +config.test_source_root = None +config.test_exec_root = None +import os.path +config.llvm_tools_dir = os.path.realpath(os.path.dirname(__file__)) +import lit.llvm +lit.llvm.initialize(lit_config, config) +lit.llvm.llvm_config.use_llvm_tool('found', required=True) +lit.llvm.llvm_config.use_llvm_tool('not-found', required=True) diff --git a/llvm/utils/lit/tests/Inputs/use-tool-search-env/true.txt b/llvm/utils/lit/tests/Inputs/use-llvm-tool-required/true.txt rename from llvm/utils/lit/tests/Inputs/use-tool-search-env/true.txt rename to llvm/utils/lit/tests/Inputs/use-llvm-tool-required/true.txt diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case2 b/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case2 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case2.exe b/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case2.exe new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case3 b/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case3 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case3.exe b/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case3.exe new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case6 b/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case6 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case6.exe b/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case6.exe new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case7 b/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case7 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case7.exe b/llvm/utils/lit/tests/Inputs/use-llvm-tool/build/case7.exe new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/env-case1 b/llvm/utils/lit/tests/Inputs/use-llvm-tool/env-case1 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/env-case6 b/llvm/utils/lit/tests/Inputs/use-llvm-tool/env-case6 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/lit.cfg b/llvm/utils/lit/tests/Inputs/use-llvm-tool/lit.cfg new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/use-llvm-tool/lit.cfg @@ -0,0 +1,22 @@ +import lit.formats +config.name = 'use-llvm-tool' +config.suffixes = ['.txt'] +config.test_format = lit.formats.ShTest() +config.test_source_root = None +config.test_exec_root = None +import os.path +this_dir = os.path.realpath(os.path.dirname(__file__)) +config.llvm_tools_dir = os.path.join(this_dir, 'build') +import lit.llvm +lit.llvm.initialize(lit_config, config) +lit.llvm.llvm_config.with_environment('CASE1', os.path.join(this_dir, 'env-case1')) +lit.llvm.llvm_config.with_environment('CASE6', os.path.join(this_dir, 'env-case6')) +lit.llvm.llvm_config.with_environment('PATH', os.path.join(this_dir, 'path'), append_path=True) +lit.llvm.llvm_config.use_llvm_tool('case1', search_env='CASE1') +lit.llvm.llvm_config.use_llvm_tool('case2', search_env='CASE2') +lit.llvm.llvm_config.use_llvm_tool('case3') +lit.llvm.llvm_config.use_llvm_tool('case4', use_installed=True) +lit.llvm.llvm_config.use_llvm_tool('case5') +lit.llvm.llvm_config.use_llvm_tool('case6', search_env='CASE6', use_installed=True) +lit.llvm.llvm_config.use_llvm_tool('case7', use_installed=True) +lit.llvm.llvm_config.use_llvm_tool('case8', use_installed=True) diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case4 b/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case4 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case4.exe b/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case4.exe new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case5 b/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case5 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case5.exe b/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case5.exe new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case6 b/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case6 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case6.exe b/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case6.exe new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case7 b/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case7 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case7.exe b/llvm/utils/lit/tests/Inputs/use-llvm-tool/path/case7.exe new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/use-llvm-tool/true.txt b/llvm/utils/lit/tests/Inputs/use-llvm-tool/true.txt new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/use-llvm-tool/true.txt @@ -0,0 +1 @@ +# RUN: true 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 deleted file mode 100644 --- a/llvm/utils/lit/tests/Inputs/use-tool-search-env/lit.cfg +++ /dev/null @@ -1,12 +0,0 @@ -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 -path = os.path.realpath(os.path.join(os.path.dirname(__file__), 'test.tool')) -lit.llvm.llvm_config.with_environment('TOOL_LOCATION', path) -lit.llvm.llvm_config.use_llvm_tool('test-tool', search_env='TOOL_LOCATION') diff --git a/llvm/utils/lit/tests/use-llvm-tool.py b/llvm/utils/lit/tests/use-llvm-tool.py new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/use-llvm-tool.py @@ -0,0 +1,36 @@ +## Show that lit reports the path of tools found via use_llvm_tool. +## Additionally show that use_llvm_tool uses in order of preference: +## 1) The path specified in an environment variable, +## 2) The LLVM tools build directory, +## 3) The PATH, if requested. + +# RUN: %{lit} %{inputs}/use-llvm-tool 2>&1 | \ +# RUN: FileCheck %s -DDIR=%p + +## The exact breakdown of cases is: +## Case | Env | Build Dir | PATH | +## 1 | / | X | N/S | <- Can be found via env +## 2 | X | / | N/S | <- Can be found via build dir if env specified +## 3 | N/S | / | N/S | <- Can be found via build dir +## 4 | N/S | X | / | <- Can be found via PATH, if requested +## 5 | N/S | X | N/S | <- Cannot be found via PATH, if not requested +## 6 | / | / | / | <- Env is preferred over build, PATH +## 7 | N/S | / | / | <- Build dir is preferred over PATH +## 8 | X | X | X | <- Say nothing if cannot be found if not required + +## Check the exact path reported for the first case, but don't bother for the +## others. +# CHECK: note: using case1: [[DIR]]{{[\\/]}}Inputs{{[\\/]}}use-llvm-tool{{[\\/]}}env-case1 +# CHECK-NEXT: note: using case2: {{.*}}build{{[\\/]}}case2 +# CHECK-NEXT: note: using case3: {{.*}}build{{[\\/]}}case3 +# CHECK-NEXT: note: using case4: {{.*}}path{{[\\/]}}case4 +# CHECK-NOT: case5 +# CHECK-NEXT: note: using case6: {{.*}}env-case6 +# CHECK-NEXT: note: using case7: {{.*}}build{{[\\/]}}case7 +# CHECK-NOT: case8 + +## Test that if required is True, lit errors if the tool is not found. +# RUN: not %{lit} %{inputs}/use-llvm-tool-required 2>&1 | \ +# RUN: FileCheck %s --check-prefix=ERROR +# ERROR: note: using found: {{.*}}found +# ERROR-NEXT: fatal: couldn't find 'not-found' program diff --git a/llvm/utils/lit/tests/use-tool-search-env.py b/llvm/utils/lit/tests/use-tool-search-env.py deleted file mode 100644 --- a/llvm/utils/lit/tests/use-tool-search-env.py +++ /dev/null @@ -1,7 +0,0 @@ -## 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