]> granicus.if.org Git - llvm/commit
[lit] Make internal diff work in pipelines
authorJoel E. Denny <jdenny.ornl@gmail.com>
Thu, 10 Oct 2019 17:39:24 +0000 (17:39 +0000)
committerJoel E. Denny <jdenny.ornl@gmail.com>
Thu, 10 Oct 2019 17:39:24 +0000 (17:39 +0000)
commit183d96f73d895992ed91aae2e6470a7cb2a78d09
tree74ccde5d74a36aac88f18bed8fe9e6f5096ed256
parent065cf2299737a5c95b43166f7a1466483145da07
[lit] Make internal diff work in pipelines

When using lit's internal shell, RUN lines like the following
accidentally execute an external `diff` instead of lit's internal
`diff`:

```
 # RUN: program | diff file -
 # RUN: not diff file1 file2 | FileCheck %s
```

Such cases exist now, in `clang/test/Analysis` for example.  We are
preparing patches to ensure lit's internal `diff` is called in such
cases, which will then fail because lit's internal `diff` cannot
currently be used in pipelines and doesn't recognize `-` as a
command-line option.

To enable pipelines, this patch moves lit's `diff` implementation into
an out-of-process script, similar to lit's `cat` implementation.  A
follow-up patch will implement `-` to mean stdin.

Reviewed By: probinson, stella.stamenova

Differential Revision: https://reviews.llvm.org/D66574

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@374388 91177308-0d34-0410-b5e6-96231b3b80d8
utils/lit/lit/TestRunner.py
utils/lit/lit/builtin_commands/diff.py [new file with mode: 0644]
utils/lit/tests/Inputs/shtest-shell/diff-error-0.txt [deleted file]
utils/lit/tests/Inputs/shtest-shell/diff-pipes.txt [new file with mode: 0644]
utils/lit/tests/shtest-shell.py