168 passed, 33 OK, 14 not implemented, 16 BUG, 4 failed, 0 timeouts, 0 cases skipped 4 failed under osh
mksh | 2 Env binding can use preceding bindings, but not subsequent ones stdout: foo [][] bazstderr: |
dash | 7 Multiple temporary envs on the stack stdout: f [] [A] --- g() --- None None None None p --- f() --- None None None None Nonestderr: |
mksh | 7 Multiple temporary envs on the stack stdout: f [] [A] --- g() --- f [] [A] None p --- f() --- f [] [A] None Nonestderr: |
mksh | 9 Env binding not allowed before compound command stdout: stderr: mksh: <stdin>[1]: syntax error: 'do' unexpected |
zsh | 9 Env binding not allowed before compound command stdout: stderr: zsh: parse error near `for' |
zsh | 10 Trying to run keyword 'for' stdout: stderr: zsh: parse error near `for' |
bash-4 | 14 Env binding in readonly/declare is NOT exported! (pitfall) stdout: v=None v2=stderr: |
osh | 14 Env binding in readonly/declare is NOT exported! (pitfall) [osh stdout] Expected 'v=None\nv2=foo\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 1253, 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 2175, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple allow_assign=True) File "/home/uke/oil/osh/word_eval.py", line 2528, in EvalWordSequence2 fast_str, words, meta_offset) File "/home/uke/oil/osh/word_eval.py", line 2408, in _DetectAssignBuiltinStr meta_offset) File "/home/uke/oil/osh/word_eval.py", line 2369, in _EvalAssignBuiltin right = self.EvalRhsWord(rhs) File "/home/uke/oil/osh/word_eval.py", line 2194, in EvalRhsWord return self.EvalWordToString(w) File "/home/uke/oil/osh/word_eval.py", line 2103, in EvalWordToString self._EvalWordPart(p, part_vals, 0) File "/home/uke/oil/osh/word_eval.py", line 1881, in _EvalWordPart quoted) # type: part_value_t File "/home/uke/oil/osh/word_eval.py", line 2629, in _EvalCommandSub stdout_str = self.shell_ex.RunCommandSub(cs_part) File "/home/uke/oil/core/executor.py", line 691, in RunCommandSub status, stdout_str, stderr_str = self.CaptureStdout(node) File "/home/uke/oil/core/executor.py", line 619, in CaptureStdout fds, w, exc = select.select([r,r2], [], [r,r2], -1) NameError: global name 'select' is not defined |
zsh | 15 assignments / array assignments not interpreted after 'echo' stdout: stderr: zsh: no matches found: b[0]=2 |
dash | 16 dynamic local variables (and splitting) stdout: x='y a=b' a='' x='y' a='b'stderr: |
bash-4 | 16 dynamic local variables (and splitting) stdout: x='y a=b' a='' x='y' a='b'stderr: |
mksh | 16 dynamic local variables (and splitting) stdout: x='y a=b' a='' x='y' a='b'stderr: |
dash | 18 'local x' does not set variable stdout: stderr: dash: 4: x: parameter not set |
zsh | 18 'local x' does not set variable stdout: stderr: |
dash | 19 'local -a x' does not set variable stdout: stderr: dash: 3: local: -a: bad variable name |
zsh | 19 'local -a x' does not set variable stdout: stderr: |
dash | 20 'local x' and then array assignment stdout: stderr: dash: 3: x[3]=foo: not found dash: 4: Bad substitution |
zsh | 20 'local x' and then array assignment stdout: ostderr: |
dash | 21 'declare -A' and then dict assignment stdout: stderr: dash: 1: declare: not found dash: 3: foo[bar]=value: not found dash: 4: Bad substitution |
mksh | 21 'declare -A' and then dict assignment stdout: stderr: mksh: <stdin>[1]: declare: not found mksh: <stdin>[3]: "bar": unexpected '"' |
dash | 24 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x= x=globalstderr: |
bash-4 | 24 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x=global x=globalstderr: |
mksh | 24 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x=mutated-temp x=mutated-tempstderr: |
zsh | 24 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x= x=globalstderr: |
dash | 25 Test above without 'local' (which is not POSIX) stdout: x=temp-binding x=mutated-temp x= x=globalstderr: |
mksh | 25 Test above without 'local' (which is not POSIX) stdout: x=temp-binding x=mutated-temp x= x=stderr: |
zsh | 25 Test above without 'local' (which is not POSIX) stdout: x=temp-binding x=mutated-temp x= x=globalstderr: |
dash | 26 Using ${x-default} after unsetting local shadowing a global stdout: x=global x=local - operator = default :- operator = defaultstderr: |
bash-4 | 26 Using ${x-default} after unsetting local shadowing a global stdout: x=global x=local - operator = default :- operator = defaultstderr: |
zsh | 26 Using ${x-default} after unsetting local shadowing a global stdout: x=global x=local - operator = default :- operator = defaultstderr: |
dash | 27 Using ${x-default} after unsetting a temp binding shadowing a global stdout: x=temp-binding x=local - operator = default :- operator = defaultstderr: |
bash-4 | 27 Using ${x-default} after unsetting a temp binding shadowing a global stdout: x=temp-binding x=local - operator = global :- operator = globalstderr: |
zsh | 27 Using ${x-default} after unsetting a temp binding shadowing a global stdout: x=temp-binding x=local - operator = default :- operator = defaultstderr: |
dash | 28 static assignment doesn't split stdout: ['a', 'a b c', 'a']stderr: |
dash | 29 aliased assignment doesn't split stdout: ['a', 'a']stderr: dash: 1: shopt: not found |
dash | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) stdout: ['a', 'a']stderr: |
bash-4 | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) stdout: ['a', 'a']stderr: |
mksh | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) stdout: ['a', 'a']stderr: |
dash | 31 assignment using dynamic var names doesn't split stdout: ['a', 'a'] ['a b c', 'a b c']stderr: |
bash-4 | 31 assignment using dynamic var names doesn't split stdout: ['a', 'a'] ['a b c', 'a b c']stderr: |
mksh | 31 assignment using dynamic var names doesn't split stdout: ['a', 'a'] ['a b c', 'a b c']stderr: |
dash | 32 assign and glob stdout: ['*'] ['b']stderr: |
dash | 33 declare and glob stdout: ['']stderr: dash: 3: typeset: not found |
dash | 34 readonly $x where x='b c' stdout: stderr: dash: 4: a: is read only |
bash-4 | 34 readonly $x where x='b c' stdout: status=1 status=1 status=1stderr: bash-4.4: line 4: a: readonly variable bash-4.4: line 6: b: readonly variable bash-4.4: line 8: c: readonly variable |
mksh | 34 readonly $x where x='b c' stdout: stderr: mksh: <stdin>[4]: read-only: a |
dash | 35 readonly a=(1 2) no_value c=(3 4) makes 'no_value' readonly stdout: stderr: dash: 1: Syntax error: "(" unexpected |
dash | 37 local a=loc $var c=loc stdout: global ['loc', 'global', 'loc']stderr: |
zsh | 38 redirect after assignment builtin (what's going on with dash/bash/mksh here?) stdout: donestderr: |
osh | 38 redirect after assignment builtin (what's going on with dash/bash/mksh here?) [osh stdout] Expected 'done\n', got '' [osh stderr] Expected 'STDERR\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 1253, in Main\n cmd_flags=cmd_eval.IsMainProgram)\n File "/home/uke/oil/core/main_loop.py", line 336, in Batch\n was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags)\n File "/home/uke/oil/core/main_loop.py", line 401, in Batch2\n is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)\n File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch\n status = self._Execute(node)\n File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute\n status = self._Dispatch(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1875, in _Dispatch\n status = self._DoRedirect(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1648, in _DoRedirect\n status = self._Execute(node.child)\n File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute\n status = self._Dispatch(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch\n status = self._DoSimple(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple\n allow_assign=True)\n File "/home/uke/oil/osh/word_eval.py", line 2528, in EvalWordSequence2\n fast_str, words, meta_offset)\n File "/home/uke/oil/osh/word_eval.py", line 2408, in _DetectAssignBuiltinStr\n meta_offset)\n File "/home/uke/oil/osh/word_eval.py", line 2369, in _EvalAssignBuiltin\n right = self.EvalRhsWord(rhs)\n File "/home/uke/oil/osh/word_eval.py", line 2194, in EvalRhsWord\n return self.EvalWordToString(w)\n File "/home/uke/oil/osh/word_eval.py", line 2103, in EvalWordToString\n self._EvalWordPart(p, part_vals, 0)\n File "/home/uke/oil/osh/word_eval.py", line 1881, in _EvalWordPart\n quoted) # type: part_value_t\n File "/home/uke/oil/osh/word_eval.py", line 2629, in _EvalCommandSub\n stdout_str = self.shell_ex.RunCommandSub(cs_part)\n File "/home/uke/oil/core/executor.py", line 691, in RunCommandSub\n status, stdout_str, stderr_str = self.CaptureStdout(node)\n File "/home/uke/oil/core/executor.py", line 619, in CaptureStdout\n fds, w, exc = select.select([r,r2], [], [r,r2], -1)\nNameError: global name \'select\' is not defined\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 1253, 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 2175, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1875, in _Dispatch status = self._DoRedirect(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1648, in _DoRedirect status = self._Execute(node.child) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple allow_assign=True) File "/home/uke/oil/osh/word_eval.py", line 2528, in EvalWordSequence2 fast_str, words, meta_offset) File "/home/uke/oil/osh/word_eval.py", line 2408, in _DetectAssignBuiltinStr meta_offset) File "/home/uke/oil/osh/word_eval.py", line 2369, in _EvalAssignBuiltin right = self.EvalRhsWord(rhs) File "/home/uke/oil/osh/word_eval.py", line 2194, in EvalRhsWord return self.EvalWordToString(w) File "/home/uke/oil/osh/word_eval.py", line 2103, in EvalWordToString self._EvalWordPart(p, part_vals, 0) File "/home/uke/oil/osh/word_eval.py", line 1881, in _EvalWordPart quoted) # type: part_value_t File "/home/uke/oil/osh/word_eval.py", line 2629, in _EvalCommandSub stdout_str = self.shell_ex.RunCommandSub(cs_part) File "/home/uke/oil/core/executor.py", line 691, in RunCommandSub status, stdout_str, stderr_str = self.CaptureStdout(node) File "/home/uke/oil/core/executor.py", line 619, in CaptureStdout fds, w, exc = select.select([r,r2], [], [r,r2], -1) NameError: global name 'select' is not defined |
osh | 39 redirect after command sub (like case above but without assignment builtin) [osh stdout] Expected 'stdout=STDOUT\n', got '' [osh stderr] Expected 'STDERR\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 1253, in Main\n cmd_flags=cmd_eval.IsMainProgram)\n File "/home/uke/oil/core/main_loop.py", line 336, in Batch\n was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags)\n File "/home/uke/oil/core/main_loop.py", line 401, in Batch2\n is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)\n File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch\n status = self._Execute(node)\n File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute\n status = self._Dispatch(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1875, in _Dispatch\n status = self._DoRedirect(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1648, in _DoRedirect\n status = self._Execute(node.child)\n File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute\n status = self._Dispatch(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch\n status = self._DoSimple(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple\n allow_assign=True)\n File "/home/uke/oil/osh/word_eval.py", line 2541, in EvalWordSequence2\n self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)\n File "/home/uke/oil/osh/word_eval.py", line 1989, in _EvalWordToParts\n self._EvalWordPart(p, word_part_vals, eval_flags)\n File "/home/uke/oil/osh/word_eval.py", line 1881, in _EvalWordPart\n quoted) # type: part_value_t\n File "/home/uke/oil/osh/word_eval.py", line 2629, in _EvalCommandSub\n stdout_str = self.shell_ex.RunCommandSub(cs_part)\n File "/home/uke/oil/core/executor.py", line 691, in RunCommandSub\n status, stdout_str, stderr_str = self.CaptureStdout(node)\n File "/home/uke/oil/core/executor.py", line 619, in CaptureStdout\n fds, w, exc = select.select([r,r2], [], [r,r2], -1)\nNameError: global name \'select\' is not defined\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 1253, 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 2175, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1875, in _Dispatch status = self._DoRedirect(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1648, in _DoRedirect status = self._Execute(node.child) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple allow_assign=True) File "/home/uke/oil/osh/word_eval.py", line 2541, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 1989, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1881, in _EvalWordPart quoted) # type: part_value_t File "/home/uke/oil/osh/word_eval.py", line 2629, in _EvalCommandSub stdout_str = self.shell_ex.RunCommandSub(cs_part) File "/home/uke/oil/core/executor.py", line 691, in RunCommandSub status, stdout_str, stderr_str = self.CaptureStdout(node) File "/home/uke/oil/core/executor.py", line 619, in CaptureStdout fds, w, exc = select.select([r,r2], [], [r,r2], -1) NameError: global name 'select' is not defined |
bash-4 | 40 redirect after bare assignment stdout: donestderr: STDERR |
osh | 40 redirect after bare assignment [osh stdout] Expected 'done\n', got '' [osh stderr] Expected u'', 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 1253, in Main\n cmd_flags=cmd_eval.IsMainProgram)\n File "/home/uke/oil/core/main_loop.py", line 336, in Batch\n was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags)\n File "/home/uke/oil/core/main_loop.py", line 401, in Batch2\n is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)\n File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch\n status = self._Execute(node)\n File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute\n status = self._Dispatch(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1875, in _Dispatch\n status = self._DoRedirect(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1648, in _DoRedirect\n status = self._Execute(node.child)\n File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute\n status = self._Dispatch(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1711, in _Dispatch\n status = self._DoShAssignment(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1028, in _DoShAssignment\n rhs = self.word_ev.EvalRhsWord(pair.rhs)\n File "/home/uke/oil/osh/word_eval.py", line 2194, in EvalRhsWord\n return self.EvalWordToString(w)\n File "/home/uke/oil/osh/word_eval.py", line 2103, in EvalWordToString\n self._EvalWordPart(p, part_vals, 0)\n File "/home/uke/oil/osh/word_eval.py", line 1881, in _EvalWordPart\n quoted) # type: part_value_t\n File "/home/uke/oil/osh/word_eval.py", line 2629, in _EvalCommandSub\n stdout_str = self.shell_ex.RunCommandSub(cs_part)\n File "/home/uke/oil/core/executor.py", line 691, in RunCommandSub\n status, stdout_str, stderr_str = self.CaptureStdout(node)\n File "/home/uke/oil/core/executor.py", line 619, in CaptureStdout\n fds, w, exc = select.select([r,r2], [], [r,r2], -1)\nNameError: global name \'select\' is not defined\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 1253, 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 2175, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1875, in _Dispatch status = self._DoRedirect(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1648, in _DoRedirect status = self._Execute(node.child) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1711, in _Dispatch status = self._DoShAssignment(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1028, in _DoShAssignment rhs = self.word_ev.EvalRhsWord(pair.rhs) File "/home/uke/oil/osh/word_eval.py", line 2194, in EvalRhsWord return self.EvalWordToString(w) File "/home/uke/oil/osh/word_eval.py", line 2103, in EvalWordToString self._EvalWordPart(p, part_vals, 0) File "/home/uke/oil/osh/word_eval.py", line 1881, in _EvalWordPart quoted) # type: part_value_t File "/home/uke/oil/osh/word_eval.py", line 2629, in _EvalCommandSub stdout_str = self.shell_ex.RunCommandSub(cs_part) File "/home/uke/oil/core/executor.py", line 691, in RunCommandSub status, stdout_str, stderr_str = self.CaptureStdout(node) File "/home/uke/oil/core/executor.py", line 619, in CaptureStdout fds, w, exc = select.select([r,r2], [], [r,r2], -1) NameError: global name 'select' is not defined |
dash | 41 redirect after declare -p stdout: stderr: |
bash-4 | 41 redirect after declare -p stdout: stderr: declare -- foo="bar" |
osh | 41 redirect after declare -p stdout: stderr: declare -- foo=bar |
dash | 42 declare -a arr does not remove existing arrays (OSH regression) stdout: stderr: |
dash | 43 declare -A dict does not remove existing arrays (OSH regression) stdout: stderr: |
mksh | 43 declare -A dict does not remove existing arrays (OSH regression) stdout: stderr: |
dash | 44 "readonly -a arr" and "readonly -A dict" should not not remove existing arrays stdout: stderr: |
mksh | 44 "readonly -a arr" and "readonly -A dict" should not not remove existing arrays stdout: stderr: |
dash | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) stdout: stderr: |
bash-4 | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) stdout: declare -a arr1 declare -r arr2 declare -A dict1 declare -r dict2stderr: |
mksh | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) stdout: stderr: |
zsh | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) stdout: typeset -a arr1 arr1=( ) typeset -a arr2 arr2=( ) typeset -ar arr2 typeset -A dict1 dict1=( ) typeset -a dict2 dict2=( ) typeset -Ar dict2stderr: |
dash | 46 readonly array should not be modified by a+=(1) stdout: stderr: |
mksh | 46 readonly array should not be modified by a+=(1) stdout: stderr: mksh: <stdin>[4]: readonly: -a: unknown option |