spec test index / oilshell.org
96 passed, 16 OK, 1 not implemented, 15 BUG, 4 failed, 0 timeouts, 0 cases skipped 4 failed under osh
| dash | 0 Fatal error stdout: stderr: dash: 1: a: bc |
| yash | 0 Fatal error stdout: stderr: yash: 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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'
|
| 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 |
| 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 |
| dash | 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: chicken: one= not found |
| zsh | 14 IFS - http://landley.net/notes.html#15-02-2020 (TODO: osh) stdout: stderr: zsh: xabcxx= not found |
| osh | 14 IFS - http://landley.net/notes.html#15-02-2020 (TODO: osh) [osh stdout] Expected '==\n=abc=\n==\n==\n=abc=\n=def=\n==\n', got '==\n=abc=\n==\n=abc=\n=def=\n' stdout: == =abc= == =abc= =def=stderr: |
| zsh | 15 IFS 2 (TODO: osh) stdout: stderr: zsh: command not found: this zsh: x abc def = not found |
| osh | 15 IFS 2 (TODO: osh) [osh stdout] Expected '=x=\n=abc=\n=def=\n==\n', got '=x=\n=abc=\n=def=\n' stdout: =x= =abc= =def=stderr: this one appears different between osh and bash ^~~~ [ stdin ]:1: 'this' not found (OILS-ERR-100) |
| zsh | 16 IFS 3 stdout: onextwoxxthreestderr: |
| dash | 17 IFS 4 stdout: = = =x= -=- -=-stderr: |
| mksh | 17 IFS 4 stdout: = = =x= -=- -=-stderr: |
| zsh | 17 IFS 4 stdout: = =stderr: cc: x= not found |
| yash | 17 IFS 4 stdout: = = -- -- =x= -=- -=-stderr: |
| zsh | 18 IFS 5 stdout: stderr: cc: = not found |
| yash | 18 IFS 5 stdout: -- -- -- -- -- ==stderr: |
| osh | 18 IFS 5 [osh stdout] Expected '==\n', got '' [osh status] Expected 0, got 1 [osh stderr] Found 'Traceback (most recent' stdout: stderr: Traceback (most recent call last):
File "/home/uke/oil/bin/oils_for_unix.py", line 198, in <module>
sys.exit(main(sys.argv))
File "/home/uke/oil/bin/oils_for_unix.py", line 170, in main
return AppBundleMain(argv)
File "/home/uke/oil/bin/oils_for_unix.py", line 140, in AppBundleMain
return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
File "/home/uke/oil/core/shell.py", line 1125, in Main
cmd_flags=cmd_eval.IsMainProgram)
File "/home/uke/oil/core/main_loop.py", line 364, in Batch
is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags=cmd_flags)
File "/home/uke/oil/osh/cmd_eval.py", line 1955, in ExecuteAndCatch
status = self._Execute(node)
File "/home/uke/oil/osh/cmd_eval.py", line 1777, in _Execute
status = self._Dispatch(node, cmd_st)
File "/home/uke/oil/osh/cmd_eval.py", line 1650, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/uke/oil/osh/cmd_eval.py", line 1854, in _ExecuteList
status = self._Execute(child)
File "/home/uke/oil/osh/cmd_eval.py", line 1777, in _Execute
status = self._Dispatch(node, cmd_st)
File "/home/uke/oil/osh/cmd_eval.py", line 1537, in _Dispatch
status = self._DoSimple(node, cmd_st)
File "/home/uke/oil/osh/cmd_eval.py", line 827, in _DoSimple
status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
File "/home/uke/oil/osh/cmd_eval.py", line 518, in _RunSimpleCommand
run_flags)
File "/home/uke/oil/core/executor.py", line 301, in RunSimpleCommand
status = self.cmd_ev.RunProc(proc_node, cmd_val)
File "/home/uke/oil/osh/cmd_eval.py", line 2137, in RunProc
status = self._Execute(proc.body)
File "/home/uke/oil/osh/cmd_eval.py", line 1777, in _Execute
status = self._Dispatch(node, cmd_st)
File "/home/uke/oil/osh/cmd_eval.py", line 1658, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/uke/oil/osh/cmd_eval.py", line 1854, in _ExecuteList
status = self._Execute(child)
File "/home/uke/oil/osh/cmd_eval.py", line 1777, in _Execute
status = self._Dispatch(node, cmd_st)
File "/home/uke/oil/osh/cmd_eval.py", line 1548, in _Dispatch
status = self._Execute(node.child)
File "/home/uke/oil/osh/cmd_eval.py", line 1777, in _Execute
status = self._Dispatch(node, cmd_st)
File "/home/uke/oil/osh/cmd_eval.py", line 1674, in _Dispatch
status = self._DoForEach(node)
File "/home/uke/oil/osh/cmd_eval.py", line 1212, in _DoForEach
assert iter_list, iter_list
AssertionError: []
|
| mksh | 19 Can't parse extra } stdout: stderr: 123: syntax error: '}' unexpected |
| zsh | 19 Can't parse extra } stdout: stderr: zsh:1: parse error near `}' |
| mksh | 20 Command Sub Syntax Error stdout: stderr: mksh: <stdin>[1]: syntax error: ')' unexpected |
| zsh | 20 Command Sub Syntax Error stdout: stderr: zsh: parse error near `true' zsh: parse error in command substitution |