1. [lit] Fix `not` calling internal commands (details)
Commit f1b4c4bfd0b55c3c0abbc73e1159117f8533aca3 by jdenny.ornl
[lit] Fix `not` calling internal commands
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:
The file was addedllvm/utils/lit/tests/
The file was modifiedllvm/utils/lit/tests/
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-args-none.txt
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-calls-colon.txt
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-calls-echo.txt
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/
The file was addedllvm/utils/lit/tests/Inputs/shtest-env/env-calls-not-builtin.txt
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-calls-cd.txt
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-calls-mkdir.txt
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/lit.cfg
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-calls-export.txt
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-calls-external.txt
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-calls-rm.txt
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-args-nested-none.txt
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-calls-diff.txt
The file was modifiedllvm/utils/lit/lit/
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-calls-env-builtin.txt
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-calls-diff-with-crash.txt
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-args-last-is-crash.txt