
These directives define per-test lit substitutions. The concept was discussed at <https://discourse.llvm.org/t/iterating-lit-run-lines/62596/10>. For example, the following directives can be inserted into a test file to define `%{cflags}` and `%{fcflags}` substitutions with empty initial values, which serve as the parameters of another newly defined `%{check}` substitution: ``` // DEFINE: %{cflags} = // DEFINE: %{fcflags} = // DEFINE: %{check} = %clang_cc1 %{cflags} -emit-llvm -o - %s | \ // DEFINE: FileCheck %{fcflags} %s ``` The following directives then redefine the parameters before each use of `%{check}`: ``` // REDEFINE: %{cflags} = -foo // REDEFINE: %{fcflags} = -check-prefix=FOO // RUN: %{check} // REDEFINE: %{cflags} = -bar // REDEFINE: %{fcflags} = -check-prefix=BAR // RUN: %{check} ``` Of course, `%{check}` would typically be more elaborate, increasing the benefit of the reuse. One issue is that the strings `DEFINE:` and `REDEFINE:` already appear in 5 tests. This patch adjusts those tests not to use those strings. Our prediction is that, in the vast majority of cases, if a test author mistakenly uses one of those strings for another purpose, the text appearing after the string will not happen to have the syntax required for these directives. Thus, the test author will discover the mistake immediately when lit reports the syntax error. This patch also expands the documentation on existing lit substitution behavior. Reviewed By: jhenderson, MaskRay, awarzynski Differential Revision: https://reviews.llvm.org/D132513
597 lines
17 KiB
Python
597 lines
17 KiB
Python
# Check the internal shell handling component of the ShTest format.
|
|
|
|
# RUN: not %{lit} -v %{inputs}/shtest-shell > %t.out
|
|
# FIXME: Temporarily dump test output so we can debug failing tests on
|
|
# buildbots.
|
|
# RUN: cat %t.out
|
|
# RUN: FileCheck --input-file %t.out %s
|
|
#
|
|
# Test again in non-UTF shell to catch potential errors with python 2 seen
|
|
# on stdout-encoding.txt
|
|
# RUN: env PYTHONIOENCODING=ascii not %{lit} -a %{inputs}/shtest-shell > %t.ascii.out
|
|
# FIXME: Temporarily dump test output so we can debug failing tests on
|
|
# buildbots.
|
|
# RUN: cat %t.ascii.out
|
|
# RUN: FileCheck --input-file %t.ascii.out %s
|
|
#
|
|
# END.
|
|
|
|
# CHECK: -- Testing:
|
|
|
|
# CHECK: FAIL: shtest-shell :: cat-error-0.txt
|
|
# CHECK: *** TEST 'shtest-shell :: cat-error-0.txt' FAILED ***
|
|
# CHECK: $ "cat" "-b" "temp1.txt"
|
|
# CHECK: # command stderr:
|
|
# CHECK: Unsupported: 'cat': option -b not recognized
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: cat-error-1.txt
|
|
# CHECK: *** TEST 'shtest-shell :: cat-error-1.txt' FAILED ***
|
|
# CHECK: $ "cat" "temp1.txt"
|
|
# CHECK: # command stderr:
|
|
# CHECK: [Errno 2] No such file or directory: 'temp1.txt'
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: colon-error.txt
|
|
# CHECK: *** TEST 'shtest-shell :: colon-error.txt' FAILED ***
|
|
# CHECK: $ ":"
|
|
# CHECK: # command stderr:
|
|
# CHECK: Unsupported: ':' cannot be part of a pipeline
|
|
# CHECK: error: command failed with exit status: 127
|
|
# CHECK: ***
|
|
|
|
# CHECK: PASS: shtest-shell :: continuations.txt
|
|
|
|
# CHECK: PASS: shtest-shell :: dev-null.txt
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-b.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-b.txt' FAILED ***
|
|
# CHECK: $ "diff" "-b" "{{[^"]*}}.0" "{{[^"]*}}.1"
|
|
# CHECK: # command output:
|
|
# CHECK: 1,2
|
|
# CHECK-NEXT: {{^ }}f o o
|
|
# CHECK-NEXT: ! b a r
|
|
# CHECK-NEXT: ---
|
|
# CHECK-NEXT: {{^ }}f o o
|
|
# CHECK-NEXT: ! bar
|
|
# CHECK-EMPTY:
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: ***
|
|
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-encodings.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-encodings.txt' FAILED ***
|
|
|
|
# CHECK: $ "diff" "-u" "diff-in.bin" "diff-in.bin"
|
|
# CHECK-NOT: error
|
|
|
|
# CHECK: $ "diff" "-u" "diff-in.utf16" "diff-in.bin"
|
|
# CHECK: # command output:
|
|
# CHECK-NEXT: ---
|
|
# CHECK-NEXT: +++
|
|
# CHECK-NEXT: @@
|
|
# CHECK-NEXT: {{^ .f.o.o.$}}
|
|
# CHECK-NEXT: {{^-.b.a.r.$}}
|
|
# CHECK-NEXT: {{^\+.b.a.r.}}
|
|
# CHECK-NEXT: {{^ .b.a.z.$}}
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: $ "true"
|
|
|
|
# CHECK: $ "diff" "-u" "diff-in.utf8" "diff-in.bin"
|
|
# CHECK: # command output:
|
|
# CHECK-NEXT: ---
|
|
# CHECK-NEXT: +++
|
|
# CHECK-NEXT: @@
|
|
# CHECK-NEXT: -foo
|
|
# CHECK-NEXT: -bar
|
|
# CHECK-NEXT: -baz
|
|
# CHECK-NEXT: {{^\+.f.o.o.$}}
|
|
# CHECK-NEXT: {{^\+.b.a.r.}}
|
|
# CHECK-NEXT: {{^\+.b.a.z.$}}
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: $ "true"
|
|
|
|
# CHECK: $ "diff" "-u" "diff-in.bin" "diff-in.utf8"
|
|
# CHECK: # command output:
|
|
# CHECK-NEXT: ---
|
|
# CHECK-NEXT: +++
|
|
# CHECK-NEXT: @@
|
|
# CHECK-NEXT: {{^\-.f.o.o.$}}
|
|
# CHECK-NEXT: {{^\-.b.a.r.}}
|
|
# CHECK-NEXT: {{^\-.b.a.z.$}}
|
|
# CHECK-NEXT: +foo
|
|
# CHECK-NEXT: +bar
|
|
# CHECK-NEXT: +baz
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: $ "true"
|
|
|
|
# CHECK: $ "cat" "diff-in.bin"
|
|
# CHECK-NOT: error
|
|
# CHECK: $ "diff" "-u" "-" "diff-in.bin"
|
|
# CHECK-NOT: error
|
|
|
|
# CHECK: $ "cat" "diff-in.bin"
|
|
# CHECK-NOT: error
|
|
# CHECK: $ "diff" "-u" "diff-in.bin" "-"
|
|
# CHECK-NOT: error
|
|
|
|
# CHECK: $ "cat" "diff-in.bin"
|
|
# CHECK-NOT: error
|
|
# CHECK: $ "diff" "-u" "diff-in.utf16" "-"
|
|
# CHECK: # command output:
|
|
# CHECK-NEXT: ---
|
|
# CHECK-NEXT: +++
|
|
# CHECK-NEXT: @@
|
|
# CHECK-NEXT: {{^ .f.o.o.$}}
|
|
# CHECK-NEXT: {{^-.b.a.r.$}}
|
|
# CHECK-NEXT: {{^\+.b.a.r.}}
|
|
# CHECK-NEXT: {{^ .b.a.z.$}}
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: $ "true"
|
|
|
|
# CHECK: $ "cat" "diff-in.bin"
|
|
# CHECK-NOT: error
|
|
# CHECK: $ "diff" "-u" "diff-in.utf8" "-"
|
|
# CHECK: # command output:
|
|
# CHECK-NEXT: ---
|
|
# CHECK-NEXT: +++
|
|
# CHECK-NEXT: @@
|
|
# CHECK-NEXT: -foo
|
|
# CHECK-NEXT: -bar
|
|
# CHECK-NEXT: -baz
|
|
# CHECK-NEXT: {{^\+.f.o.o.$}}
|
|
# CHECK-NEXT: {{^\+.b.a.r.}}
|
|
# CHECK-NEXT: {{^\+.b.a.z.$}}
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: $ "true"
|
|
|
|
# CHECK: $ "diff" "-u" "-" "diff-in.utf8"
|
|
# CHECK: # command output:
|
|
# CHECK-NEXT: ---
|
|
# CHECK-NEXT: +++
|
|
# CHECK-NEXT: @@
|
|
# CHECK-NEXT: {{^\-.f.o.o.$}}
|
|
# CHECK-NEXT: {{^\-.b.a.r.}}
|
|
# CHECK-NEXT: {{^\-.b.a.z.$}}
|
|
# CHECK-NEXT: +foo
|
|
# CHECK-NEXT: +bar
|
|
# CHECK-NEXT: +baz
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: $ "true"
|
|
|
|
# CHECK: $ "false"
|
|
|
|
# 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: 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: 1
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-error-3.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-error-3.txt' FAILED ***
|
|
# CHECK: $ "diff" "temp.txt" "temp1.txt"
|
|
# CHECK: # command stderr:
|
|
# CHECK: Error: 'diff' command failed
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-error-4.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-error-4.txt' FAILED ***
|
|
# CHECK: Exit Code: 1
|
|
# CHECK: # command output:
|
|
# CHECK: diff-error-4.txt.tmp
|
|
# CHECK: diff-error-4.txt.tmp1
|
|
# CHECK: *** 1 ****
|
|
# CHECK: ! hello-first
|
|
# CHECK: --- 1 ----
|
|
# CHECK: ! hello-second
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-error-5.txt
|
|
# 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: 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: 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: $ "cat" "{{[^"]*}}.foo"
|
|
# CHECK: $ "diff" "-u" "-" "{{[^"]*}}.foo"
|
|
# CHECK-NOT: note
|
|
# CHECK-NOT: error
|
|
|
|
# CHECK: $ "cat" "{{[^"]*}}.foo"
|
|
# CHECK: $ "diff" "-u" "{{[^"]*}}.foo" "-"
|
|
# CHECK-NOT: note
|
|
# CHECK-NOT: error
|
|
|
|
# CHECK: $ "cat" "{{[^"]*}}.bar"
|
|
# CHECK: $ "diff" "-u" "{{[^"]*}}.foo" "-"
|
|
# CHECK: # command output:
|
|
# CHECK: @@
|
|
# CHECK-NEXT: -foo
|
|
# CHECK-NEXT: +bar
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: $ "true"
|
|
|
|
# CHECK: $ "cat" "{{[^"]*}}.bar"
|
|
# CHECK: $ "diff" "-u" "-" "{{[^"]*}}.foo"
|
|
# CHECK: # command output:
|
|
# CHECK: @@
|
|
# CHECK-NEXT: -bar
|
|
# CHECK-NEXT: +foo
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: $ "true"
|
|
|
|
# CHECK: $ "cat" "{{[^"]*}}.foo"
|
|
# CHECK: $ "diff" "-" "{{[^"]*}}.foo"
|
|
# CHECK-NOT: note
|
|
# CHECK-NOT: error
|
|
# CHECK: $ "FileCheck"
|
|
# CHECK-NOT: note
|
|
# CHECK-NOT: error
|
|
|
|
# CHECK: $ "cat" "{{[^"]*}}.bar"
|
|
# CHECK: $ "diff" "-u" "{{[^"]*}}.foo" "-"
|
|
# 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"
|
|
# CHECK: # command output:
|
|
# CHECK: Only in {{.*}}dir1: dir1unique
|
|
# CHECK: Only in {{.*}}dir2: dir2unique
|
|
# CHECK: error: command failed with exit status: 1
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-r-error-1.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-r-error-1.txt' FAILED ***
|
|
# CHECK: $ "diff" "-r"
|
|
# CHECK: # command output:
|
|
# CHECK: *** {{.*}}dir1{{.*}}subdir{{.*}}f01
|
|
# CHECK: --- {{.*}}dir2{{.*}}subdir{{.*}}f01
|
|
# CHECK: 12345
|
|
# CHECK: 00000
|
|
# CHECK: error: command failed with exit status: 1
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-r-error-2.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-r-error-2.txt' FAILED ***
|
|
# CHECK: $ "diff" "-r"
|
|
# CHECK: # command output:
|
|
# CHECK: Only in {{.*}}dir2: extrafile
|
|
# CHECK: error: command failed with exit status: 1
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-r-error-3.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-r-error-3.txt' FAILED ***
|
|
# CHECK: $ "diff" "-r"
|
|
# CHECK: # command output:
|
|
# CHECK: Only in {{.*}}dir1: extra_subdir
|
|
# CHECK: error: command failed with exit status: 1
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-r-error-4.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-r-error-4.txt' FAILED ***
|
|
# CHECK: $ "diff" "-r"
|
|
# CHECK: # command output:
|
|
# CHECK: File {{.*}}dir1{{.*}}extra_subdir is a directory while file {{.*}}dir2{{.*}}extra_subdir is a regular file
|
|
# CHECK: error: command failed with exit status: 1
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-r-error-5.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-r-error-5.txt' FAILED ***
|
|
# CHECK: $ "diff" "-r"
|
|
# CHECK: # command output:
|
|
# CHECK: Only in {{.*}}dir1: extra_subdir
|
|
# CHECK: error: command failed with exit status: 1
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-r-error-6.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-r-error-6.txt' FAILED ***
|
|
# CHECK: $ "diff" "-r"
|
|
# CHECK: # command output:
|
|
# CHECK: File {{.*}}dir1{{.*}}extra_file is a regular empty file while file {{.*}}dir2{{.*}}extra_file is a directory
|
|
# CHECK: error: command failed with exit status: 1
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-r-error-7.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-r-error-7.txt' FAILED ***
|
|
# CHECK: $ "diff" "-r" "-" "{{[^"]*}}"
|
|
# CHECK: # command stderr:
|
|
# CHECK: Error: cannot recursively compare '-'
|
|
# CHECK: error: command failed with exit status: 1
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-r-error-8.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-r-error-8.txt' FAILED ***
|
|
# CHECK: $ "diff" "-r" "{{[^"]*}}" "-"
|
|
# CHECK: # command stderr:
|
|
# CHECK: Error: cannot recursively compare '-'
|
|
# CHECK: error: command failed with exit status: 1
|
|
|
|
# CHECK: PASS: shtest-shell :: diff-r.txt
|
|
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-strip-trailing-cr.txt
|
|
|
|
# CHECK: *** TEST 'shtest-shell :: diff-strip-trailing-cr.txt' FAILED ***
|
|
|
|
# CHECK: $ "diff" "-u" "diff-in.dos" "diff-in.unix"
|
|
# CHECK: # command output:
|
|
# CHECK: @@
|
|
# CHECK-NEXT: -In this file, the
|
|
# CHECK-NEXT: -sequence "\r\n"
|
|
# CHECK-NEXT: -terminates lines.
|
|
# CHECK-NEXT: +In this file, the
|
|
# CHECK-NEXT: +sequence "\n"
|
|
# CHECK-NEXT: +terminates lines.
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: $ "true"
|
|
|
|
# CHECK: $ "diff" "-u" "diff-in.unix" "diff-in.dos"
|
|
# CHECK: # command output:
|
|
# CHECK: @@
|
|
# CHECK-NEXT: -In this file, the
|
|
# CHECK-NEXT: -sequence "\n"
|
|
# CHECK-NEXT: -terminates lines.
|
|
# CHECK-NEXT: +In this file, the
|
|
# CHECK-NEXT: +sequence "\r\n"
|
|
# CHECK-NEXT: +terminates lines.
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: $ "true"
|
|
|
|
# CHECK: $ "diff" "-u" "--strip-trailing-cr" "diff-in.dos" "diff-in.unix"
|
|
# CHECK: # command output:
|
|
# CHECK: @@
|
|
# CHECK-NEXT: In this file, the
|
|
# CHECK-NEXT: -sequence "\r\n"
|
|
# CHECK-NEXT: +sequence "\n"
|
|
# CHECK-NEXT: terminates lines.
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: $ "true"
|
|
|
|
# CHECK: $ "diff" "-u" "--strip-trailing-cr" "diff-in.unix" "diff-in.dos"
|
|
# CHECK: # command output:
|
|
# CHECK: @@
|
|
# CHECK-NEXT: In this file, the
|
|
# CHECK-NEXT: -sequence "\n"
|
|
# CHECK-NEXT: +sequence "\r\n"
|
|
# CHECK-NEXT: terminates lines.
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: $ "true"
|
|
|
|
# CHECK: $ "false"
|
|
|
|
# CHECK: ***
|
|
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-unified.txt
|
|
|
|
# CHECK: *** TEST 'shtest-shell :: diff-unified.txt' FAILED ***
|
|
|
|
# CHECK: $ "diff" "-u" "{{[^"]*}}.foo" "{{[^"]*}}.bar"
|
|
# CHECK: # command output:
|
|
# CHECK: @@ {{.*}} @@
|
|
# CHECK-NEXT: 3
|
|
# CHECK-NEXT: 4
|
|
# CHECK-NEXT: 5
|
|
# CHECK-NEXT: -6 foo
|
|
# CHECK-NEXT: +6 bar
|
|
# CHECK-NEXT: 7
|
|
# CHECK-NEXT: 8
|
|
# CHECK-NEXT: 9
|
|
# CHECK-EMPTY:
|
|
# CHECK-NEXT: error: command failed with exit status: 1
|
|
# CHECK-NEXT: $ "true"
|
|
|
|
# CHECK: $ "diff" "-U" "2" "{{[^"]*}}.foo" "{{[^"]*}}.bar"
|
|
# CHECK: # command output:
|
|
# CHECK: @@ {{.*}} @@
|
|
# CHECK-NEXT: 4
|
|
# CHECK-NEXT: 5
|
|
# CHECK-NEXT: -6 foo
|
|
# CHECK-NEXT: +6 bar
|
|
# CHECK-NEXT: 7
|
|
# CHECK-NEXT: 8
|
|
# CHECK-EMPTY:
|
|
# CHECK-NEXT: error: command failed with exit status: 1
|
|
# CHECK-NEXT: $ "true"
|
|
|
|
# CHECK: $ "diff" "-U4" "{{[^"]*}}.foo" "{{[^"]*}}.bar"
|
|
# CHECK: # command output:
|
|
# CHECK: @@ {{.*}} @@
|
|
# CHECK-NEXT: 2
|
|
# CHECK-NEXT: 3
|
|
# CHECK-NEXT: 4
|
|
# CHECK-NEXT: 5
|
|
# CHECK-NEXT: -6 foo
|
|
# CHECK-NEXT: +6 bar
|
|
# CHECK-NEXT: 7
|
|
# CHECK-NEXT: 8
|
|
# CHECK-NEXT: 9
|
|
# CHECK-NEXT: 10
|
|
# CHECK-EMPTY:
|
|
# CHECK-NEXT: error: command failed with exit status: 1
|
|
# CHECK-NEXT: $ "true"
|
|
|
|
# CHECK: $ "diff" "-U0" "{{[^"]*}}.foo" "{{[^"]*}}.bar"
|
|
# CHECK: # command output:
|
|
# CHECK: @@ {{.*}} @@
|
|
# CHECK-NEXT: -6 foo
|
|
# CHECK-NEXT: +6 bar
|
|
# CHECK-EMPTY:
|
|
# 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: ***
|
|
|
|
|
|
# CHECK: FAIL: shtest-shell :: diff-w.txt
|
|
# CHECK: *** TEST 'shtest-shell :: diff-w.txt' FAILED ***
|
|
# CHECK: $ "diff" "-w" "{{[^"]*}}.0" "{{[^"]*}}.1"
|
|
# CHECK: # command output:
|
|
# CHECK: 1,3
|
|
# CHECK-NEXT: {{^ }}foo
|
|
# CHECK-NEXT: {{^ }}bar
|
|
# CHECK-NEXT: ! baz
|
|
# CHECK-NEXT: ---
|
|
# CHECK-NEXT: {{^ }}foo
|
|
# CHECK-NEXT: {{^ }}bar
|
|
# CHECK-NEXT: ! bat
|
|
# CHECK-EMPTY:
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: error-0.txt
|
|
# CHECK: *** TEST 'shtest-shell :: error-0.txt' FAILED ***
|
|
# CHECK: $ "not-a-real-command"
|
|
# CHECK: # command stderr:
|
|
# CHECK: 'not-a-real-command': command not found
|
|
# CHECK: error: command failed with exit status: 127
|
|
# CHECK: ***
|
|
|
|
# FIXME: The output here sucks.
|
|
#
|
|
# CHECK: FAIL: shtest-shell :: error-1.txt
|
|
# CHECK: *** TEST 'shtest-shell :: error-1.txt' FAILED ***
|
|
# CHECK: shell parser error on: ': \'RUN: at line 3\'; echo "missing quote'
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: error-2.txt
|
|
# CHECK: *** TEST 'shtest-shell :: error-2.txt' FAILED ***
|
|
# CHECK: Unsupported redirect:
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: mkdir-error-0.txt
|
|
# CHECK: *** TEST 'shtest-shell :: mkdir-error-0.txt' FAILED ***
|
|
# CHECK: $ "mkdir" "-p" "temp"
|
|
# CHECK: # command stderr:
|
|
# CHECK: Unsupported: 'mkdir' cannot be part of a pipeline
|
|
# CHECK: error: command failed with exit status: 127
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: mkdir-error-1.txt
|
|
# CHECK: *** TEST 'shtest-shell :: mkdir-error-1.txt' FAILED ***
|
|
# CHECK: $ "mkdir" "-p" "-m" "777" "temp"
|
|
# CHECK: # command stderr:
|
|
# CHECK: Unsupported: 'mkdir': option -m not recognized
|
|
# CHECK: error: command failed with exit status: 127
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: mkdir-error-2.txt
|
|
# CHECK: *** TEST 'shtest-shell :: mkdir-error-2.txt' FAILED ***
|
|
# CHECK: $ "mkdir" "-p"
|
|
# CHECK: # command stderr:
|
|
# CHECK: Error: 'mkdir' is missing an operand
|
|
# CHECK: error: command failed with exit status: 127
|
|
# CHECK: ***
|
|
|
|
# CHECK: PASS: shtest-shell :: redirects.txt
|
|
|
|
# CHECK: FAIL: shtest-shell :: rm-error-0.txt
|
|
# CHECK: *** TEST 'shtest-shell :: rm-error-0.txt' FAILED ***
|
|
# CHECK: $ "rm" "-rf" "temp"
|
|
# CHECK: # command stderr:
|
|
# CHECK: Unsupported: 'rm' cannot be part of a pipeline
|
|
# CHECK: error: command failed with exit status: 127
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: rm-error-1.txt
|
|
# CHECK: *** TEST 'shtest-shell :: rm-error-1.txt' FAILED ***
|
|
# CHECK: $ "rm" "-f" "-v" "temp"
|
|
# CHECK: # command stderr:
|
|
# CHECK: Unsupported: 'rm': option -v not recognized
|
|
# CHECK: error: command failed with exit status: 127
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: rm-error-2.txt
|
|
# CHECK: *** TEST 'shtest-shell :: rm-error-2.txt' FAILED ***
|
|
# CHECK: $ "rm" "-r" "hello"
|
|
# CHECK: # command stderr:
|
|
# CHECK: Error: 'rm' command failed
|
|
# CHECK: error: command failed with exit status: 1
|
|
# CHECK: ***
|
|
|
|
# CHECK: FAIL: shtest-shell :: rm-error-3.txt
|
|
# CHECK: *** TEST 'shtest-shell :: rm-error-3.txt' FAILED ***
|
|
# CHECK: Exit Code: 1
|
|
# CHECK: ***
|
|
|
|
# CHECK: PASS: shtest-shell :: rm-unicode-0.txt
|
|
# CHECK: PASS: shtest-shell :: sequencing-0.txt
|
|
# CHECK: XFAIL: shtest-shell :: sequencing-1.txt
|
|
|
|
# CHECK: FAIL: shtest-shell :: stdout-encoding.txt
|
|
# CHECK: *** TEST 'shtest-shell :: stdout-encoding.txt' FAILED ***
|
|
# CHECK: $ "cat" "diff-in.bin"
|
|
# CHECK: # command output:
|
|
# CHECK-NEXT: {{^.f.o.o.$}}
|
|
# CHECK-NEXT: {{^.b.a.r.}}
|
|
# CHECK-NEXT: {{^.b.a.z.$}}
|
|
# CHECK-NOT: error
|
|
# CHECK: $ "false"
|
|
# CHECK: ***
|
|
|
|
# CHECK: PASS: shtest-shell :: valid-shell.txt
|
|
# CHECK: Failed Tests (35)
|