pipeline () { sh-spec spec/pipeline.test.sh ${REF_SHELLS[@]} $ZSH $OSH_LIST "$@" }
spec test index / oilshell.org
| status | dash | bash | mksh | zsh | osh | |
| pass | 16 | 22 | 20 | 18 | 22 | |
| ok | 1 | 1 | 1 | 0 | 1 | |
| N-I | 7 | 0 | 3 | 4 | 1 | |
| BUG | 0 | 1 | 0 | 2 | 0 | |
| total | 24 | 24 | 24 | 24 | 24 | |
| case | dash | bash | mksh | zsh | osh | description | 
| 0 | pass | pass | pass | pass | pass | Brace group in pipeline | 
| 1 | pass | pass | pass | pass | pass | For loop starts pipeline | 
| 2 | pass | pass | pass | pass | pass | While Loop ends pipeline | 
| 3 | pass | pass | pass | BUG | pass | Redirect in Pipeline | 
| details | ||||||
| 4 | pass | pass | pass | pass | pass | Pipeline comments | 
| 5 | pass | pass | pass | pass | pass | Exit code is last status | 
| 6 | N-I | pass | pass | N-I | pass | PIPESTATUS | 
| details | details | |||||
| 7 | N-I | pass | pass | N-I | ok | PIPESTATUS is set on simple commands, but NOT in OSH | 
| details | details | details | ||||
| 8 | N-I | pass | pass | N-I | pass | PIPESTATUS with shopt -s lastpipe | 
| details | details | |||||
| 9 | N-I | pass | N-I | pass | N-I | |& | 
| details | details | details | ||||
| 10 | pass | pass | pass | pass | pass | ! turns non-zero into zero | 
| 11 | pass | pass | pass | pass | pass | ! turns zero into 1 | 
| 12 | pass | pass | pass | pass | pass | ! in if | 
| 13 | pass | pass | pass | pass | pass | ! with || | 
| 14 | pass | pass | pass | pass | pass | ! with { } | 
| 15 | pass | pass | pass | pass | pass | ! with ( ) | 
| 16 | pass | pass | pass | pass | pass | ! is not a command | 
| 17 | pass | pass | pass | BUG | pass | Evaluation of argv[0] in pipeline occurs in child | 
| details | ||||||
| 18 | ok | ok | ok | pass | pass | bash/dash/mksh run the last command is run in its own process | 
| details | details | details | ||||
| 19 | N-I | pass | N-I | pass | pass | shopt -s lastpipe (always on in OSH) | 
| details | details | |||||
| 20 | N-I | pass | N-I | pass | pass | shopt -s lastpipe (always on in OSH) | 
| details | details | |||||
| 21 | N-I | BUG | pass | N-I | pass | SIGPIPE causes pipeline to die (regression for issue #295) | 
| details | details | details | ||||
| 22 | pass | pass | pass | pass | pass | Nested pipelines | 
| 23 | pass | pass | pass | pass | pass | Pipeline in eval | 
98 passed, 4 OK, 15 not implemented, 3 BUG, 0 failed, 0 timeouts, 0 cases skipped
| zsh | 3 Redirect in Pipeline stdout: 1stderr: hi  | 
| dash | 6 PIPESTATUS stdout: stderr: dash: 5: Bad substitution  | 
| zsh | 6 PIPESTATUS stdout: stderr:  | 
| dash | 7 PIPESTATUS is set on simple commands, but NOT in OSH stdout: stderr:  | 
| zsh | 7 PIPESTATUS is set on simple commands, but NOT in OSH stdout: stderr:  | 
| osh | 7 PIPESTATUS is set on simple commands, but NOT in OSH stdout: pipestatusstderr:  | 
| dash | 8 PIPESTATUS with shopt -s lastpipe stdout: stderr: dash: 1: shopt: not found dash: 6: Bad substitution  | 
| zsh | 8 PIPESTATUS with shopt -s lastpipe stdout: stderr: zsh: command not found: shopt  | 
| dash | 9 |& stdout: stderr: dash: 1: Syntax error: "&" unexpected  | 
| mksh | 9 |& stdout: stderr: STDERR close failed in file object destructor: sys.excepthook is missing lost sys.stderr  | 
| osh | 9 |& stdout: stderr:   stdout_stderr.py |& cat
                   ^~
[ stdin ]:1: fatal: |& isn't supported
 | 
| zsh | 17 Evaluation of argv[0] in pipeline occurs in child stdout: 1 cmd=echostderr:  | 
| dash | 18 bash/dash/mksh run the last command is run in its own process stdout: line=stderr:  | 
| bash | 18 bash/dash/mksh run the last command is run in its own process stdout: line=stderr:  | 
| mksh | 18 bash/dash/mksh run the last command is run in its own process stdout: line=stderr:  | 
| dash | 19 shopt -s lastpipe (always on in OSH) stdout: line=stderr: dash: 1: shopt: not found  | 
| mksh | 19 shopt -s lastpipe (always on in OSH) stdout: line=stderr: mksh: <stdin>[1]: shopt: not found  | 
| dash | 20 shopt -s lastpipe (always on in OSH) stdout: i=0stderr: dash: 1: shopt: not found dash: 4: i++: not found dash: 4: i++: not found dash: 4: i++: not found  | 
| mksh | 20 shopt -s lastpipe (always on in OSH) stdout: i=0stderr: mksh: <stdin>[1]: shopt: not found  | 
| dash | 21 SIGPIPE causes pipeline to die (regression for issue #295) stdout: stderr: cat: write error: Broken pipe dash: 2: Bad substitution  | 
| bash | 21 SIGPIPE causes pipeline to die (regression for issue #295) stdout: 1 0stderr: cat: write error: Broken pipe  | 
| zsh | 21 SIGPIPE causes pipeline to die (regression for issue #295) stdout: stderr: cat: write error: Broken pipe  |