spec test index / oilshell.org
status | dash | bash | mksh | ash | osh | osh_ALT | |
pass | 24 | 33 | 26 | 27 | 29 | 29 | |
N-I | 7 | 0 | 3 | 5 | 0 | 0 | |
BUG | 3 | 1 | 5 | 2 | 0 | 0 | |
FAIL | 0 | 0 | 0 | 0 | 5 | 5 | |
total | 34 | 34 | 34 | 34 | 34 | 34 | |
case | dash | bash | mksh | ash | osh | osh_ALT | description |
0 | pass | pass | pass | pass | pass | pass | glob double quote escape |
1 | pass | pass | pass | pass | pass | pass | glob single quote escape |
2 | pass | pass | pass | pass | pass | pass | glob backslash escape |
3 | pass | pass | pass | pass | pass | pass | 1 char glob |
4 | pass | pass | pass | pass | pass | pass | 0 char glob -- does NOT work |
5 | pass | pass | pass | pass | pass | pass | looks like glob at the start, but isn't |
6 | pass | pass | pass | pass | pass | pass | looks like glob plus negation at the start, but isn't |
7 | pass | pass | pass | pass | pass | pass | glob can expand to command and arg |
8 | pass | pass | pass | pass | pass | pass | glob after var expansion |
9 | pass | pass | pass | pass | pass | pass | quoted var expansion with glob meta characters |
10 | pass | pass | pass | pass | pass | pass | glob after "$@" expansion |
11 | pass | pass | pass | pass | pass | pass | glob after $@ expansion |
12 | pass | pass | pass | pass | pass | pass | no glob after ~ expansion |
13 | N-I | pass | pass | N-I | pass | pass | store literal globs in array then expand |
details | details | ||||||
14 | N-I | pass | pass | N-I | pass | pass | glob inside array |
details | details | ||||||
15 | pass | pass | pass | pass | pass | pass | glob with escaped - in char class |
16 | pass | pass | BUG | pass | pass | pass | glob with char class expression |
details | |||||||
17 | pass | pass | pass | pass | pass | pass | glob double quotes |
18 | pass | pass | pass | pass | pass | pass | glob escaped |
19 | pass | pass | BUG | BUG | pass | pass | : escaped |
details | details | ||||||
20 | pass | BUG | pass | pass | pass | pass | Redirect to glob, not evaluated |
details | |||||||
21 | pass | pass | pass | pass | pass | pass | Glob after var manipulation |
22 | pass | pass | pass | pass | pass | pass | Glob after part joining |
23 | pass | pass | pass | pass | pass | pass | Glob flags on file system |
24 | pass | pass | pass | pass | pass | pass | set -o noglob |
25 | N-I | pass | N-I | N-I | pass | pass | shopt -s nullglob |
details | details | details | |||||
26 | N-I | pass | N-I | N-I | FAIL | FAIL | shopt -s failglob |
details | details | details | details | details | |||
27 | N-I | pass | N-I | N-I | FAIL | FAIL | Don't glob flags on file system with GLOBIGNORE |
details | details | details | details | details | |||
28 | BUG | pass | pass | pass | pass | pass | Splitting/Globbing doesn't happen on local assignment |
details | |||||||
29 | pass | pass | pass | pass | pass | pass | Glob of unescaped [[] and []] |
30 | BUG | pass | BUG | pass | pass | pass | Glob of negated unescaped [[] and []] |
details | details | ||||||
31 | N-I | pass | pass | pass | FAIL | FAIL | PatSub of unescaped [[] and []] |
details | details | details | |||||
32 | N-I | pass | BUG | pass | FAIL | FAIL | PatSub of negated unescaped [[] and []] |
details | details | details | details | ||||
33 | BUG | pass | BUG | BUG | FAIL | FAIL | Glob unicode char |
details | details | details | details | details |
168 passed, 0 OK, 15 not implemented, 11 BUG, 5 failed, 0 timeouts, 0 cases skipped 5 failed under osh
dash | 13 store literal globs in array then expand stdout: stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: Syntax error: "(" unexpected |
ash | 13 store literal globs in array then expand stdout: stderr: _tmp/spec-bin/ash: syntax error: unexpected "(" |
dash | 14 glob inside array stdout: stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: Syntax error: "(" unexpected |
ash | 14 glob inside array stdout: stderr: _tmp/spec-bin/ash: syntax error: unexpected "(" |
mksh | 16 glob with char class expression stdout: _tmp/*.[[:punct:]E]stderr: |
mksh | 19 : escaped stdout: _tmp/*.[[:punct:]] _tmp/*.[[:punct:]]stderr: |
ash | 19 : escaped stdout: _tmp/foo.- _tmp/foo.-stderr: |
bash | 20 Redirect to glob, not evaluated stdout: stderr: cat: '_tmp/*.F': No such file or directory |
dash | 25 shopt -s nullglob stdout: ['_tmp/spec-tmp/*.nonexistent'] ['_tmp/spec-tmp/*.nonexistent']stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: shopt: not found |
mksh | 25 shopt -s nullglob stdout: ['_tmp/spec-tmp/*.nonexistent'] ['_tmp/spec-tmp/*.nonexistent']stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[2]: shopt: not found |
ash | 25 shopt -s nullglob stdout: ['_tmp/spec-tmp/*.nonexistent'] ['_tmp/spec-tmp/*.nonexistent']stderr: _tmp/spec-bin/ash: shopt: not found |
dash | 26 shopt -s failglob stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: shopt: not found |
mksh | 26 shopt -s failglob stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[2]: shopt: not found |
ash | 26 shopt -s failglob stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: _tmp/spec-bin/ash: shopt: not found |
osh | 26 shopt -s failglob [osh stdout] Expected u"['*.ZZ']\nstatus=1\n", got "['*.ZZ']\n" [osh status] Expected 0, got 1 stdout: ['*.ZZ']stderr: Traceback (most recent call last): File "/home/andy/git/oilshell/oil/bin/oil.py", line 921, in <module> sys.exit(main(sys.argv)) File "/home/andy/git/oilshell/oil/bin/oil.py", line 867, in main return AppBundleMain(argv) File "/home/andy/git/oilshell/oil/bin/oil.py", line 840, in AppBundleMain status = ShellMain('osh', argv0, main_argv, login_shell) File "/home/andy/git/oilshell/oil/bin/oil.py", line 656, in ShellMain status = main_loop.Batch(ex, c_parser, arena, nodes_out=nodes_out) File "/home/andy/git/oilshell/oil/core/main_loop.py", line 166, in Batch is_return, is_fatal = ex.ExecuteAndCatch(node) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1850, in ExecuteAndCatch status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1795, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1014, in _Dispatch cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1780, in EvalWordSequence2 self._EvalWordFrame(frame, strs) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1549, in _EvalWordFrame results = self.globber.Expand(a) File "/home/andy/git/oilshell/oil/osh/glob_.py", line 387, in Expand raise NotImplementedError() NotImplementedError |
osh_ALT | 26 shopt -s failglob [osh_ALT stdout] Expected u"['*.ZZ']\nstatus=1\n", got "['*.ZZ']\n" [osh_ALT status] Expected 0, got 1 stdout: ['*.ZZ']stderr: Traceback (most recent call last): File "/home/andy/git/oilshell/oil/bin/oil.py", line 896, in _cpython_main_hook sys.exit(main(sys.argv)) File "/home/andy/git/oilshell/oil/bin/oil.py", line 867, in main return AppBundleMain(argv) File "/home/andy/git/oilshell/oil/bin/oil.py", line 840, in AppBundleMain status = ShellMain('osh', argv0, main_argv, login_shell) File "/home/andy/git/oilshell/oil/bin/oil.py", line 656, in ShellMain status = main_loop.Batch(ex, c_parser, arena, nodes_out=nodes_out) File "/home/andy/git/oilshell/oil/core/main_loop.py", line 172, in Batch return status File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1850, in ExecuteAndCatch status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1795, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1065, in _Dispatch self.mem.PopTemp() File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1780, in EvalWordSequence2 self._EvalWordFrame(frame, strs) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1549, in _EvalWordFrame results = self.globber.Expand(a) File "/home/andy/git/oilshell/oil/osh/glob_.py", line 387, in Expand raise NotImplementedError() NotImplementedError FATAL: couldn't import from app bundle '/home/andy/git/oilshell/oil/_tmp/oil-tar-test/oil-0.8.pre1/_bin/osh' (1) Stripping the oil.ovm binary may cause this error. See https://github.com/oilshell/oil/issues/47 |
dash | 27 Don't glob flags on file system with GLOBIGNORE stdout: hello zzzzzstderr: |
mksh | 27 Don't glob flags on file system with GLOBIGNORE stdout: hello zzzzzstderr: |
ash | 27 Don't glob flags on file system with GLOBIGNORE stdout: hello zzzzzstderr: |
osh | 27 Don't glob flags on file system with GLOBIGNORE [osh stdout] Expected u'-* hello zzzz?\n', got 'hello zzzzz' stdout: hello zzzzzstderr: |
osh_ALT | 27 Don't glob flags on file system with GLOBIGNORE [osh_ALT stdout] Expected u'-* hello zzzz?\n', got '' [osh_ALT status] Expected 0, got 99 stdout: stderr: |
dash | 28 Splitting/Globbing doesn't happen on local assignment stdout: stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: local: INSTALL.txt: bad variable name |
dash | 30 Glob of negated unescaped [[] and []] stdout: _[^[z] _[^]z] _[^[z] _[^]z]stderr: |
mksh | 30 Glob of negated unescaped [[] and []] stdout: _[^[z] _[^]z] _[^[z] _[^]z]stderr: |
dash | 31 PatSub of unescaped [[] and []] stdout: stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: Bad substitution |
osh | 31 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: |
osh_ALT | 31 PatSub of unescaped [[] and []] [osh_ALT 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 | 32 PatSub of negated unescaped [[] and []] stdout: stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: Bad substitution |
mksh | 32 PatSub of negated unescaped [[] and []] stdout: <foo] [foo> <foo]stderr: |
osh | 32 PatSub of negated unescaped [[] and []] [osh stdout] Expected '[<<<<\n>>>>]\n[<<<<\n', got '[<<<<\n[foo]\n' [osh status] Expected 0, got 1 stdout: [<<<< [foo]stderr: Traceback (most recent call last): File "/home/andy/git/oilshell/oil/bin/oil.py", line 921, in <module> sys.exit(main(sys.argv)) File "/home/andy/git/oilshell/oil/bin/oil.py", line 867, in main return AppBundleMain(argv) File "/home/andy/git/oilshell/oil/bin/oil.py", line 840, in AppBundleMain status = ShellMain('osh', argv0, main_argv, login_shell) File "/home/andy/git/oilshell/oil/bin/oil.py", line 656, in ShellMain status = main_loop.Batch(ex, c_parser, arena, nodes_out=nodes_out) File "/home/andy/git/oilshell/oil/core/main_loop.py", line 166, in Batch is_return, is_fatal = ex.ExecuteAndCatch(node) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1850, in ExecuteAndCatch status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1795, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1014, in _Dispatch cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1743, in EvalWordSequence2 self._EvalWordToParts(w, False, part_vals) # not double quoted File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1360, in _EvalWordToParts self._EvalWordPart(p, part_vals, quoted=quoted, is_subst=is_subst) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1253, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1018, in _EvalBracedVarSub regex, warnings = glob_.GlobToERE(pat_val.s) File "/home/andy/git/oilshell/oil/osh/glob_.py", line 337, in GlobToERE regex = _GenerateERE(parts) File "/home/andy/git/oilshell/oil/osh/glob_.py", line 291, in _GenerateERE raise AssertionError(part.id) AssertionError: 273 |
osh_ALT | 32 PatSub of negated unescaped [[] and []] [osh_ALT stdout] Expected '[<<<<\n>>>>]\n[<<<<\n', got '[<<<<\n[foo]\n' [osh_ALT status] Expected 0, got 1 stdout: [<<<< [foo]stderr: Traceback (most recent call last): File "/home/andy/git/oilshell/oil/bin/oil.py", line 896, in _cpython_main_hook sys.exit(main(sys.argv)) File "/home/andy/git/oilshell/oil/bin/oil.py", line 867, in main return AppBundleMain(argv) File "/home/andy/git/oilshell/oil/bin/oil.py", line 840, in AppBundleMain status = ShellMain('osh', argv0, main_argv, login_shell) File "/home/andy/git/oilshell/oil/bin/oil.py", line 656, in ShellMain status = main_loop.Batch(ex, c_parser, arena, nodes_out=nodes_out) File "/home/andy/git/oilshell/oil/core/main_loop.py", line 172, in Batch return status File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1850, in ExecuteAndCatch status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1795, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1065, in _Dispatch self.mem.PopTemp() File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1743, in EvalWordSequence2 self._EvalWordToParts(w, False, part_vals) # not double quoted File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1360, in _EvalWordToParts self._EvalWordPart(p, part_vals, quoted=quoted, is_subst=is_subst) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1253, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1056, in _EvalBracedVarSub begin = self.arith_ev.EvalToInt(op.begin) File "/home/andy/git/oilshell/oil/osh/glob_.py", line 337, in GlobToERE regex = _GenerateERE(parts) File "/home/andy/git/oilshell/oil/osh/glob_.py", line 296, in _GenerateERE out.append('.') AssertionError: 273 FATAL: couldn't import from app bundle '/home/andy/git/oilshell/oil/_tmp/oil-tar-test/oil-0.8.pre1/_bin/osh' (1) Stripping the oil.ovm binary may cause this error. See https://github.com/oilshell/oil/issues/47 |
dash | 33 Glob unicode char stdout: __a__stderr: |
mksh | 33 Glob unicode char stdout: __a__stderr: |
ash | 33 Glob unicode char stdout: __a__stderr: |
osh | 33 Glob unicode char [osh stdout] Expected '__a__ __\xce\xbc__\n', got '__a__\n' stdout: __a__stderr: |
osh_ALT | 33 Glob unicode char [osh_ALT stdout] Expected '__a__ __\xce\xbc__\n', got '__a__\n' stdout: __a__stderr: |