status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
pass | 18 | 17 | 19 | 10 | 19 | 19 | 12 | 14 | 15 | 16 | |
ok | 2 | 3 | 2 | 4 | 4 | 0 | 0 | 0 | 0 | 2 | |
N-I | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
BUG | 3 | 2 | 2 | 8 | 0 | 0 | 0 | 0 | 0 | 0 | |
FAIL | 0 | 0 | 0 | 0 | 0 | 4 | 11 | 9 | 8 | 5 | |
total | 23 | 23 | 23 | 23 | 23 | 23 | 23 | 23 | 23 | 23 | |
case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
0 | pass | ok | ok | pass | pass | pass | FAIL | FAIL | pass | pass | Fatal error |
details | details | details | details | ||||||||
1 | BUG | pass | pass | ok | pass | pass | FAIL | FAIL | FAIL | ok | setting readonly var (bash is only one where it's non-fatal) |
details | details | details | details | details | details | ||||||
2 | ok | pass | pass | ok | pass | pass | FAIL | FAIL | FAIL | ok | readonly with temp binding |
details | details | details | details | details | details | ||||||
3 | BUG | ok | ok | pass | ok | FAIL | pass | FAIL | pass | pass | Failed redirect in assignment, vs. export |
details | details | details | details | details | details | ||||||
4 | ok | pass | pass | pass | pass | pass | FAIL | FAIL | FAIL | FAIL | Evaluation order of redirect and ${undef?error} |
details | details | details | details | details | |||||||
5 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Function def in pipeline |
details | |||||||||||
6 | pass | pass | pass | BUG | pass | pass | pass | pass | pass | pass | dynamic glob - http://landley.net/notes.html#08-05-2020 |
details | |||||||||||
7 | pass | pass | pass | pass | pass | pass | FAIL | FAIL | pass | pass | no shebang |
details | details | ||||||||||
8 | pass | N-I | pass | BUG | pass | pass | pass | pass | pass | pass | IFS |
details | details | ||||||||||
9 | pass | ok | pass | pass | ok | FAIL | pass | pass | pass | pass | shift is fatal at top level? |
details | details | details | |||||||||
10 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | var and func - http://landley.net/notes.html#19-03-2020 |
11 | pass | BUG | BUG | N-I | pass | pass | FAIL | pass | FAIL | FAIL | IFS - http://landley.net/notes.html#05-03-2020 |
details | details | details | details | details | details | ||||||
12 | pass | BUG | BUG | BUG | pass | pass | FAIL | pass | FAIL | FAIL | IFS=x and '' and unquoted $@ - reduction of case above - copied into spec/word-split |
details | details | details | details | details | details | ||||||
13 | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | for loop parsing - http://landley.net/notes.html#04-03-2020 |
details | |||||||||||
14 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Parsing $(( )) |
15 | pass | pass | pass | BUG | pass | pass | pass | pass | FAIL | FAIL | IFS - http://landley.net/notes.html#15-02-2020 (TODO: osh) |
details | details | details | |||||||||
16 | pass | pass | pass | BUG | pass | pass | pass | pass | pass | FAIL | IFS 2 - copied into spec/word-split |
details | details | ||||||||||
17 | pass | pass | pass | BUG | pass | pass | pass | pass | FAIL | pass | IFS 3 |
details | details | ||||||||||
18 | BUG | pass | pass | BUG | pass | pass | FAIL | FAIL | pass | pass | IFS 4 |
details | details | details | details | ||||||||
19 | pass | pass | pass | BUG | pass | pass | pass | pass | pass | pass | IFS 5 |
details | |||||||||||
20 | pass | pass | pass | ok | ok | FAIL | pass | pass | pass | pass | Can't parse extra } |
details | details | details | |||||||||
21 | pass | pass | pass | ok | ok | FAIL | FAIL | FAIL | FAIL | pass | Command Sub Syntax Error |
details | details | details | details | details | details | ||||||
22 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Pipeline - http://landley.net/notes-2019.html#16-12-2019 |
details |
159 passed, 17 OK, 2 not implemented, 15 BUG, 37 failed, 0 timeouts, 0 cases skipped 5 failed under osh
dash | 0 Fatal error stdout: stderr: dash: 1: a: bc |
ash | 0 Fatal error stdout: stderr: ash: a: bc |
toysh | 0 Fatal error [toysh stdout] Expected u'', got 'blah\n' [toysh status] Expected 1, got 0 stdout: blahstderr: main: line 1: sh: a: bc |
sush | 0 Fatal error [sush stdout] Expected u'', got 'blah\n' [sush status] Expected 1, got 0 stdout: blahstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: a: bc |
bash | 1 setting readonly var (bash is only one where it's non-fatal) stdout: status=1stderr: bash: line 2: abc: readonly variable |
zsh | 1 setting readonly var (bash is only one where it's non-fatal) stdout: stderr: zsh: read-only variable: abc |
toysh | 1 setting readonly var (bash is only one where it's non-fatal) [toysh stdout] Expected u'', got 'status=0\n' [toysh status] Expected 2, got 0 stdout: status=0stderr: sh: readonly: No such file or directory |
sush | 1 setting readonly var (bash is only one where it's non-fatal) [sush stdout] Expected u'', got 'status=1\n' [sush status] Expected 2, got 0 stdout: status=1stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: abc: readonly variable |
brush | 1 setting readonly var (bash is only one where it's non-fatal) [brush stdout] Expected u'', got 'status=1\n' [brush status] Expected 2, got 0 stdout: status=1stderr: [31mERROR[0m error: cannot mutate readonly variable |
osh | 1 setting readonly var (bash is only one where it's non-fatal) stdout: stderr: abc=def ^~~~ [ stdin ]:2: fatal: Can't assign to readonly value 'abc' |
bash | 2 readonly with temp binding stdout: one status=0 hellostderr: bash: line 2: abc: readonly variable bash: line 5: /does/not/exist: No such file or directory |
zsh | 2 readonly with temp binding stdout: stderr: zsh: read-only variable: abc |
toysh | 2 readonly with temp binding [toysh stdout] Expected u'', got 'one\nstatus=0\nhello\n' [toysh status] Expected 2, got 0 stdout: one status=0 hellostderr: sh: readonly: No such file or directory sh: /does/not/exist: No such file or directory |
sush | 2 readonly with temp binding [sush stdout] Expected u'', got 'status=1\nhello\n' [sush status] Expected 2, got 0 stdout: status=1 hellostderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: abc: readonly variable /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: /does/not/exist: entity not found |
brush | 2 readonly with temp binding [brush stdout] Expected u'', got 'one\nstatus=0\nhello\n' [brush status] Expected 2, got 0 stdout: one status=0 hellostderr: error: failed to redirect to /does/not/exist: No such file or directory (os error 2) |
osh | 2 readonly with temp binding stdout: one status=0 hellostderr: echo potato < /does/not/exist || echo hello ^ [ stdin ]:5: Can't open '/does/not/exist': No such file or directory [ stdin ]:5: I/O error applying redirect: No such file or directory |
bash | 3 Failed redirect in assignment, vs. export stdout: abc=def abc=defstderr: bash: line 1: /does/not/exist1: No such file or directory bash: line 4: /does/not/exist2: No such file or directory |
dash | 3 Failed redirect in assignment, vs. export stdout: abc=stderr: dash: 1: cannot create /does/not/exist1: Directory nonexistent dash: 4: cannot create /does/not/exist2: Directory nonexistent |
ash | 3 Failed redirect in assignment, vs. export stdout: abc=stderr: ash: can't create /does/not/exist1: nonexistent directory ash: can't create /does/not/exist2: nonexistent directory |
mksh | 3 Failed redirect in assignment, vs. export stdout: abc=stderr: mksh: <stdin>[1]: can't create /does/not/exist1: No such file or directory mksh: <stdin>[4]: can't create /does/not/exist2: No such file or directory |
ksh | 3 Failed redirect in assignment, vs. export [ksh stdout] Expected 'abc=\nabc=\n', got 'abc=\n' [ksh status] Expected 0, got 1 stdout: abc=stderr: W: ksh: <stdin>[1]: /does/not/exist1: create: No such file or directory W: ksh: <stdin>[4]: /does/not/exist2: create: No such file or directory E: ksh: <stdin>[4]: redirection failure |
sush | 3 Failed redirect in assignment, vs. export [sush stdout] Expected 'abc=\nabc=\n', got 'abc=def\nabc=def\n' stdout: abc=def abc=defstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: /does/not/exist2: entity not found |
bash | 4 Evaluation order of redirect and ${undef?error} stdout: stderr: rm: cannot remove '_tmp': Is a directory bash: line 1: x: bc bash: line 1: a: bc |
toysh | 4 Evaluation order of redirect and ${undef?error} [toysh stdout] Expected 'exists1\n', got 'exists1\nexists2\n' stdout: exists1 exists2stderr: rm: cannot remove '_tmp': Is a directory -c: line 1: sh: x: bc -c: line 1: sh: a: bc |
sush | 4 Evaluation order of redirect and ${undef?error} [sush stdout] Expected 'exists1\n', got '' stdout: stderr: rm: cannot remove '_tmp': Is a directory /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: x: bc /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: a: bc |
brush | 4 Evaluation order of redirect and ${undef?error} [brush stdout] Expected 'exists1\n', got 'exists1\nexists2\n' stdout: exists1 exists2stderr: rm: cannot remove '_tmp': Is a directory [31mERROR[0m error: expansion error: bc [31mERROR[0m error: expansion error: bc |
osh | 4 Evaluation order of redirect and ${undef?error} [osh stdout] Expected 'exists1\n', got 'exists1\nexists2\n' stdout: exists1 exists2stderr: rm: cannot remove '_tmp': Is a directory X=${x?bc} > walrus ^ [ -c flag ]:1: fatal: Var x is unset: 'bc' >walrus echo ${a?bc} ^ [ -c flag ]:1: fatal: Var a is unset: 'bc' |
toysh | 5 Function def in pipeline [toysh status] Expected 0, got 127 stdout: hastderr: sh: hello: No such file or directory |
zsh | 6 dynamic glob - http://landley.net/notes.html#08-05-2020 stdout: *stderr: rm: cannot remove '_tmp': Is a directory zsh: no matches found: **.?z |
toysh | 7 no shebang [toysh status] Expected 0, got 139 stdout: hello hello hello 123stderr: |
sush | 7 no shebang [sush stdout] Expected 'hello\nhello\nhello 123\n', got 'hello\nhello\nhello\n' stdout: hello hello hellostderr: |
dash | 8 IFS stdout: stderr: dash: 1: Bad substitution |
zsh | 8 IFS stdout: agd {x,y,z}="${x,y,z}"stderr: |
dash | 9 shift is fatal at top level? stdout: stderr: dash: 1: shift: can't shift that many |
mksh | 9 shift is fatal at top level? stdout: stderr: mksh: shift: nothing to shift |
ksh | 9 shift is fatal at top level? [ksh stdout] Expected 'hello\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: shift: nothing to shift |
dash | 11 IFS - http://landley.net/notes.html#05-03-2020 stdout: =one= =abc= =d f= =ghi= --- =one= =two=stderr: |
ash | 11 IFS - http://landley.net/notes.html#05-03-2020 stdout: =one= =abc= =d f= =ghi= --- =one= =two=stderr: |
zsh | 11 IFS - http://landley.net/notes.html#05-03-2020 stdout: stderr: |
toysh | 11 IFS - http://landley.net/notes.html#05-03-2020 [toysh stdout] Expected '=one=\n=abc=\n=d f=\n=ghi=\n---\n=one=\n==\n=two=\n' Got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
brush | 11 IFS - http://landley.net/notes.html#05-03-2020 [brush stdout] Expected '=one=\n=abc=\n=d f=\n=ghi=\n---\n=one=\n==\n=two=\n' Got '=one=\n=abc=\n=d=\n=f=\n=ghi=\n---\n=one=\n=two=\n' stdout: =one= =abc= =d= =f= =ghi= --- =one= =two=stderr: |
osh | 11 IFS - http://landley.net/notes.html#05-03-2020 [osh stdout] Expected '=one=\n=abc=\n=d f=\n=ghi=\n---\n=one=\n==\n=two=\n' Got '=one=\n=abc=\n=d f=\n=ghi=\n---\n=one=\n=two=\n' stdout: =one= =abc= =d f= =ghi= --- =one= =two=stderr: |
dash | 12 IFS=x and '' and unquoted $@ - reduction of case above - copied into spec/word-split stdout: ['one', 'two'] -one- -two-stderr: dash: 1: setopt: not found |
ash | 12 IFS=x and '' and unquoted $@ - reduction of case above - copied into spec/word-split stdout: ['one', 'two'] -one- -two-stderr: ash: setopt: not found |
zsh | 12 IFS=x and '' and unquoted $@ - reduction of case above - copied into spec/word-split stdout: ['one', 'two'] -one- -two-stderr: |
toysh | 12 IFS=x and '' and unquoted $@ - reduction of case above - copied into spec/word-split [toysh stdout] Expected "['one', '', 'two']\n-one-\n--\n-two-\n", got '[]\n' stdout: []stderr: sh: setopt: No such file or directory set: bad -- |
brush | 12 IFS=x and '' and unquoted $@ - reduction of case above - copied into spec/word-split [brush stdout] Expected "['one', '', 'two']\n-one-\n--\n-two-\n", got "['one', 'two']\n-one-\n-two-\n" stdout: ['one', 'two'] -one- -two-stderr: setopt: command not found |
osh | 12 IFS=x and '' and unquoted $@ - reduction of case above - copied into spec/word-split [osh stdout] Expected "['one', '', 'two']\n-one-\n--\n-two-\n", got "['one', 'two']\n-one-\n-two-\n" stdout: ['one', 'two'] -one- -two-stderr: setopt SH_WORD_SPLIT ^~~~~~ [ stdin ]:1: Command 'setopt' not found (OILS-ERR-100) |
sush | 13 for loop parsing - http://landley.net/notes.html#04-03-2020 [sush stdout] Expected 'one\ntwo\nthree\n0\ncannot-parse\n', got '2\ncannot-parse\n' stdout: 2 cannot-parsestderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: Unexpected token: in /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: Unexpected token: do /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: Unexpected token: done /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: in |
zsh | 15 IFS - http://landley.net/notes.html#15-02-2020 (TODO: osh) stdout: stderr: zsh: xabcxx= not found |
brush | 15 IFS - http://landley.net/notes.html#15-02-2020 (TODO: osh) [brush stdout] Expected '==\n=abc=\n==\n\n==\n=abc=\n=def=\n==\n', got '=abc=\n\n==\n=abc=\n=def=\n==\n' stdout: =abc= == =abc= =def= ==stderr: |
osh | 15 IFS - http://landley.net/notes.html#15-02-2020 (TODO: osh) [osh stdout] Expected '==\n=abc=\n==\n\n==\n=abc=\n=def=\n==\n', got '==\n=abc=\n==\n\n=abc=\n=def=\n' stdout: == =abc= == =abc= =def=stderr: |
zsh | 16 IFS 2 - copied into spec/word-split stdout: stderr: zsh: x abc def = not found |
osh | 16 IFS 2 - copied into spec/word-split [osh stdout] Expected '=x=\n=abc=\n=def=\n==\n', got '=x=\n=abc=\n=def=\n' stdout: =x= =abc= =def=stderr: |
zsh | 17 IFS 3 stdout: onextwoxxthreestderr: |
brush | 17 IFS 3 [brush stdout] Expected 'one two three\n', got 'one two three\n' stdout: one two threestderr: |
bash | 18 IFS 4 stdout: / / -- /x/ -=- -=-stderr: bash: line 1: setopt: command not found |
zsh | 18 IFS 4 stdout: / / -- -- /x/ -=- -=-stderr: |
toysh | 18 IFS 4 [toysh stdout] Expected '/ /\n\n/x/\n-=-\n-=-\n', got '//\n\n/x/\n-==-\n' stdout: // /x/ -==-stderr: sh: setopt: No such file or directory |
sush | 18 IFS 4 [sush stdout] Expected '/ /\n\n/x/\n-=-\n-=-\n', got '/ /\n--\n\n/x/\n-=-\n-=-\n' stdout: / / -- /x/ -=- -=-stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: setopt: command not found |
zsh | 19 IFS 5 stdout: stderr: cc: = not found |
zsh | 20 Can't parse extra } stdout: stderr: zsh:1: parse error near `}' |
mksh | 20 Can't parse extra } stdout: stderr: 123: syntax error: '}' unexpected |
ksh | 20 Can't parse extra } [ksh status] Expected 2, got 1 stdout: stderr: E: 123: syntax error: unexpected '}' |
zsh | 21 Command Sub Syntax Error stdout: stderr: zsh: parse error near `true' zsh: parse error in command substitution |
mksh | 21 Command Sub Syntax Error stdout: stderr: mksh: <stdin>[1]: syntax error: ')' unexpected |
ksh | 21 Command Sub Syntax Error [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected ')' |
toysh | 21 Command Sub Syntax Error [toysh stdout] Expected u'', got '\n0\n\n0\n' [toysh status] Expected 2, got 0 stdout: 0 0stderr: main: line 1: sh: syntax error: unexpected end of file |
sush | 21 Command Sub Syntax Error [sush stdout] Expected u'', got '2\n\n0\n' [sush status] Expected 2, got 0 stdout: 2 0stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: ) |
brush | 21 Command Sub Syntax Error [brush stdout] Expected u'', got '\n0\n\n0\n' [brush status] Expected 2, got 0 stdout: 0 0stderr: [31mERROR[0m main: syntax error at end of input |
toysh | 22 Pipeline - http://landley.net/notes-2019.html#16-12-2019 [toysh stdout] Expected 'hello\n-@hello@-\n', got '\n' stdout: stderr: sh: sh: read: No such file or directoryread: No such file or directory sh: read: No such file or directory |