12ae58431SJames Henderson## Show that lit reports the path of tools found via use_llvm_tool. 22ae58431SJames Henderson## Additionally show that use_llvm_tool uses in order of preference: 32ae58431SJames Henderson## 1) The path specified in an environment variable, 42ae58431SJames Henderson## 2) The LLVM tools build directory, 52ae58431SJames Henderson## 3) The PATH, if requested. 62ae58431SJames Henderson 72ae58431SJames Henderson# RUN: %{lit} %{inputs}/use-llvm-tool 2>&1 | \ 82ae58431SJames Henderson# RUN: FileCheck %s -DDIR=%p 92ae58431SJames Henderson 102ae58431SJames Henderson## The exact breakdown of cases is: 112ae58431SJames Henderson## Case | Env | Build Dir | PATH | 122ae58431SJames Henderson## 1 | / | X | N/S | <- Can be found via env 132ae58431SJames Henderson## 2 | X | / | N/S | <- Can be found via build dir if env specified 142ae58431SJames Henderson## 3 | N/S | / | N/S | <- Can be found via build dir 152ae58431SJames Henderson## 4 | N/S | X | / | <- Can be found via PATH, if requested 162ae58431SJames Henderson## 5 | N/S | X | N/S | <- Cannot be found via PATH, if not requested 172ae58431SJames Henderson## 6 | / | / | / | <- Env is preferred over build, PATH 182ae58431SJames Henderson## 7 | N/S | / | / | <- Build dir is preferred over PATH 192ae58431SJames Henderson## 8 | X | X | X | <- Say nothing if cannot be found if not required 20*3d2c9069SJames Henderson## 9 | N/S | override | N/S | <- Use specified search directory, instead of default directory 21*3d2c9069SJames Henderson## 10 | N/S | override | / | <- Use PATH if not in search directory 222ae58431SJames Henderson 232ae58431SJames Henderson## Check the exact path reported for the first case, but don't bother for the 242ae58431SJames Henderson## others. 252ae58431SJames Henderson# CHECK: note: using case1: [[DIR]]{{[\\/]}}Inputs{{[\\/]}}use-llvm-tool{{[\\/]}}env-case1 262ae58431SJames Henderson# CHECK-NEXT: note: using case2: {{.*}}build{{[\\/]}}case2 272ae58431SJames Henderson# CHECK-NEXT: note: using case3: {{.*}}build{{[\\/]}}case3 282ae58431SJames Henderson# CHECK-NEXT: note: using case4: {{.*}}path{{[\\/]}}case4 292ae58431SJames Henderson# CHECK-NOT: case5 302ae58431SJames Henderson# CHECK-NEXT: note: using case6: {{.*}}env-case6 312ae58431SJames Henderson# CHECK-NEXT: note: using case7: {{.*}}build{{[\\/]}}case7 322ae58431SJames Henderson# CHECK-NOT: case8 33*3d2c9069SJames Henderson# CHECK-NEXT: note: using case9: {{.*}}search2{{[\\/]}}case9 34*3d2c9069SJames Henderson# CHECK-NEXT: note: using case10: {{.*}}path{{[\\/]}}case10 352ae58431SJames Henderson 362ae58431SJames Henderson## Test that if required is True, lit errors if the tool is not found. 372ae58431SJames Henderson# RUN: not %{lit} %{inputs}/use-llvm-tool-required 2>&1 | \ 382ae58431SJames Henderson# RUN: FileCheck %s --check-prefix=ERROR 392ae58431SJames Henderson# ERROR: note: using found: {{.*}}found 402ae58431SJames Henderson# ERROR-NEXT: fatal: couldn't find 'not-found' program 41