spec test index / oilshell.org
| case | dash | bash | mksh | ash | osh | osh_ALT | osh-byterun | description |
| 0 | pass | pass | pass | pass | pass | pass | pass | glob double quote escape |
| 1 | pass | pass | pass | pass | pass | pass | pass | glob single quote escape |
| 2 | pass | pass | pass | pass | pass | pass | pass | glob backslash escape |
| 3 | pass | pass | pass | pass | pass | pass | pass | 1 char glob |
| 4 | pass | pass | pass | pass | pass | pass | pass | 0 char glob -- does NOT work |
| 5 | pass | pass | pass | pass | pass | pass | pass | looks like glob at the start, but isn't |
| 6 | pass | pass | pass | pass | pass | pass | pass | looks like glob plus negation at the start, but isn't |
| 7 | pass | pass | pass | pass | pass | pass | pass | glob can expand to command and arg |
| 8 | pass | pass | pass | pass | pass | pass | pass | glob after var expansion |
| 9 | pass | pass | pass | pass | pass | pass | pass | quoted var expansion with glob meta characters |
| 10 | pass | pass | pass | pass | pass | pass | pass | glob after "$@" expansion |
| 11 | pass | pass | pass | pass | pass | pass | pass | glob after $@ expansion |
| 12 | pass | pass | pass | pass | pass | pass | pass | no glob after ~ expansion |
| 13 | N-I | pass | pass | N-I | pass | pass | pass | store literal globs in array then expand |
| details | details | |||||||
| 14 | N-I | pass | pass | N-I | pass | pass | pass | glob inside array |
| details | details | |||||||
| 15 | pass | pass | pass | pass | pass | pass | pass | glob with escaped - in char class |
| 16 | pass | pass | BUG | pass | pass | pass | pass | glob with char class expression |
| details | ||||||||
| 17 | pass | pass | pass | pass | pass | pass | pass | glob double quotes |
| 18 | pass | pass | pass | pass | pass | pass | pass | glob escaped |
| 19 | pass | pass | BUG | pass | pass | pass | pass | : escaped |
| details | ||||||||
| 20 | pass | BUG | pass | pass | pass | pass | pass | Redirect to glob, not evaluated |
| details | ||||||||
| 21 | pass | pass | pass | pass | pass | pass | pass | Glob after var manipulation |
| 22 | pass | pass | pass | pass | pass | pass | pass | Glob after part joining |
| 23 | pass | pass | pass | pass | pass | pass | pass | Glob flags on file system |
| 24 | pass | pass | pass | pass | pass | pass | pass | set -o noglob |
| 25 | N-I | pass | N-I | N-I | pass | pass | pass | shopt -s nullglob |
| details | details | details | ||||||
| 26 | N-I | pass | N-I | N-I | FAIL | FAIL | FAIL | shopt -s failglob |
| details | details | details | details | details | details | |||
| 27 | N-I | pass | N-I | N-I | FAIL | FAIL | FAIL | Don't glob flags on file system with GLOBIGNORE |
| details | details | details | details | details | details | |||
| 28 | BUG | pass | pass | pass | pass | pass | pass | Splitting/Globbing doesn't happen on local assignment |
| details | ||||||||
| 29 | pass | pass | pass | pass | pass | pass | pass | Glob of unescaped [[] and []] |
| 30 | BUG | pass | BUG | pass | pass | pass | pass | Glob of negated unescaped [[] and []] |
| details | details | |||||||
| 31 | N-I | pass | pass | pass | FAIL | FAIL | FAIL | PatSub of unescaped [[] and []] |
| details | details | details | details | |||||
| 32 | N-I | pass | BUG | pass | FAIL | FAIL | FAIL | PatSub of negated unescaped [[] and []] |
| details | details | details | details | details |
197 passed, 0 ok, 15 known unimplemented, 7 known bugs, 4 failed, 0 skipped
| dash | 13 store literal globs in array then expand stdout: stderr: _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: _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: |
| 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: _tmp/spec-bin/dash: 2: shopt: not found |
| mksh | 25 shopt -s nullglob stdout: ['_tmp/spec-tmp/*.nonexistent'] ['_tmp/spec-tmp/*.nonexistent']stderr: _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: _tmp/spec-bin/dash: 2: shopt: not found |
| mksh | 26 shopt -s failglob stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: _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 "bin/osh", line 626, in <module>
main(sys.argv)
File "bin/osh", line 604, in main
sys.exit(AppBundleMain(argv))
File "bin/osh", line 578, in AppBundleMain
status = OshMain(argv0, main_argv, login_shell)
File "bin/osh", line 388, in OshMain
status = ex.ExecuteAndRunExitTrap(node)
File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 1244, in ExecuteAndRunExitTrap
status = self.Execute(node)
File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 1239, in Execute
status, _ = self.ExecuteAndCatch(node, fork_external=fork_external)
File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 1197, in ExecuteAndCatch
status = self._Execute(node, fork_external=fork_external)
File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 1169, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 898, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 1190, in _ExecuteList
status = self._Execute(child) # last status wins
File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 1169, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 684, in _Dispatch
argv = self.word_ev.EvalWordSequence(words)
File "/home/andy/git/oilshell/oil/bin/../core/word_eval.py", line 978, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oilshell/oil/bin/../core/word_eval.py", line 968, in _EvalWordSequence
self._EvalWordFrame(frame, argv)
File "/home/andy/git/oilshell/oil/bin/../core/word_eval.py", line 921, in _EvalWordFrame
results = self.globber.Expand(a)
File "/home/andy/git/oilshell/oil/bin/../core/glob_.py", line 317, 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/Python-2.7.13/Lib/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/home/andy/git/oilshell/oil/Python-2.7.13/Lib/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/andy/git/oilshell/oil/bin/oil.py", line 626, in <module>
main(sys.argv)
File "/home/andy/git/oilshell/oil/bin/oil.py", line 604, in main
sys.exit(AppBundleMain(argv))
File "/home/andy/git/oilshell/oil/bin/oil.py", line 578, in AppBundleMain
status = OshMain(argv0, main_argv, login_shell)
File "/home/andy/git/oilshell/oil/bin/oil.py", line 388, in OshMain
status = ex.ExecuteAndRunExitTrap(node)
File "/home/andy/git/oilshell/oil/core/cmd_exec.py", line 1244, in ExecuteAndRunExitTrap
status = self.Execute(node)
File "/home/andy/git/oilshell/oil/core/cmd_exec.py", line 1239, in Execute
status, _ = self.ExecuteAndCatch(node, fork_external=fork_external)
File "/home/andy/git/oilshell/oil/core/cmd_exec.py", line 1197, in ExecuteAndCatch
status = self._Execute(node, fork_external=fork_external)
File "/home/andy/git/oilshell/oil/core/cmd_exec.py", line 1169, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oilshell/oil/core/cmd_exec.py", line 1114, in _Dispatch
print('sys\t%.3f' % sys_, file=sys.stderr)
File "/home/andy/git/oilshell/oil/core/cmd_exec.py", line 1190, in _ExecuteList
status = self._Execute(child) # last status wins
File "/home/andy/git/oilshell/oil/core/cmd_exec.py", line 1169, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oilshell/oil/core/cmd_exec.py", line 684, in _Dispatch
argv = self.word_ev.EvalWordSequence(words)
File "/home/andy/git/oilshell/oil/core/word_eval.py", line 978, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oilshell/oil/core/word_eval.py", line 968, in _EvalWordSequence
self._EvalWordFrame(frame, argv)
File "/home/andy/git/oilshell/oil/core/word_eval.py", line 921, in _EvalWordFrame
results = self.globber.Expand(a)
File "/home/andy/git/oilshell/oil/core/glob_.py", line 317, in Expand
raise NotImplementedError
NotImplementedError
FATAL: couldn't import from app bundle '_tmp/oil-tar-test/oil-0.6.pre2/_bin/osh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47
|
| osh-byterun | 26 shopt -s failglob [osh-byterun stdout] Expected u"['*.ZZ']\nstatus=1\n", got "['*.ZZ']\n" [osh-byterun status] Expected 0, got 1 stdout: ['*.ZZ']stderr: FATAL: |
| 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 '' [osh status] Expected 0, got 99 stdout: stderr: |
| 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: |
| osh-byterun | 27 Don't glob flags on file system with GLOBIGNORE [osh-byterun stdout] Expected u'-* hello zzzz?\n', got 'hello zzzzz' stdout: hello zzzzzstderr: |
| dash | 28 Splitting/Globbing doesn't happen on local assignment stdout: stderr: _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: _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' [osh status] Expected 0, got 1 stdout: <foo] [foo] [foo]stderr: FATAL: Invalid regex syntax (func_regex_first_group_match) |
| 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' [osh_ALT status] Expected 0, got 1 stdout: <foo] [foo] [foo]stderr: FATAL: Invalid regex syntax (func_regex_first_group_match) |
| osh-byterun | 31 PatSub of unescaped [[] and []] [osh-byterun stdout] Expected '<foo]\n[foo>\n<foo]\n[foo>\n', got '<foo]\n[foo]\n[foo]\n' [osh-byterun status] Expected 0, got 1 stdout: <foo] [foo] [foo]stderr: FATAL: Invalid regex syntax (func_regex_first_group_match) |
| dash | 32 PatSub of negated unescaped [[] and []] stdout: stderr: _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[foo]\n' stdout: [<<<< [foo] [foo]stderr: |
| osh_ALT | 32 PatSub of negated unescaped [[] and []] [osh_ALT stdout] Expected '[<<<<\n>>>>]\n[<<<<\n', got '[<<<<\n[foo]\n[foo]\n' stdout: [<<<< [foo] [foo]stderr: |
| osh-byterun | 32 PatSub of negated unescaped [[] and []] [osh-byterun stdout] Expected '[<<<<\n>>>>]\n[<<<<\n', got '[<<<<\n[foo]\n[foo]\n' stdout: [<<<< [foo] [foo]stderr: |