| status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
| pass | 29 | 29 | 30 | 24 | 27 | 27 | 13 | 28 | 15 | 30 | |
| ok | 1 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | |
| BUG | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
| FAIL | 0 | 0 | 0 | 6 | 0 | 3 | 17 | 2 | 15 | 0 | |
| total | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 30 | |
| case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
| 0 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | case |
| details | |||||||||||
| 1 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | case in subshell |
| details | details | ||||||||||
| 2 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Command sub word part |
| 3 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Backtick |
| 4 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Backtick 2 |
| 5 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Nested backticks |
| details | |||||||||||
| 6 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Making command out of command sub should work |
| 7 | pass | pass | pass | FAIL | ok | FAIL | pass | FAIL | FAIL | pass | Making keyword out of command sub should NOT work |
| details | details | details | details | details | |||||||
| 8 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Command sub with here doc |
| 9 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Here doc with pipeline |
| 10 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Command Sub word split |
| 11 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Command Sub trailing newline removed |
| 12 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Command Sub trailing whitespace not removed |
| 13 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Command Sub and exit code |
| details | |||||||||||
| 14 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Command Sub in local sets exit code |
| 15 | pass | pass | pass | pass | pass | pass | FAIL | FAIL | FAIL | pass | Double Quotes in Command Sub in Double Quotes |
| details | details | details | |||||||||
| 16 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Escaped quote in [[ ]] |
| details | details | ||||||||||
| 17 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Quoting " within `` |
| 18 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Quoting $ within `` |
| details | details | ||||||||||
| 19 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Quoting $ within `` within double quotes |
| details | details | ||||||||||
| 20 | pass | pass | pass | FAIL | pass | pass | FAIL | pass | FAIL | pass | Quoting \ within `` |
| details | details | details | |||||||||
| 21 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Quoting \ within `` within double quotes |
| details | details | ||||||||||
| 22 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Quoting ( within `` |
| details | details | ||||||||||
| 23 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Quoting ( within `` within double quotes |
| details | details | ||||||||||
| 24 | pass | pass | pass | FAIL | pass | pass | FAIL | pass | FAIL | pass | Quoting non-special characters within `` |
| details | details | details | |||||||||
| 25 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Quoting non-special characters within `` within double quotes |
| details | details | ||||||||||
| 26 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Quoting double quotes within backticks |
| details | details | ||||||||||
| 27 | pass | BUG | pass | FAIL | BUG | FAIL | FAIL | pass | FAIL | pass | More levels of double quotes in backticks |
| details | details | details | details | details | details | ||||||
| 28 | ok | pass | pass | FAIL | ok | FAIL | pass | pass | FAIL | pass | Syntax errors with double quotes within backticks |
| details | details | details | details | details | |||||||
| 29 | pass | pass | pass | FAIL | pass | pass | FAIL | pass | pass | pass | Empty command sub $() (command::NoOp) |
| details | details |
252 passed, 3 OK, 0 not implemented, 2 BUG, 43 failed, 0 timeouts, 0 cases skipped
| toysh | 0 case [toysh stdout] Expected 'letter\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: free(): invalid pointer |
| toysh | 1 case in subshell [toysh stdout] Expected 'letter\n' Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 1: sh: syntax error: ;; |
| brush | 1 case in subshell [brush stdout] Expected 'letter\n' Got '' [brush status] Expected 0 Got 2 stdout: stderr: [31merror:[39m main: syntax error near token `;;' (line 1 col 46) |
| toysh | 5 Nested backticks [toysh stdout] Expected '000000-first\n' Got '\n' stdout: stderr: sh: `echo: No such file or directory |
| zsh | 7 Making keyword out of command sub should NOT work [zsh stdout] Expected u'' Got 'status=1\n' [zsh status] Expected 2 Got 0 stdout: status=1stderr: zsh: parse error near `do' |
| mksh | 7 Making keyword out of command sub should NOT work stdout: stderr: mksh: <stdin>[1]: syntax error: 'do' unexpected |
| ksh | 7 Making keyword out of command sub should NOT work [ksh status] Expected 2 Got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected 'do' |
| sush | 7 Making keyword out of command sub should NOT work [sush stdout] Expected u'' Got 'status=2\n' [sush status] Expected 2 Got 0 stdout: status=2stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: syntax error near unexpected token: do |
| brush | 7 Making keyword out of command sub should NOT work [brush stdout] Expected u'' Got 'status=2\n' [brush status] Expected 2 Got 0 stdout: status=2stderr: [31merror:[39m main: syntax error near token `echo' (line 1 col 36) |
| toysh | 13 Command Sub and exit code [toysh stdout] Expected 'x\n0\n33\n' Got 'x\n0\n0\n' stdout: x 0 0stderr: |
| toysh | 15 Double Quotes in Command Sub in Double Quotes [toysh stdout] Expected 'x hi\nx hi\nx "hi"\nx hi\nx hi\nx hi\n' Got 'x hi\nx hi\nx "hi"\nx hi\nx hi\nx "hi"\n' stdout: x hi x hi x "hi" x hi x hi x "hi"stderr: |
| sush | 15 Double Quotes in Command Sub in Double Quotes [sush stdout] Expected 'x hi\nx hi\nx "hi"\nx hi\nx hi\nx hi\n' Got 'x hi\nx hi\nx "hi"\nx hi\nx hi\nx "hi"\n' stdout: x hi x hi x "hi" x hi x hi x "hi"stderr: |
| brush | 15 Double Quotes in Command Sub in Double Quotes [brush stdout] Expected 'x hi\nx hi\nx "hi"\nx hi\nx hi\nx hi\n' Got 'x hi\nx hi\nx "hi"\nx hi\nx hi\nx "hi"\n' stdout: x hi x hi x "hi" x hi x hi x "hi"stderr: |
| toysh | 16 Escaped quote in [[ ]] [toysh stdout] Expected '123 456\n"\n' Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 2: sh: syntax error: unexpected end of file |
| brush | 16 Escaped quote in [[ ]] [brush stdout] Expected '123 456\n"\n' Got '123 456\n' [brush status] Expected 0 Got 1 stdout: 123 456stderr: [31merror:[39m main: unterminated double quote at line 1 col 13 (detected near line 1 col 26) cat: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/command-sub.test.sh/16-brush/command-sub-dbracket: No such file or directory |
| toysh | 18 Quoting $ within `` [toysh stdout] Expected '1 $\n2 $\n3 $\n4 $\n5 \\$\n' Got '1 $\n2 $\n3 \\$\n4 \\$\n5 \\\\$\n' stdout: 1 $ 2 $ 3 \$ 4 \$ 5 \\$stderr: |
| brush | 18 Quoting $ within `` [brush stdout] Expected '1 $\n2 $\n3 $\n4 $\n5 \\$\n' Got '1 $\n2 $\n3 \\$\n4 \\$\n5 \\\\$\n' stdout: 1 $ 2 $ 3 \$ 4 \$ 5 \\$stderr: |
| toysh | 19 Quoting $ within `` within double quotes [toysh stdout] Expected '1 $\n2 $\n3 $\n4 $\n5 \\$\n' Got '1 $\n2 $\n3 \\$\n4 \\$\n5 \\\\$\n' stdout: 1 $ 2 $ 3 \$ 4 \$ 5 \\$stderr: |
| brush | 19 Quoting $ within `` within double quotes [brush stdout] Expected '1 $\n2 $\n3 $\n4 $\n5 \\$\n' Got '1 $\n2 $\n3 \\$\n4 \\$\n5 \\\\$\n' stdout: 1 $ 2 $ 3 \$ 4 \$ 5 \\$stderr: |
| zsh | 20 Quoting \ within `` [zsh stdout] Expected '[1 ]\n[2 ]\n[3 \\]\n' Got '' [zsh status] Expected 0 Got 1 stdout: stderr: zsh: bad pattern: [1 |
| toysh | 20 Quoting \ within `` [toysh stdout] Expected '[1 ]\n[2 ]\n[3 \\]\n' Got '[1 ]\n[2 \\]\n[3 \\\\]\n' stdout: [1 ] [2 \] [3 \\]stderr: |
| brush | 20 Quoting \ within `` [brush stdout] Expected '[1 ]\n[2 ]\n[3 \\]\n' Got '[1 ]\n[2 \\]\n[3 \\\\]\n' stdout: [1 ] [2 \] [3 \\]stderr: |
| toysh | 21 Quoting \ within `` within double quotes [toysh stdout] Expected '[1 ]\n[2 ]\n[3 \\]\n' Got '[1 ]\n[2 \\]\n[3 \\\\]\n' stdout: [1 ] [2 \] [3 \\]stderr: |
| brush | 21 Quoting \ within `` within double quotes [brush stdout] Expected '[1 ]\n[2 ]\n[3 \\]\n' Got '[1 ]\n[2 \\]\n[3 \\\\]\n' stdout: [1 ] [2 \] [3 \\]stderr: |
| toysh | 22 Quoting ( within `` [toysh stdout] Expected '1 (\n2 (\n3 (\n' Got '1 (\n2 \\ (\n3 \\ \\ (\n' stdout: 1 ( 2 \ ( 3 \ \ (stderr: |
| brush | 22 Quoting ( within `` [brush stdout] Expected '1 (\n2 (\n3 (\n' Got '1 (\n2\n3\n' stdout: 1 ( 2 3stderr: [31merror:[39m main: syntax error at end of input [31merror:[39m main: syntax error at end of input |
| toysh | 23 Quoting ( within `` within double quotes [toysh stdout] Expected '1 (\n2 (\n3 (\n' Got '1 (\n2 \\ (\n3 \\ \\ (\n' stdout: 1 ( 2 \ ( 3 \ \ (stderr: |
| brush | 23 Quoting ( within `` within double quotes [brush stdout] Expected '1 (\n2 (\n3 (\n' Got '1 (\n2 \n3 \n' stdout: 1 ( 2 3stderr: [31merror:[39m main: syntax error at end of input [31merror:[39m main: syntax error at end of input |
| zsh | 24 Quoting non-special characters within `` [zsh stdout] Expected '[1 z]\n[2 z]\n[3 \\z]\n[4 \\z]\n' Got '' [zsh status] Expected 0 Got 1 stdout: stderr: zsh: bad pattern: [1 |
| toysh | 24 Quoting non-special characters within `` [toysh stdout] Expected '[1 z]\n[2 z]\n[3 \\z]\n[4 \\z]\n' Got '[1 z]\n[2 \\z]\n[3 \\z]\n[4 \\\\z]\n' stdout: [1 z] [2 \z] [3 \z] [4 \\z]stderr: |
| brush | 24 Quoting non-special characters within `` [brush stdout] Expected '[1 z]\n[2 z]\n[3 \\z]\n[4 \\z]\n' Got '[1 z]\n[2 \\z]\n[3 \\z]\n[4 \\\\z]\n' stdout: [1 z] [2 \z] [3 \z] [4 \\z]stderr: |
| toysh | 25 Quoting non-special characters within `` within double quotes [toysh stdout] Expected '[1 z]\n[2 z]\n[3 \\z]\n[4 \\z]\n' Got '[1 z]\n[2 \\z]\n[3 \\z]\n[4 \\\\z]\n' stdout: [1 z] [2 \z] [3 \z] [4 \\z]stderr: |
| brush | 25 Quoting non-special characters within `` within double quotes [brush stdout] Expected '[1 z]\n[2 z]\n[3 \\z]\n[4 \\z]\n' Got '[1 z]\n[2 \\z]\n[3 \\z]\n[4 \\\\z]\n' stdout: [1 z] [2 \z] [3 \z] [4 \\z]stderr: |
| toysh | 26 Quoting double quotes within backticks [toysh stdout] Expected '"foo"\n"foo"\n"foo"\n' Got '"foo"\n"foo"\n\\foo\\\n' stdout: "foo" "foo" \foo\stderr: |
| brush | 26 Quoting double quotes within backticks [brush stdout] Expected '"foo"\n"foo"\n"foo"\n' Got '"foo"\n"foo"\n\\foo\\\n' stdout: "foo" "foo" \foo\stderr: |
| dash | 27 More levels of double quotes in backticks stdout: oo\ - oo\ - \"foo\" -stderr: |
| zsh | 27 More levels of double quotes in backticks [zsh stdout] Expected '\\foo\\ -\n\\foo\\ -\n\\"foo\\" -\n' Got '\x0coo\\ -\n\x0coo\\ -\n\\"foo\\" -\n' stdout: oo\ - oo\ - \"foo\" -stderr: |
| mksh | 27 More levels of double quotes in backticks stdout: oo\ - oo\ - \"foo\" -stderr: |
| ksh | 27 More levels of double quotes in backticks [ksh stdout] Expected '\\foo\\ -\n\\foo\\ -\n\\"foo\\" -\n' Got '\x0coo\\ -\n\x0coo\\ -\n\\"foo\\" -\n' stdout: oo\ - oo\ - \"foo\" -stderr: |
| toysh | 27 More levels of double quotes in backticks [toysh stdout] Expected '\\foo\\ -\n\\foo\\ -\n\\"foo\\" -\n' Got '\\"foo\\" -\n\\\\foo\\\\ -\n\\\\"foo\\\\" -\n' stdout: \"foo\" - \\foo\\ - \\"foo\\" -stderr: |
| brush | 27 More levels of double quotes in backticks [brush stdout] Expected '\\foo\\ -\n\\foo\\ -\n\\"foo\\" -\n' Got '\\"foo\\" -\n\\\\foo\\\\ -\n\\\\"foo\\\\" -\n' stdout: \"foo\" - \\foo\\ - \\"foo\\" -stderr: |
| bash | 28 Syntax errors with double quotes within backticks stdout: status=0 status=0stderr: bash: command substitution: line 1: unexpected EOF while looking for matching `"' bash: command substitution: line 1: unexpected EOF while looking for matching `"' |
| zsh | 28 Syntax errors with double quotes within backticks [zsh stdout] Expected 'status=2\nstatus=2\n' Got 'status=1\nstatus=1\n' stdout: status=1 status=1stderr: zsh:1: unmatched " zsh:1: parse error in command substitution zsh:1: unmatched " zsh:1: parse error in command substitution |
| mksh | 28 Syntax errors with double quotes within backticks stdout: status=1 status=1stderr: mksh: no closing quote mksh: no closing quote |
| ksh | 28 Syntax errors with double quotes within backticks [ksh stdout] Expected 'status=2\nstatus=2\n' Got 'status=1\nstatus=1\n' stdout: status=1 status=1stderr: E: ksh: no closing quote E: ksh: no closing quote |
| brush | 28 Syntax errors with double quotes within backticks [brush stdout] Expected 'status=2\nstatus=2\n' Got '\nstatus=0\n\nstatus=0\n' stdout: status=0 status=0stderr: [31merror:[39m main: unterminated double quote at line 1 col 6 (detected near line 1 col 7) [31merror:[39m main: unterminated double quote at line 1 col 10 (detected near line 1 col 11) |
| zsh | 29 Empty command sub $() (command::NoOp) [zsh stdout] Expected '-- ..\n' Got '' [zsh status] Expected 0 Got 127 stdout: stderr: zsh: command not found: shopt zsh: parse error near `-$()' zsh: unmatched " zsh: unmatched " |
| toysh | 29 Empty command sub $() (command::NoOp) [toysh stdout] Expected '-- ..\n' Got '..\n' stdout: ..stderr: sh: shopt: No such file or directory |