| status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
| pass | 38 | 24 | 27 | 19 | 26 | 28 | 16 | 29 | 29 | 36 | |
| ok | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | |
| N-I | 0 | 12 | 10 | 0 | 8 | 0 | 0 | 0 | 0 | 0 | |
| BUG | 1 | 3 | 2 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | |
| FAIL | 0 | 0 | 0 | 20 | 0 | 11 | 23 | 10 | 10 | 2 | |
| total | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 | |
| case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
| 0 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | glob double quote escape |
| 1 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | glob single quote escape |
| 2 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | glob backslash escape |
| 3 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | 1 char glob |
| details | |||||||||||
| 4 | pass | pass | pass | FAIL | pass | pass | pass | pass | pass | pass | 0 char glob -- does NOT work |
| details | |||||||||||
| 5 | pass | pass | pass | FAIL | pass | pass | pass | pass | pass | pass | looks like glob at the start, but isn't |
| details | |||||||||||
| 6 | pass | pass | pass | FAIL | pass | pass | pass | pass | pass | pass | looks like glob plus negation at the start, but isn't |
| details | |||||||||||
| 7 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | glob can expand to command and arg |
| details | |||||||||||
| 8 | pass | pass | pass | FAIL | pass | pass | FAIL | pass | pass | pass | glob after var expansion |
| details | details | ||||||||||
| 9 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | quoted var expansion with glob meta characters |
| 10 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | glob after "$@" expansion |
| 11 | pass | pass | pass | FAIL | pass | pass | pass | pass | pass | pass | glob after $@ expansion |
| details | |||||||||||
| 12 | pass | pass | pass | FAIL | pass | pass | pass | FAIL | pass | pass | no glob after ~ expansion |
| details | details | ||||||||||
| 13 | pass | N-I | N-I | FAIL | pass | pass | FAIL | pass | pass | pass | store literal globs in array then expand |
| details | details | details | details | ||||||||
| 14 | pass | N-I | N-I | pass | pass | pass | FAIL | pass | pass | pass | glob inside array |
| details | details | details | |||||||||
| 15 | pass | pass | pass | FAIL | pass | pass | FAIL | FAIL | pass | pass | glob with escaped - in char class |
| details | details | details | |||||||||
| 16 | pass | pass | pass | pass | BUG | pass | FAIL | pass | pass | pass | glob with char class expression |
| details | details | ||||||||||
| 17 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | glob double quotes |
| 18 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | glob escaped |
| 19 | BUG | pass | BUG | FAIL | BUG | FAIL | FAIL | FAIL | pass | pass | : escaped |
| details | details | details | details | details | details | details | |||||
| 20 | pass | pass | pass | FAIL | pass | pass | FAIL | pass | pass | pass | Glob after var manipulation |
| details | details | ||||||||||
| 21 | pass | pass | pass | FAIL | pass | pass | FAIL | pass | pass | pass | Glob after part joining |
| details | details | ||||||||||
| 22 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Glob flags on file system |
| 23 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | set -o noglob |
| details | |||||||||||
| 24 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | set -o noglob (bug #698) |
| 25 | pass | N-I | N-I | FAIL | N-I | FAIL | FAIL | pass | pass | pass | shopt -s nullglob |
| details | details | details | details | details | details | ||||||
| 26 | pass | N-I | N-I | FAIL | N-I | FAIL | FAIL | FAIL | FAIL | pass | shopt -s failglob in command context |
| details | details | details | details | details | details | details | details | ||||
| 27 | pass | N-I | N-I | FAIL | N-I | FAIL | FAIL | FAIL | FAIL | pass | shopt -s failglob in loop context |
| details | details | details | details | details | details | details | details | ||||
| 28 | pass | N-I | N-I | FAIL | N-I | FAIL | FAIL | pass | FAIL | pass | shopt -s failglob in array literal context |
| details | details | details | details | details | details | details | |||||
| 29 | pass | N-I | N-I | FAIL | N-I | FAIL | FAIL | pass | FAIL | pass | shopt -s failglob exits properly in command context with set -e |
| details | details | details | details | details | details | details | |||||
| 30 | pass | N-I | N-I | FAIL | N-I | FAIL | FAIL | pass | FAIL | pass | shopt -s failglob exits properly in loop context with set -e |
| details | details | details | details | details | details | details | |||||
| 31 | pass | N-I | N-I | FAIL | N-I | FAIL | FAIL | FAIL | FAIL | ok | shopt -s failglob behavior on single line with semicolon |
| details | details | details | details | details | details | details | details | details | |||
| 32 | pass | BUG | pass | pass | pass | pass | FAIL | pass | pass | pass | Splitting/Globbing doesn't happen on local assignment |
| details | details | ||||||||||
| 33 | pass | pass | pass | FAIL | pass | pass | FAIL | FAIL | FAIL | pass | Glob of unescaped [[] and []] |
| details | details | details | details | ||||||||
| 34 | pass | BUG | pass | pass | BUG | FAIL | pass | FAIL | FAIL | pass | Glob of negated unescaped [[] and []] |
| details | details | details | details | details | |||||||
| 35 | pass | N-I | pass | pass | pass | pass | FAIL | FAIL | FAIL | FAIL | PatSub of unescaped [[] and []] |
| details | details | details | details | details | |||||||
| 36 | pass | N-I | pass | pass | BUG | FAIL | FAIL | FAIL | FAIL | FAIL | PatSub of negated unescaped [[] and []] |
| details | details | details | details | details | details | details | |||||
| 37 | pass | BUG | BUG | pass | BUG | pass | pass | pass | pass | pass | Glob unicode char |
| details | details | details | |||||||||
| 38 | pass | N-I | N-I | FAIL | N-I | FAIL | FAIL | pass | pass | pass | dotglob (bash option that dashglob is roughly consistent with) |
| details | details | details | details | details | details |
272 passed, 1 OK, 30 not implemented, 11 BUG, 76 failed, 0 timeouts, 0 cases skipped 2 failed under osh
| toysh | 3 1 char glob [toysh stdout] Expected 'bin\n', got '[b]in\n' stdout: [b]instderr: |
| zsh | 4 0 char glob -- does NOT work [zsh stdout] Expected '[]bin\n', got '' [zsh status] Expected 0, got 1 stdout: stderr: zsh: no matches found: []bin |
| zsh | 5 looks like glob at the start, but isn't [zsh stdout] Expected '[bin\n', got '' [zsh status] Expected 0, got 1 stdout: stderr: zsh: bad pattern: [bin |
| zsh | 6 looks like glob plus negation at the start, but isn't [zsh stdout] Expected '[!bin\n', got '' [zsh status] Expected 0, got 1 stdout: stderr: zsh: bad pattern: [!bin |
| toysh | 7 glob can expand to command and arg [toysh stdout] Expected 'spec/testdata/echo.sz\n', got '' [toysh status] Expected 0, got 127 stdout: stderr: sh: spec/testdata/echo.sz: Permission denied |
| zsh | 8 glob after var expansion [zsh stdout] Expected '_tmp/a.A _tmp/aa.A _tmp/b.B\n', got '_tmp/*.A _tmp/*.B\n' stdout: _tmp/*.A _tmp/*.Bstderr: |
| toysh | 8 glob after var expansion [toysh stdout] Expected '_tmp/a.A _tmp/aa.A _tmp/b.B\n', got '_tmp/aa.A _tmp/a.A _tmp/b.B\n' stdout: _tmp/aa.A _tmp/a.A _tmp/b.Bstderr: |
| zsh | 11 glob after $@ expansion [zsh stdout] Expected '_tmp/b.B\n', got '_tmp/*.B\n' stdout: _tmp/*.Bstderr: |
| zsh | 12 no glob after ~ expansion [zsh stdout] Expected '*/*.py\n', got '' [zsh status] Expected 0, got 1 stdout: stderr: zsh: no matches found: */*.py |
| sush | 12 no glob after ~ expansion [sush stdout] Expected '*/*.py\n', got '_tmp/*.py\n' stdout: _tmp/*.pystderr: |
| dash | 13 store literal globs in array then expand stdout: stderr: dash: 2: Syntax error: "(" unexpected
|
| ash | 13 store literal globs in array then expand stdout: stderr: ash: syntax error: unexpected "("
|
| zsh | 13 store literal globs in array then expand [zsh stdout] Expected '_tmp/a.A _tmp/aa.A _tmp/b.B\n', got '_tmp/*.A _tmp/*.B\n' stdout: _tmp/*.A _tmp/*.Bstderr: |
| toysh | 13 store literal globs in array then expand [toysh stdout] Expected '_tmp/a.A _tmp/aa.A _tmp/b.B\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 2: sh: syntax error: "_tmp/*.A" |
| dash | 14 glob inside array stdout: stderr: dash: 2: Syntax error: "(" unexpected
|
| ash | 14 glob inside array stdout: stderr: ash: syntax error: unexpected "("
|
| toysh | 14 glob inside array [toysh stdout] Expected '_tmp/a.A _tmp/aa.A _tmp/b.B\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 2: sh: syntax error: _tmp/*.A |
| zsh | 15 glob with escaped - in char class [zsh stdout] Expected '_tmp/c.C _tmp/c.C _tmp/foo.-\n', got '_tmp/c.C _tmp/c.C\n' stdout: _tmp/c.C _tmp/c.Cstderr: |
| toysh | 15 glob with escaped - in char class [toysh stdout] Expected '_tmp/c.C _tmp/c.C _tmp/foo.-\n', got '_tmp/c.C _tmp/c.C\n' stdout: _tmp/c.C _tmp/c.Cstderr: |
| sush | 15 glob with escaped - in char class [sush stdout] Expected '_tmp/c.C _tmp/c.C _tmp/foo.-\n', got '_tmp/c.C _tmp/c.C\n' stdout: _tmp/c.C _tmp/c.Cstderr: |
| mksh | 16 glob with char class expression stdout: _tmp/*.[[:punct:]E]stderr: |
| toysh | 16 glob with char class expression [toysh stdout] Expected '_tmp/e.E _tmp/foo.-\n', got '_tmp/*.[[:punct:]E]\n' stdout: _tmp/*.[[:punct:]E]stderr: |
| bash | 19 : escaped stdout: _tmp/foo.- _tmp/foo.-stderr: |
| ash | 19 : escaped stdout: _tmp/foo.- _tmp/foo.-stderr: |
| zsh | 19 : escaped [zsh stdout] Expected '_tmp/foo.- _tmp/*.[[:punct:]]\n', got '_tmp/foo.- _tmp/foo.-\n' stdout: _tmp/foo.- _tmp/foo.-stderr: |
| mksh | 19 : escaped stdout: _tmp/*.[[:punct:]] _tmp/*.[[:punct:]]stderr: |
| ksh | 19 : escaped [ksh stdout] Expected '_tmp/foo.- _tmp/*.[[:punct:]]\n', got '_tmp/foo.- _tmp/foo.-\n' stdout: _tmp/foo.- _tmp/foo.-stderr: |
| toysh | 19 : escaped [toysh stdout] Expected '_tmp/foo.- _tmp/*.[[:punct:]]\n', got '_tmp/*.[[:punct:]] _tmp/*.[[:punct:]]\n' stdout: _tmp/*.[[:punct:]] _tmp/*.[[:punct:]]stderr: |
| sush | 19 : escaped [sush stdout] Expected '_tmp/foo.- _tmp/*.[[:punct:]]\n', got '_tmp/foo.- _tmp/foo.-\n' stdout: _tmp/foo.- _tmp/foo.-stderr: |
| zsh | 20 Glob after var manipulation [zsh stdout] Expected '_tmp/*.zzzZ _tmp/bar.zzz _tmp/foo.zzz\n', got '_tmp/*.zzzZ _tmp/*.zzz\n' stdout: _tmp/*.zzzZ _tmp/*.zzzstderr: |
| toysh | 20 Glob after var manipulation [toysh stdout] Expected '_tmp/*.zzzZ _tmp/bar.zzz _tmp/foo.zzz\n', got '_tmp/*.zzzZ _tmp/foo.zzz _tmp/bar.zzz\n' stdout: _tmp/*.zzzZ _tmp/foo.zzz _tmp/bar.zzzstderr: |
| zsh | 21 Glob after part joining [zsh stdout] Expected '_tmp/*.yy _tmp/bar.yyy _tmp/foo.yyy\n', got '_tmp/*.yy _tmp/*.yyy\n' stdout: _tmp/*.yy _tmp/*.yyystderr: |
| toysh | 21 Glob after part joining [toysh stdout] Expected '_tmp/*.yy _tmp/bar.yyy _tmp/foo.yyy\n', got '_tmp/*.yy _tmp/foo.yyy _tmp/bar.yyy\n' stdout: _tmp/*.yy _tmp/foo.yyy _tmp/bar.yyystderr: |
| toysh | 23 set -o noglob [toysh stdout] Expected '_tmp/spec-tmp/a.zz _tmp/spec-tmp/b.zz\n_tmp/spec-tmp/*.zz\n' Got '_tmp/spec-tmp/b.zz _tmp/spec-tmp/a.zz\n_tmp/spec-tmp/b.zz _tmp/spec-tmp/a.zz\n' stdout: _tmp/spec-tmp/b.zz _tmp/spec-tmp/a.zz _tmp/spec-tmp/b.zz _tmp/spec-tmp/a.zzstderr: set: bad -o noglob |
| dash | 25 shopt -s nullglob stdout: ['_tmp/spec-tmp/*.nonexistent'] ['_tmp/spec-tmp/*.nonexistent']stderr: dash: 2: shopt: not found |
| ash | 25 shopt -s nullglob stdout: ['_tmp/spec-tmp/*.nonexistent'] ['_tmp/spec-tmp/*.nonexistent']stderr: ash: shopt: not found |
| zsh | 25 shopt -s nullglob [zsh stdout] Expected "['_tmp/spec-tmp/*.nonexistent']\n[]\n", got '' [zsh status] Expected 0, got 1 stdout: stderr: zsh: no matches found: _tmp/spec-tmp/*.nonexistent zsh: command not found: shopt zsh: no matches found: _tmp/spec-tmp/*.nonexistent |
| mksh | 25 shopt -s nullglob stdout: ['_tmp/spec-tmp/*.nonexistent'] ['_tmp/spec-tmp/*.nonexistent']stderr: mksh: <stdin>[2]: shopt: not found |
| ksh | 25 shopt -s nullglob [ksh stdout] Expected "['_tmp/spec-tmp/*.nonexistent']\n[]\n", got "['_tmp/spec-tmp/*.nonexistent']\n['_tmp/spec-tmp/*.nonexistent']\n" stdout: ['_tmp/spec-tmp/*.nonexistent'] ['_tmp/spec-tmp/*.nonexistent']stderr: E: ksh: <stdin>[2]: shopt: inaccessible or not found |
| toysh | 25 shopt -s nullglob [toysh stdout] Expected "['_tmp/spec-tmp/*.nonexistent']\n[]\n", got "['_tmp/spec-tmp/*.nonexistent']\n['_tmp/spec-tmp/*.nonexistent']\n" stdout: ['_tmp/spec-tmp/*.nonexistent'] ['_tmp/spec-tmp/*.nonexistent']stderr: sh: shopt: No such file or directory |
| dash | 26 shopt -s failglob in command context stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: dash: 2: shopt: not found |
| ash | 26 shopt -s failglob in command context stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: ash: shopt: not found |
| zsh | 26 shopt -s failglob in command context [zsh stdout] Expected "['*.ZZ']\nstatus=1\n", got 'status=1\n' stdout: status=1stderr: zsh: no matches found: *.ZZ zsh: command not found: shopt zsh: no matches found: *.ZZ |
| mksh | 26 shopt -s failglob in command context stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: mksh: <stdin>[2]: shopt: not found |
| ksh | 26 shopt -s failglob in command context [ksh stdout] Expected "['*.ZZ']\nstatus=1\n", got "['*.ZZ']\n['*.ZZ']\nstatus=0\n" stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: E: ksh: <stdin>[2]: shopt: inaccessible or not found |
| toysh | 26 shopt -s failglob in command context [toysh stdout] Expected "['*.ZZ']\nstatus=1\n", got "['*.ZZ']\n['*.ZZ']\nstatus=0\n" stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: sh: shopt: No such file or directory |
| sush | 26 shopt -s failglob in command context [sush stdout] Expected "['*.ZZ']\nstatus=1\n", got "['*.ZZ']\n['*.ZZ']\nstatus=0\n" stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: shopt: failglob: not supported yet |
| brush | 26 shopt -s failglob in command context [brush stdout] Expected "['*.ZZ']\nstatus=1\n", got "['*.ZZ']\n['*.ZZ']\nstatus=0\n" stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: |
| dash | 27 shopt -s failglob in loop context stdout: *.ZZ status=0 *.ZZ status=0stderr: dash: 3: shopt: not found |
| ash | 27 shopt -s failglob in loop context stdout: *.ZZ status=0 *.ZZ status=0stderr: ash: shopt: not found |
| zsh | 27 shopt -s failglob in loop context [zsh stdout] Expected '*.ZZ\nstatus=0\nstatus=1\n', got '' [zsh status] Expected 0, got 1 stdout: stderr: zsh: no matches found: *.ZZ |
| mksh | 27 shopt -s failglob in loop context stdout: *.ZZ status=0 *.ZZ status=0stderr: mksh: <stdin>[3]: shopt: not found |
| ksh | 27 shopt -s failglob in loop context [ksh stdout] Expected '*.ZZ\nstatus=0\nstatus=1\n', got '*.ZZ\nstatus=0\n*.ZZ\nstatus=0\n' stdout: *.ZZ status=0 *.ZZ status=0stderr: E: ksh: <stdin>[3]: shopt: inaccessible or not found |
| toysh | 27 shopt -s failglob in loop context [toysh stdout] Expected '*.ZZ\nstatus=0\nstatus=1\n', got '*.ZZ\nstatus=0\n*.ZZ\nstatus=0\n' stdout: *.ZZ status=0 *.ZZ status=0stderr: sh: shopt: No such file or directory |
| sush | 27 shopt -s failglob in loop context [sush stdout] Expected '*.ZZ\nstatus=0\nstatus=1\n', got '*.ZZ\nstatus=0\n*.ZZ\nstatus=0\n' stdout: *.ZZ status=0 *.ZZ status=0stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: shopt: failglob: not supported yet |
| brush | 27 shopt -s failglob in loop context [brush stdout] Expected '*.ZZ\nstatus=0\nstatus=1\n', got '*.ZZ\nstatus=0\n*.ZZ\nstatus=0\n' stdout: *.ZZ status=0 *.ZZ status=0stderr: |
| dash | 28 shopt -s failglob in array literal context stdout: stderr: dash: 1: Syntax error: "(" unexpected
|
| ash | 28 shopt -s failglob in array literal context stdout: stderr: ash: syntax error: unexpected "("
|
| zsh | 28 shopt -s failglob in array literal context [zsh stdout] Expected '*.ZZ\nstatus=1\n', got '' [zsh status] Expected 0, got 1 stdout: stderr: zsh: no matches found: *.ZZ |
| mksh | 28 shopt -s failglob in array literal context stdout: *.ZZ status=0stderr: mksh: <stdin>[3]: shopt: not found |
| ksh | 28 shopt -s failglob in array literal context [ksh stdout] Expected '*.ZZ\nstatus=1\n', got '*.ZZ\nstatus=0\n' stdout: *.ZZ status=0stderr: E: ksh: <stdin>[3]: shopt: inaccessible or not found |
| toysh | 28 shopt -s failglob in array literal context [toysh stdout] Expected '*.ZZ\nstatus=1\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: *.ZZ |
| brush | 28 shopt -s failglob in array literal context [brush stdout] Expected '*.ZZ\nstatus=1\n', got '*.ZZ\nstatus=0\n' stdout: *.ZZ status=0stderr: |
| dash | 29 shopt -s failglob exits properly in command context with set -e stdout: ['*.ZZ']stderr: dash: 3: shopt: not found |
| ash | 29 shopt -s failglob exits properly in command context with set -e stdout: ['*.ZZ']stderr: ash: shopt: not found |
| zsh | 29 shopt -s failglob exits properly in command context with set -e [zsh stdout] Expected "['*.ZZ']\n", got '' stdout: stderr: zsh: no matches found: *.ZZ |
| mksh | 29 shopt -s failglob exits properly in command context with set -e stdout: ['*.ZZ']stderr: mksh: <stdin>[3]: shopt: not found |
| ksh | 29 shopt -s failglob exits properly in command context with set -e [ksh status] Expected 1, got 127 stdout: ['*.ZZ']stderr: E: ksh: <stdin>[3]: shopt: inaccessible or not found |
| toysh | 29 shopt -s failglob exits properly in command context with set -e [toysh stdout] Expected "['*.ZZ']\n", got "['*.ZZ']\n['*.ZZ']\nstatus=0\n" [toysh status] Expected 1, got 0 stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: set: bad -e sh: shopt: No such file or directory |
| brush | 29 shopt -s failglob exits properly in command context with set -e [brush stdout] Expected "['*.ZZ']\n", got "['*.ZZ']\n['*.ZZ']\nstatus=0\n" [brush status] Expected 1, got 0 stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: |
| dash | 30 shopt -s failglob exits properly in loop context with set -e stdout: *.ZZ status=0stderr: dash: 5: shopt: not found |
| ash | 30 shopt -s failglob exits properly in loop context with set -e stdout: *.ZZ status=0stderr: ash: shopt: not found |
| zsh | 30 shopt -s failglob exits properly in loop context with set -e [zsh stdout] Expected '*.ZZ\nstatus=0\n', got '' stdout: stderr: zsh: no matches found: *.ZZ |
| mksh | 30 shopt -s failglob exits properly in loop context with set -e stdout: *.ZZ status=0stderr: mksh: <stdin>[5]: shopt: not found |
| ksh | 30 shopt -s failglob exits properly in loop context with set -e [ksh status] Expected 1, got 127 stdout: *.ZZ status=0stderr: E: ksh: <stdin>[5]: shopt: inaccessible or not found |
| toysh | 30 shopt -s failglob exits properly in loop context with set -e [toysh stdout] Expected '*.ZZ\nstatus=0\n', got '*.ZZ\nstatus=0\n*.ZZ\nstatus=0\n' [toysh status] Expected 1, got 0 stdout: *.ZZ status=0 *.ZZ status=0stderr: set: bad -e sh: shopt: No such file or directory |
| brush | 30 shopt -s failglob exits properly in loop context with set -e [brush stdout] Expected '*.ZZ\nstatus=0\n', got '*.ZZ\nstatus=0\n*.ZZ\nstatus=0\n' [brush status] Expected 1, got 0 stdout: *.ZZ status=0 *.ZZ status=0stderr: |
| dash | 31 shopt -s failglob behavior on single line with semicolon stdout: *.ZZ status=0 *.ZZ status=0stderr: dash: 1: shopt: not found |
| ash | 31 shopt -s failglob behavior on single line with semicolon stdout: *.ZZ status=0 *.ZZ status=0stderr: ash: shopt: not found |
| zsh | 31 shopt -s failglob behavior on single line with semicolon [zsh stdout] Expected 'status=1\n', got '' [zsh status] Expected 0, got 1 stdout: stderr: zsh: command not found: shopt zsh: no matches found: *.ZZ |
| mksh | 31 shopt -s failglob behavior on single line with semicolon stdout: *.ZZ status=0 *.ZZ status=0stderr: mksh: <stdin>[1]: shopt: not found |
| ksh | 31 shopt -s failglob behavior on single line with semicolon [ksh stdout] Expected 'status=1\n', got '*.ZZ\nstatus=0\n*.ZZ\nstatus=0\n' stdout: *.ZZ status=0 *.ZZ status=0stderr: E: ksh: <stdin>[1]: shopt: inaccessible or not found |
| toysh | 31 shopt -s failglob behavior on single line with semicolon [toysh stdout] Expected 'status=1\n', got '*.ZZ\nstatus=0\n*.ZZ\nstatus=0\n' stdout: *.ZZ status=0 *.ZZ status=0stderr: sh: shopt: No such file or directory |
| sush | 31 shopt -s failglob behavior on single line with semicolon [sush stdout] Expected 'status=1\n', got '*.ZZ\nstatus=0\n*.ZZ\nstatus=0\n' stdout: *.ZZ status=0 *.ZZ status=0stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: shopt: failglob: not supported yet |
| brush | 31 shopt -s failglob behavior on single line with semicolon [brush stdout] Expected 'status=1\n', got '*.ZZ\nstatus=0\n*.ZZ\nstatus=0\n' stdout: *.ZZ status=0 *.ZZ status=0stderr: |
| osh | 31 shopt -s failglob behavior on single line with semicolon stdout: status=1 status=1stderr: echo *.ZZ; echo status=$? # bash doesn't execute the second part! ^~~~ [ stdin ]:2: failglob: Pattern '*.ZZ' matched no files echo *.ZZ ^~~~ [ stdin ]:3: failglob: Pattern '*.ZZ' matched no files |
| dash | 32 Splitting/Globbing doesn't happen on local assignment stdout: stderr: dash: 4: local: INSTALL-old.txt: bad variable name |
| toysh | 32 Splitting/Globbing doesn't happen on local assignment [toysh stdout] Expected 'void *\n', got 'void\n' stdout: voidstderr: local: bad fastlex.so local: bad line_input.so local: bad fanos.so local: bad fastfunc.so local: bad NOTES-jshape.txt local: bad libc.so local: bad Python-2.7.13 local: bad shell.nix local: bad INSTALL-old.txt local: bad LICENSE.txt local: bad NOTES.txt local: bad oils-version.txt local: bad README-index.md local: bad local.sh local: bad configure-test.sh local: bad INSTALL.txt local: bad README.md local: bad Z.txt local: bad _soil-jobs local: bad Rplots.pdf local: bad posix_.so local: bad TODO.txt local: bad build.ninja local: bad README-native.txt local: bad NINJA-config.sh |
| zsh | 33 Glob of unescaped [[] and []] [zsh stdout] Expected '[ ]\n[ ]\n', got '' [zsh status] Expected 0, got 1 stdout: stderr: zsh: bad pattern: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/glob.test.sh.4031735/33-zsh/[ zsh: no matches found: [[z] |
| toysh | 33 Glob of unescaped [[] and []] [toysh stdout] Expected '[ ]\n[ ]\n', got '[[z] []z]\n[[z] []z]\n' stdout: [[z] []z] [[z] []z]stderr: |
| sush | 33 Glob of unescaped [[] and []] [sush stdout] Expected '[ ]\n[ ]\n', got '[ ]\n[ []z]\n' stdout: [ ] [ []z]stderr: |
| brush | 33 Glob of unescaped [[] and []] [brush stdout] Expected '[ ]\n[ ]\n', got '[ []z]\n[ []z]\n' stdout: [ []z] [ []z]stderr: |
| dash | 34 Glob of negated unescaped [[] and []] stdout: _[^[z] _[^]z] _[^[z] _[^]z]stderr: |
| mksh | 34 Glob of negated unescaped [[] and []] stdout: _[^[z] _[^]z] _[^[z] _[^]z]stderr: |
| ksh | 34 Glob of negated unescaped [[] and []] [ksh stdout] Expected '_G _G\n_G _G\n', got '_[^[z] _[^]z]\n_[^[z] _[^]z]\n' stdout: _[^[z] _[^]z] _[^[z] _[^]z]stderr: |
| sush | 34 Glob of negated unescaped [[] and []] [sush stdout] Expected '_G _G\n_G _G\n', got '_G _G\n_G _[^]z]\n' stdout: _G _G _G _[^]z]stderr: |
| brush | 34 Glob of negated unescaped [[] and []] [brush stdout] Expected '_G _G\n_G _G\n', got '_G _[^]z]\n_G _[^]z]\n' stdout: _G _[^]z] _G _[^]z]stderr: |
| dash | 35 PatSub of unescaped [[] and []] stdout: stderr: dash: 2: Bad substitution |
| toysh | 35 PatSub of unescaped [[] and []] [toysh stdout] Expected '<foo]\n[foo>\n<foo]\n[foo>\n', got '[foo]\n[foo]\n[foo]\n[foo]\n' stdout: [foo] [foo] [foo] [foo]stderr: |
| sush | 35 PatSub of unescaped [[] and []] [sush stdout] Expected '<foo]\n[foo>\n<foo]\n[foo>\n', got '<foo]\n[foo]\n<foo]\n[foo]\n' stdout: <foo] [foo] <foo] [foo]stderr: |
| brush | 35 PatSub of unescaped [[] and []] [brush stdout] Expected '<foo]\n[foo>\n<foo]\n[foo>\n', got '<foo]\n<foo]\n[foo]\n' stdout: <foo] <foo] [foo]stderr: [31mERROR[0m error: invalid regex: Parsing error at position 11: Invalid character class; expression: '(?ms)[\]z\]' |
| osh | 35 PatSub of unescaped [[] and []] [osh stdout] Expected '<foo]\n[foo>\n<foo]\n[foo>\n', got '<foo]\n[foo>\n[foo]\n[foo>\n' stdout: <foo] [foo> [foo] [foo>stderr: |
| dash | 36 PatSub of negated unescaped [[] and []] stdout: stderr: dash: 2: Bad substitution |
| mksh | 36 PatSub of negated unescaped [[] and []] stdout: <foo] [foo> <foo]stderr: |
| ksh | 36 PatSub of negated unescaped [[] and []] [ksh stdout] Expected '[<<<<\n>>>>]\n[<<<<\n', got '<foo]\n[foo>\n<foo]\n' stdout: <foo] [foo> <foo]stderr: |
| toysh | 36 PatSub of negated unescaped [[] and []] [toysh stdout] Expected '[<<<<\n>>>>]\n[<<<<\n', got '[foo]\n[foo]\n[foo]\n' stdout: [foo] [foo] [foo]stderr: |
| sush | 36 PatSub of negated unescaped [[] and []] [sush stdout] Expected '[<<<<\n>>>>]\n[<<<<\n', got '[<<<<\n[foo]\n[<<<<\n' stdout: [<<<< [foo] [<<<<stderr: |
| brush | 36 PatSub of negated unescaped [[] and []] [brush stdout] Expected '[<<<<\n>>>>]\n[<<<<\n', got '[<<<<\n[<<<<\n' stdout: [<<<< [<<<<stderr: [31mERROR[0m error: invalid regex: Parsing error at position 12: Invalid character class; expression: '(?ms)[^\]z\]' |
| osh | 36 PatSub of negated unescaped [[] and []] [osh stdout] Expected '[<<<<\n>>>>]\n[<<<<\n', got '[<<<<\n>>>>]\n[foo]\n' stdout: [<<<< >>>>] [foo]stderr: |
| dash | 37 Glob unicode char stdout: __a__stderr: |
| ash | 37 Glob unicode char stdout: __a__stderr: |
| mksh | 37 Glob unicode char stdout: __a__stderr: |
| dash | 38 dotglob (bash option that dashglob is roughly consistent with) stdout: other otherstderr: dash: 6: shopt: not found |
| ash | 38 dotglob (bash option that dashglob is roughly consistent with) stdout: other otherstderr: ash: shopt: not found |
| zsh | 38 dotglob (bash option that dashglob is roughly consistent with) [zsh stdout] Expected 'other\n.foorc other\n', got 'other\nother\n' stdout: other otherstderr: zsh: command not found: shopt |
| mksh | 38 dotglob (bash option that dashglob is roughly consistent with) stdout: other otherstderr: mksh: <stdin>[6]: shopt: not found |
| ksh | 38 dotglob (bash option that dashglob is roughly consistent with) [ksh stdout] Expected 'other\n.foorc other\n', got 'other\nother\n' stdout: other otherstderr: E: ksh: <stdin>[6]: shopt: inaccessible or not found |
| toysh | 38 dotglob (bash option that dashglob is roughly consistent with) [toysh stdout] Expected 'other\n.foorc other\n', got 'other\nother\n' stdout: other otherstderr: sh: shopt: No such file or directory |