diff options
author | Joel E. Denny <jdenny.ornl@gmail.com> | 2019-10-17 14:02:42 +0000 |
---|---|---|
committer | Joel E. Denny <jdenny.ornl@gmail.com> | 2019-10-17 14:02:42 +0000 |
commit | 221e418f0c56d6b4a8b188fb4d8e75e21f7b0c8d (patch) | |
tree | beef09d791c1e77e76247d203b033812c2799b1c /llvm/utils/lit/tests/shtest-shell.py | |
parent | ffe2ec51702e1bcde4b92cad46719e61813c1635 (diff) | |
download | llvm-221e418f0c56d6b4a8b188fb4d8e75e21f7b0c8d.zip llvm-221e418f0c56d6b4a8b188fb4d8e75e21f7b0c8d.tar.gz llvm-221e418f0c56d6b4a8b188fb4d8e75e21f7b0c8d.tar.bz2 |
[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
llvm-svn: 375114
Diffstat (limited to 'llvm/utils/lit/tests/shtest-shell.py')
-rw-r--r-- | llvm/utils/lit/tests/shtest-shell.py | 78 |
1 files changed, 45 insertions, 33 deletions
diff --git a/llvm/utils/lit/tests/shtest-shell.py b/llvm/utils/lit/tests/shtest-shell.py index 1fc8b30..dd5bfbe 100644 --- a/llvm/utils/lit/tests/shtest-shell.py +++ b/llvm/utils/lit/tests/shtest-shell.py @@ -86,28 +86,20 @@ # CHECK: *** -# CHECK: FAIL: shtest-shell :: diff-error-0.txt -# CHECK: *** TEST 'shtest-shell :: diff-error-0.txt' FAILED *** -# CHECK: $ "diff" "diff-error-0.txt" "diff-error-0.txt" -# CHECK: # command stderr: -# CHECK: Unsupported: 'diff' cannot be part of a pipeline -# CHECK: error: command failed with exit status: 127 -# CHECK: *** - # CHECK: FAIL: shtest-shell :: diff-error-1.txt # CHECK: *** TEST 'shtest-shell :: diff-error-1.txt' FAILED *** # CHECK: $ "diff" "-B" "temp1.txt" "temp2.txt" # CHECK: # command stderr: # CHECK: Unsupported: 'diff': option -B not recognized -# CHECK: error: command failed with exit status: 127 +# CHECK: error: command failed with exit status: 1 # CHECK: *** # CHECK: FAIL: shtest-shell :: diff-error-2.txt # CHECK: *** TEST 'shtest-shell :: diff-error-2.txt' FAILED *** # CHECK: $ "diff" "temp.txt" # CHECK: # command stderr: -# CHECK: Error: missing or extra operand -# CHECK: error: command failed with exit status: 127 +# CHECK: Error: missing or extra operand +# CHECK: error: command failed with exit status: 1 # CHECK: *** # CHECK: FAIL: shtest-shell :: diff-error-3.txt @@ -134,18 +126,43 @@ # CHECK: *** TEST 'shtest-shell :: diff-error-5.txt' FAILED *** # CHECK: $ "diff" # CHECK: # command stderr: -# CHECK: Error: missing or extra operand -# CHECK: error: command failed with exit status: 127 +# CHECK: Error: missing or extra operand +# CHECK: error: command failed with exit status: 1 # CHECK: *** # CHECK: FAIL: shtest-shell :: diff-error-6.txt # CHECK: *** TEST 'shtest-shell :: diff-error-6.txt' FAILED *** # CHECK: $ "diff" # CHECK: # command stderr: -# CHECK: Error: missing or extra operand -# CHECK: error: command failed with exit status: 127 +# CHECK: Error: missing or extra operand +# CHECK: error: command failed with exit status: 1 +# CHECK: *** + + +# CHECK: FAIL: shtest-shell :: diff-pipes.txt + +# CHECK: *** TEST 'shtest-shell :: diff-pipes.txt' FAILED *** + +# CHECK: $ "diff" "{{[^"]*}}.foo" "{{[^"]*}}.foo" +# CHECK-NOT: note +# CHECK-NOT: error +# CHECK: $ "FileCheck" +# CHECK-NOT: note +# CHECK-NOT: error + +# CHECK: $ "diff" "-u" "{{[^"]*}}.foo" "{{[^"]*}}.bar" +# CHECK: note: command had no output on stdout or stderr +# CHECK: error: command failed with exit status: 1 +# CHECK: $ "FileCheck" +# CHECK-NOT: note +# CHECK-NOT: error +# CHECK: $ "true" + +# CHECK: $ "false" + # CHECK: *** + # CHECK: FAIL: shtest-shell :: diff-r-error-0.txt # CHECK: *** TEST 'shtest-shell :: diff-r-error-0.txt' FAILED *** # CHECK: $ "diff" "-r" @@ -255,23 +272,6 @@ # CHECK: *** -# CHECK: FAIL: shtest-shell :: diff-unified-error-0.txt -# CHECK: *** TEST 'shtest-shell :: diff-unified-error-0.txt' FAILED *** -# CHECK: $ "diff" "-U" "30.1" "{{[^"]*}}" "{{[^"]*}}" -# CHECK: # command stderr: -# CHECK: Error: invalid '-U' argument: 30.1 -# CHECK: error: command failed with exit status: 127 -# CHECK: *** - -# CHECK: FAIL: shtest-shell :: diff-unified-error-1.txt -# CHECK: *** TEST 'shtest-shell :: diff-unified-error-1.txt' FAILED *** -# CHECK: $ "diff" "-U-1" "{{[^"]*}}" "{{[^"]*}}" -# CHECK: # command stderr: -# CHECK: Error: invalid '-U' argument: -1 -# CHECK: error: command failed with exit status: 127 -# CHECK: *** - - # CHECK: FAIL: shtest-shell :: diff-unified.txt # CHECK: *** TEST 'shtest-shell :: diff-unified.txt' FAILED *** @@ -330,6 +330,18 @@ # CHECK-NEXT: error: command failed with exit status: 1 # CHECK-NEXT: $ "true" +# CHECK: $ "diff" "-U" "30.1" "{{[^"]*}}" "{{[^"]*}}" +# CHECK: # command stderr: +# CHECK: Error: invalid '-U' argument: 30.1 +# CHECK: error: command failed with exit status: 1 +# CHECK: $ "true" + +# CHECK: $ "diff" "-U-1" "{{[^"]*}}" "{{[^"]*}}" +# CHECK: # command stderr: +# CHECK: Error: invalid '-U' argument: -1 +# CHECK: error: command failed with exit status: 1 +# CHECK: $ "true" + # CHECK: $ "false" # CHECK: *** @@ -414,4 +426,4 @@ # CHECK: PASS: shtest-shell :: sequencing-0.txt # CHECK: XFAIL: shtest-shell :: sequencing-1.txt # CHECK: PASS: shtest-shell :: valid-shell.txt -# CHECK: Failing Tests (32) +# CHECK: Failing Tests (30) |