35 passed, 24 OK, 10 not implemented, 4 BUG, 3 failed, 0 timeouts, 0 cases skipped 3 failed under osh
dash | 0 unset PS4 stdout: weird bugstderr: |
bash | 1 set -o verbose prints unevaluated code stdout: foo barstderr: x=foo y=bar echo $x echo $(echo $y) |
osh | 1 set -o verbose prints unevaluated code [osh stderr] Expected 'x=foo\ny=bar\necho $x\necho $(echo $y)\n', got 'osh warning: set -o verbose not implemented\n' stdout: foo barstderr: osh warning: set -o verbose not implemented |
bash | 2 xtrace with unprintable chars stdout: abcstderr: + echo $'a\003b\004c' |
dash | 2 xtrace with unprintable chars stdout: stderr: |
mksh | 2 xtrace with unprintable chars stdout: a;cstderr: + echo $'a;\004c\r' |
dash | 3 xtrace with unicode chars stdout: stderr: |
bash | 5 xtrace with tabs stdout: [ ]stderr: + echo '[ ]' |
dash | 5 xtrace with tabs stdout: stderr: |
bash | 6 xtrace with whitespace, quotes, and backslash stdout: 1 2 ' " \stderr: + echo '1 2' \' '"' '\' |
dash | 6 xtrace with whitespace, quotes, and backslash stdout: 1 2 ' " \stderr: + echo 1 2 ' " \ |
mksh | 6 xtrace with whitespace, quotes, and backslash stdout: 1 2 ' " \stderr: + echo '1 2' \' '"' '\' |
bash | 7 xtrace with newlines stdout: [ ]stderr: + echo '[ ]' |
dash | 7 xtrace with newlines stdout: $[ ]stderr: + echo $[\n] |
mksh | 8 xtrace written before command executes stdout: stderr: + >&2 + echo one one + >&2 + echo two two |
bash | 9 Assignments and assign builtins stdout: 2stderr: + x=1 + x=2 + echo 2 + readonly x=3 + x=3 |
dash | 9 Assignments and assign builtins stdout: 2stderr: + x=1 x=2 + echo 2 + readonly x=3 |
mksh | 9 Assignments and assign builtins stdout: 2stderr: + x=1 x=2 + echo 2 + readonly 'x=3' |
bash | 10 [[ ]] stdout: stderr: + dir=/ + [[ -d / ]] + (( a = 42 )) |
dash | 10 [[ ]] stdout: stderr: |
mksh | 10 [[ ]] stdout: stderr: |
dash | 11 PS4 is scoped stdout: one func twostderr: + echo one + f + local PS4=- - echo func + echo two |
mksh | 11 PS4 is scoped stdout: one func twostderr: + echo one + f + typeset 'PS4=- ' - echo func + echo two |
osh | 11 PS4 is scoped stdout: one func twostderr: + echo one + f + local PS4='- ' - echo func + echo two |
dash | 12 xtrace with variables in PS4 stdout: one twostderr: +1:x=1 +1:echo one +2:x=2 +2:echo two |
mksh | 12 xtrace with variables in PS4 stdout: one twostderr: +:x=1 +1:echo one +1:x=2 +2:echo two |
osh | 12 xtrace with variables in PS4 stdout: one twostderr: +1:x=1 +1:echo one +2:x=2 +2:echo two |
dash | 13 PS4 with unterminated ${ stdout: stderr: dash: 1: Syntax error: Missing '}' |
mksh | 13 PS4 with unterminated ${ stdout: stderr: mksh: no closing quote |
dash | 14 PS4 with unterminated $( stdout: stderr: dash: 1: Syntax error: end of file unexpected (expecting ")") |
mksh | 14 PS4 with unterminated $( stdout: stderr: mksh: syntax error: '(' unmatched |
dash | 15 PS4 with runtime error stdout: stderr: dash: 4: arithmetic expression: division by zero: " 1 / 0 " |
mksh | 15 PS4 with runtime error stdout: stderr: mksh: <stdin>[4]: 1 / 0 : zero divisor |
osh | 16 Reading $? in PS4 stdout: okstderr: [last=0] 'false' [last=1] echo ok |
bash | 17 Regression: xtrace for "declare -a a+=(v)" stdout: stderr: + a+=('2') + declare a |
dash | 17 Regression: xtrace for "declare -a a+=(v)" stdout: stderr: |
mksh | 17 Regression: xtrace for "declare -a a+=(v)" stdout: stderr: |
osh | 17 Regression: xtrace for "declare -a a+=(v)" [osh stderr] Expected '+ declare a+=(2)\n', got '+ declare a+=(2)\nTraceback (most recent call last):\n File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>\n sys.exit(main(sys.argv))\n File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main\n return AppBundleMain(argv)\n File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain\n return shell.Main(\'osh\', arg_r, environ, login_shell, loader, readline)\n File "/home/uke/oil/core/shell.py", line 1213, in Main\n cmd_flags=cmd_eval.IsMainProgram)\n File "/home/uke/oil/core/main_loop.py", line 375, in Batch\n is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)\n File "/home/uke/oil/osh/cmd_eval.py", line 2109, in ExecuteAndCatch\n status = self._Execute(node)\n File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute\n status = self._Dispatch(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1635, in _Dispatch\n status = self._DoSimple(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 914, in _DoSimple\n status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)\n File "/home/uke/oil/osh/cmd_eval.py", line 580, in _RunSimpleCommand\n return self._RunAssignBuiltin(cmd_val)\n File "/home/uke/oil/osh/cmd_eval.py", line 366, in _RunAssignBuiltin\n status = builtin_func.Run(cmd_val)\n File "/home/uke/oil/builtin/assign_osh.py", line 466, in Run\n _AssignVarForBuiltin(self.mem, rval, pair, which_scopes, flags)\n File "/home/uke/oil/builtin/assign_osh.py", line 211, in _AssignVarForBuiltin\n pair.blame_word)\n File "/home/uke/oil/osh/sh_expr_eval.py", line 130, in OldValue\n cell = mem.GetCellDeref(var_name)\n File "/home/uke/oil/core/state.py", line 2318, in GetCellDeref\n cell, _ = self._ResolveNameOrRef(name, which_scopes)\nValueError: too many values to unpack\n' [osh status] Expected 0, got 1 [osh stderr] Found 'Traceback (most recent' stdout: stderr: + declare a+=(2) 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 1213, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 375, in Batch is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2109, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1635, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 914, in _DoSimple status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags) File "/home/uke/oil/osh/cmd_eval.py", line 580, in _RunSimpleCommand return self._RunAssignBuiltin(cmd_val) File "/home/uke/oil/osh/cmd_eval.py", line 366, in _RunAssignBuiltin status = builtin_func.Run(cmd_val) File "/home/uke/oil/builtin/assign_osh.py", line 466, in Run _AssignVarForBuiltin(self.mem, rval, pair, which_scopes, flags) File "/home/uke/oil/builtin/assign_osh.py", line 211, in _AssignVarForBuiltin pair.blame_word) File "/home/uke/oil/osh/sh_expr_eval.py", line 130, in OldValue cell = mem.GetCellDeref(var_name) File "/home/uke/oil/core/state.py", line 2318, in GetCellDeref cell, _ = self._ResolveNameOrRef(name, which_scopes) ValueError: too many values to unpack |
dash | 18 Regression: xtrace for "a+=(v)" stdout: stderr: |
mksh | 18 Regression: xtrace for "a+=(v)" stdout: stderr: |
osh | 18 Regression: xtrace for "a+=(v)" [osh stderr] Expected '+ a+=(2)\n', got 'Traceback (most recent call last):\n File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>\n sys.exit(main(sys.argv))\n File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main\n return AppBundleMain(argv)\n File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain\n return shell.Main(\'osh\', arg_r, environ, login_shell, loader, readline)\n File "/home/uke/oil/core/shell.py", line 1213, in Main\n cmd_flags=cmd_eval.IsMainProgram)\n File "/home/uke/oil/core/main_loop.py", line 375, in Batch\n is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)\n File "/home/uke/oil/osh/cmd_eval.py", line 2109, in ExecuteAndCatch\n status = self._Execute(node)\n File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute\n status = self._Dispatch(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1645, in _Dispatch\n status = self._DoShAssignment(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 988, in _DoShAssignment\n node.left)\n File "/home/uke/oil/osh/sh_expr_eval.py", line 130, in OldValue\n cell = mem.GetCellDeref(var_name)\n File "/home/uke/oil/core/state.py", line 2318, in GetCellDeref\n cell, _ = self._ResolveNameOrRef(name, which_scopes)\nValueError: too many values to unpack\n' [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 1213, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 375, in Batch is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2109, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1645, in _Dispatch status = self._DoShAssignment(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 988, in _DoShAssignment node.left) File "/home/uke/oil/osh/sh_expr_eval.py", line 130, in OldValue cell = mem.GetCellDeref(var_name) File "/home/uke/oil/core/state.py", line 2318, in GetCellDeref cell, _ = self._ResolveNameOrRef(name, which_scopes) ValueError: too many values to unpack |