114 passed, 7 OK, 3 not implemented, 16 BUG, 5 failed, 0 timeouts, 0 cases skipped 5 failed under osh
bash | 2 for loop with invalid identifier stdout: stderr: bash: line 3: `-': not a valid identifier |
mksh | 2 for loop with invalid identifier stdout: stderr: mksh: <stdin>[1]: for: bad identifier |
zsh | 2 for loop with invalid identifier stdout: histderr: zsh: parse error near `-' zsh: parse error near `done' |
dash | 5 Brace Expansion within Array stdout: -{a,b} {c,d}-stderr: |
osh | 10 while in pipe [osh stdout] Expected 'status=0\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 202, in <module> sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain return shell.Main('osh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1266, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 401, in Batch2 is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2285, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1821, in _Dispatch status = self._DoShAssignment(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1177, in _DoShAssignment rhs = self.word_ev.EvalRhsWord(pair.rhs) File "/home/uke/oil/osh/word_eval.py", line 2188, in EvalRhsWord return self.EvalWordToString(w) File "/home/uke/oil/osh/word_eval.py", line 2097, in EvalWordToString self._EvalWordPart(p, part_vals, 0) File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart quoted) # type: part_value_t File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub stdout_str = self.shell_ex.RunCommandSub(cs_part) File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub status, stdout_str, stderr_str = self.CaptureStdout(node) File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout fds = pyos.WaitForInputs([r, r2]) File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs r, w, exc = select.select(fd, [], [fd]) TypeError: argument must be an int, or have a fileno() method |
zsh | 13 continue at top level stdout: onestderr: continue: not in while, until, select, or repeat loop |
dash | 14 continue in subshell stdout: > 1 subshell status=0 . 1 > 2 subshell status=0 . 2stderr: |
bash | 14 continue in subshell stdout: > 1 Should not print subshell status=0 . 1 > 2 Should not print subshell status=0 . 2stderr: bash: line 3: continue: only meaningful in a `for', `while', or `until' loop bash: line 3: continue: only meaningful in a `for', `while', or `until' loop |
mksh | 14 continue in subshell stdout: > 1 Should not print subshell status=0 . 1 > 2 Should not print subshell status=0 . 2stderr: mksh: <stdin>[6]: continue: can't continue mksh: <stdin>[6]: continue: can't continue |
zsh | 14 continue in subshell stdout: > 1 subshell status=0 . 1 > 2 subshell status=0 . 2stderr: |
osh | 14 continue in subshell [osh stdout] Expected '> 1\nsubshell status=1\n. 1\n> 2\nsubshell status=1\n. 2\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 202, in <module> sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain return shell.Main('osh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1266, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 401, in Batch2 is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2285, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1971, in _Dispatch status = self._DoForEach(node) File "/home/uke/oil/osh/cmd_eval.py", line 1371, in _DoForEach iter_list = self.word_ev.EvalWordSequence(words) File "/home/uke/oil/osh/word_eval.py", line 2592, in EvalWordSequence cmd_val = self.EvalWordSequence2(words, False) File "/home/uke/oil/osh/word_eval.py", line 2529, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 1983, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart quoted) # type: part_value_t File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub stdout_str = self.shell_ex.RunCommandSub(cs_part) File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub status, stdout_str, stderr_str = self.CaptureStdout(node) File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout fds = pyos.WaitForInputs([r, r2]) File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs r, w, exc = select.select(fd, [], [fd]) TypeError: argument must be an int, or have a fileno() method |
dash | 15 continue in subshell aborts with errexit stdout: > 1 should fail after subshell . 1 > 2 should fail after subshell . 2stderr: |
bash | 15 continue in subshell aborts with errexit stdout: > 1 Should not print should fail after subshell . 1 > 2 Should not print should fail after subshell . 2stderr: bash: line 4: continue: only meaningful in a `for', `while', or `until' loop bash: line 4: continue: only meaningful in a `for', `while', or `until' loop |
mksh | 15 continue in subshell aborts with errexit stdout: > 1 Should not print should fail after subshell . 1 > 2 Should not print should fail after subshell . 2stderr: mksh: <stdin>[7]: continue: can't continue mksh: <stdin>[7]: continue: can't continue |
zsh | 15 continue in subshell aborts with errexit stdout: > 1 should fail after subshell . 1 > 2 should fail after subshell . 2stderr: |
osh | 15 continue in subshell aborts with errexit [osh stdout] Expected '> 1\n', got '' [osh stderr] Found 'Traceback (most recent' stdout: stderr: Traceback (most recent call last): File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module> sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain return shell.Main('osh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1266, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 401, in Batch2 is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2285, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1971, in _Dispatch status = self._DoForEach(node) File "/home/uke/oil/osh/cmd_eval.py", line 1371, in _DoForEach iter_list = self.word_ev.EvalWordSequence(words) File "/home/uke/oil/osh/word_eval.py", line 2592, in EvalWordSequence cmd_val = self.EvalWordSequence2(words, False) File "/home/uke/oil/osh/word_eval.py", line 2529, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 1983, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart quoted) # type: part_value_t File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub stdout_str = self.shell_ex.RunCommandSub(cs_part) File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub status, stdout_str, stderr_str = self.CaptureStdout(node) File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout fds = pyos.WaitForInputs([r, r2]) File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs r, w, exc = select.select(fd, [], [fd]) TypeError: argument must be an int, or have a fileno() method |
dash | 16 bad arg to break stdout: histderr: dash: 4: break: Illegal number: oops |
bash | 16 bad arg to break stdout: histderr: bash: line 4: break: oops: numeric argument required |
dash | 17 too many args to continue stdout: a b c --stderr: |
bash | 17 too many args to continue stdout: a --stderr: bash: line 3: continue: too many arguments |
mksh | 17 too many args to continue stdout: a b c --stderr: |
zsh | 17 too many args to continue stdout: a b c --stderr: continue: too many arguments continue: too many arguments continue: too many arguments |
mksh | 21 break/continue within eval stdout: 1 2 3 4 5stderr: mksh: continue: can't continue mksh: break: can't break |
osh | 21 break/continue within eval [osh stdout] Expected '1\n3\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 202, in <module> sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain return shell.Main('osh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1266, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 401, in Batch2 is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2285, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1811, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1108, in _DoSimple status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags) File "/home/uke/oil/osh/cmd_eval.py", line 744, in _RunSimpleCommand run_flags) File "/home/uke/oil/core/vm.py", line 234, in RunSimpleCommand run_flags) File "/home/uke/oil/core/executor.py", line 420, in _RunSimpleCommand cmd_val) File "/home/uke/oil/core/vm.py", line 312, in _RunInvokable status = self.cmd_ev.RunProc(proc, cmd_val) File "/home/uke/oil/osh/cmd_eval.py", line 2499, in RunProc status = self._Execute(proc.body) File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1930, in _Dispatch status = self._ExecuteList(node.children) File "/home/uke/oil/osh/cmd_eval.py", line 2161, in _ExecuteList status = self._Execute(child) File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1971, in _Dispatch status = self._DoForEach(node) File "/home/uke/oil/osh/cmd_eval.py", line 1371, in _DoForEach iter_list = self.word_ev.EvalWordSequence(words) File "/home/uke/oil/osh/word_eval.py", line 2592, in EvalWordSequence cmd_val = self.EvalWordSequence2(words, False) File "/home/uke/oil/osh/word_eval.py", line 2529, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 1983, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart quoted) # type: part_value_t File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub stdout_str = self.shell_ex.RunCommandSub(cs_part) File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub status, stdout_str, stderr_str = self.CaptureStdout(node) File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout fds = pyos.WaitForInputs([r, r2]) File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs r, w, exc = select.select(fd, [], [fd]) TypeError: argument must be an int, or have a fileno() method |
mksh | 22 break/continue within source stdout: 1 2 3 4 5 donestderr: mksh: spec/testdata/continue.sh[1]: continue: can't continue mksh: spec/testdata/break.sh[1]: break: can't break |
zsh | 22 break/continue within source stdout: 1 2 3 4 5 donestderr: spec/testdata/continue.sh:continue:1: not in while, until, select, or repeat loop spec/testdata/break.sh:break:1: not in while, until, select, or repeat loop |
osh | 22 break/continue within source [osh stdout] Expected '1\n3\ndone\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 202, in <module> sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain return shell.Main('osh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1266, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 401, in Batch2 is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2285, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1811, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1108, in _DoSimple status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags) File "/home/uke/oil/osh/cmd_eval.py", line 744, in _RunSimpleCommand run_flags) File "/home/uke/oil/core/vm.py", line 234, in RunSimpleCommand run_flags) File "/home/uke/oil/core/executor.py", line 420, in _RunSimpleCommand cmd_val) File "/home/uke/oil/core/vm.py", line 312, in _RunInvokable status = self.cmd_ev.RunProc(proc, cmd_val) File "/home/uke/oil/osh/cmd_eval.py", line 2499, in RunProc status = self._Execute(proc.body) File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1930, in _Dispatch status = self._ExecuteList(node.children) File "/home/uke/oil/osh/cmd_eval.py", line 2161, in _ExecuteList status = self._Execute(child) File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1971, in _Dispatch status = self._DoForEach(node) File "/home/uke/oil/osh/cmd_eval.py", line 1371, in _DoForEach iter_list = self.word_ev.EvalWordSequence(words) File "/home/uke/oil/osh/word_eval.py", line 2592, in EvalWordSequence cmd_val = self.EvalWordSequence2(words, False) File "/home/uke/oil/osh/word_eval.py", line 2529, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 1983, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart quoted) # type: part_value_t File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub stdout_str = self.shell_ex.RunCommandSub(cs_part) File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub status, stdout_str, stderr_str = self.CaptureStdout(node) File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout fds = pyos.WaitForInputs([r, r2]) File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs r, w, exc = select.select(fd, [], [fd]) TypeError: argument must be an int, or have a fileno() method |
bash | 23 top-level break/continue/return (without strict_control_flow) stdout: break=0 continue=0 return=2stderr: bash: line 1: break: only meaningful in a `for', `while', or `until' loop bash: line 1: continue: only meaningful in a `for', `while', or `until' loop bash: line 1: return: can only `return' from a function or sourced script |
zsh | 23 top-level break/continue/return (without strict_control_flow) stdout: stderr: zsh:break:1: not in while, until, select, or repeat loop zsh:continue:1: not in while, until, select, or repeat loop |
dash | 28 builtin,command break,continue,return,exit stdout: stderr: |
zsh | 28 builtin,command break,continue,return,exit stdout: stderr: |