forked from OSchip/llvm-project
![]() Without this patch, when using lit's internal shell, if `not` on a lit RUN line calls `env`, `diff`, or any of the other in-process shell builtins that lit implements, lit accidentally searches for the latter as an external executable. What's worse is that works fine when a developer is testing on a platform where those executables are available and behave as expected, but it then breaks on other platforms. `not` seems useful for some builtins, such as `diff`, so this patch supports such uses. `not --crash` does not seem useful for builtins, so this patch diagnoses such uses. In all cases, this patch ensures shell builtins are found behind any sequence of `env` and `not` commands. `not` calling `env` calling an external command appears useful when the `env` and external command are part of a lit substitution, as in D65156. This patch supports that by looking through any sequence of `env` and `not` commands, building the environment from the `env`s, and storing the `not`s. The `not`s are then added back to the command line without the `env`s to execute externally. This avoids the need to replicate the `not` implementation, in particular the `--crash` option, in lit. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D66531 |
||
---|---|---|
.. | ||
env-args-last-is-assign.txt | ||
env-args-last-is-u-arg.txt | ||
env-args-last-is-u.txt | ||
env-args-nested-none.txt | ||
env-args-none.txt | ||
env-calls-cd.txt | ||
env-calls-colon.txt | ||
env-calls-echo.txt | ||
env-calls-env.txt | ||
env-calls-export.txt | ||
env-calls-mkdir.txt | ||
env-calls-not-builtin.txt | ||
env-calls-rm.txt | ||
env-u.txt | ||
env.txt | ||
lit.cfg | ||
mixed.txt | ||
print_environment.py |