summaryrefslogtreecommitdiffstats
path: root/llvm/utils/lit/tests/shtest-env.py
Commit message (Collapse)AuthorAgeFilesLines
* [lit] Fix `not` calling internal commandsJoel E. Denny2019-11-051-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* [lit] Fix internal env calling envJoel E. Denny2019-11-011-3/+20
| | | | | | | | | | | | | | | | Without this patch, when using lit's internal shell, if `env` on a lit RUN line calls `env`, 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 `env` is available and behaves as expected, but it then breaks on other platforms. `env` calling `env` can make sense if one such `env` is within a lit substitution, as in D65156 and D65121. This patch ensures that lit executes both as internal commands. Reviewed By: probinson, mgorny, rnk Differential Revision: https://reviews.llvm.org/D65697
* [lit] Fix internal env calling other internal commandsJoel E. Denny2019-10-311-2/+35
| | | | | | | | | | | | | | | | | | Without this patch, when using lit's internal shell, if `env` on a lit RUN line calls `cd`, `mkdir`, or any of the other in-process shell builtins that lit implements, lit accidentally searches for the latter as an external executable. This patch puts such builtins in a map so that boilerplate for them need be implemented only once. This patch moves that handling after processing of `env` so that `env` calling such a builtin can be detected. Finally, because such calls appear to be useless, this patch takes the safe approach of diagnosing them rather than supporting them. Reviewed By: probinson, mgorny, rnk Differential Revision: https://reviews.llvm.org/D66506
* [lit] Diagnose insufficient args to internal envJoel E. Denny2019-08-221-1/+21
| | | | | | | | | | | | | Without this patch, failing to provide a subcommand to lit's internal `env` results in either a python `IndexError` or an attempt to execute the final `env` argument, such as `FOO=1`, as a command. This patch diagnoses those cases with a more helpful message. Reviewed By: stella.stamenova Differential Revision: https://reviews.llvm.org/D66482 llvm-svn: 369620
* [lit] Print internal env commandsJoel E. Denny2019-08-031-1/+21
| | | | | | | | | | | | Without this patch, the internal `env` command removes `env` and its args from the command line while parsing it. This patch modifies a copy instead so that the original command line is printed. Reviewed By: stella.stamenova, rnk Differential Revision: https://reviews.llvm.org/D65624 llvm-svn: 367752
* [lit] Actually run tests for internal env commandJoel E. Denny2019-08-031-0/+3
Put the main test script in the right directory, and fix a python bug in a local script. Reviewed By: stella.stamenova Differential Revision: https://reviews.llvm.org/D65623 llvm-svn: 367751
OpenPOWER on IntegriCloud