117 passed, 18 OK, 2 not implemented, 17 BUG, 7 failed, 0 timeouts, 0 cases skipped 7 failed under osh
dash | 0 Fatal error stdout: stderr: dash: 1: a: bc |
ash | 0 Fatal error stdout: stderr: ash: 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 |
ash | 3 Failed redirect in assignment, vs. export stdout: abc=stderr: ash: can't create /does/not/exist1: nonexistent directory ash: can't create /does/not/exist2: nonexistent 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: |
ash | 11 IFS - http://landley.net/notes.html#05-03-2020 stdout: =one= =abc= =d f= =ghi= --- =one= =two=stderr: |
osh | 11 IFS - http://landley.net/notes.html#05-03-2020 [osh stdout] Expected '=one=\n=abc=\n=d f=\n=ghi=\n---\n=one=\n==\n=two=\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 959, in _DoSimple status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags) File "/home/uke/oil/osh/cmd_eval.py", line 594, in _RunSimpleCommand run_flags) File "/home/uke/oil/core/vm.py", line 224, 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 302, in _RunInvokable status = self.cmd_ev.RunProc(proc, cmd_val) File "/home/uke/oil/osh/cmd_eval.py", line 2389, in RunProc status = self._Execute(proc.body) 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 1820, in _Dispatch status = self._ExecuteList(node.children) File "/home/uke/oil/osh/cmd_eval.py", line 2051, in _ExecuteList status = self._Execute(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 1719, in _Dispatch 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 1861, in _Dispatch status = self._DoForEach(node) File "/home/uke/oil/osh/cmd_eval.py", line 1261, in _DoForEach iter_list = self.word_ev.EvalWordSequence(words) File "/home/uke/oil/osh/word_eval.py", line 2623, in EvalWordSequence cmd_val = self.EvalWordSequence2(words, False) File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1932, in _EvalWordPart self._EvalDoubleQuoted(part.parts, part_vals) File "/home/uke/oil/osh/word_eval.py", line 1453, in _EvalDoubleQuoted self._EvalWordPart(p, part_vals, QUOTED) File "/home/uke/oil/osh/word_eval.py", line 1952, in _EvalWordPart self._EvalSimpleVarSub(part, part_vals, quoted) File "/home/uke/oil/osh/word_eval.py", line 1827, in _EvalSimpleVarSub v = _ValueToPartValue(val, quoted, part) File "/home/uke/oil/osh/word_eval.py", line 231, in _ValueToPartValue bash_impl.InternalStringArray_GetValues(val), quoted) NameError: global name 'bash_impl' is not defined |
dash | 12 IFS=x and '' and unquoted $@ - reduction of case above - copied into spec/word-split stdout: ['one', 'two'] -one- -two-stderr: dash: 1: setopt: not found |
zsh | 12 IFS=x and '' and unquoted $@ - reduction of case above - copied into spec/word-split stdout: ['one', 'two'] -one- -two-stderr: |
ash | 12 IFS=x and '' and unquoted $@ - reduction of case above - copied into spec/word-split stdout: ['one', 'two'] -one- -two-stderr: ash: setopt: not found |
osh | 12 IFS=x and '' and unquoted $@ - reduction of case above - copied into spec/word-split [osh stdout] Expected "['one', '', 'two']\n-one-\n--\n-two-\n", got '' [osh status] Expected 0, got 1 [osh stderr] Found 'Traceback (most recent' stdout: stderr: setopt SH_WORD_SPLIT ^~~~~~ [ stdin ]:1: Command 'setopt' not found (OILS-ERR-100) 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 2566, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1952, in _EvalWordPart self._EvalSimpleVarSub(part, part_vals, quoted) File "/home/uke/oil/osh/word_eval.py", line 1827, in _EvalSimpleVarSub v = _ValueToPartValue(val, quoted, part) File "/home/uke/oil/osh/word_eval.py", line 231, in _ValueToPartValue bash_impl.InternalStringArray_GetValues(val), quoted) NameError: global name 'bash_impl' is not defined |
zsh | 15 IFS - http://landley.net/notes.html#15-02-2020 (TODO: osh) stdout: stderr: zsh: xabcxx= not found |
osh | 15 IFS - http://landley.net/notes.html#15-02-2020 (TODO: osh) [osh stdout] Expected '==\n=abc=\n==\n\n==\n=abc=\n=def=\n==\n', got '==\n=abc=\n==\n\n=abc=\n=def=\n' stdout: == =abc= == =abc= =def=stderr: |
zsh | 16 IFS 2 - copied into spec/word-split stdout: stderr: zsh: x abc def = not found |
osh | 16 IFS 2 - copied into spec/word-split [osh stdout] Expected '=x=\n=abc=\n=def=\n==\n', got '=xabc=\n=def=\n' stdout: =xabc= =def=stderr: |
zsh | 17 IFS 3 stdout: onextwoxxthreestderr: |
bash | 18 IFS 4 stdout: / / -- /x/ -=- -=-stderr: bash: line 1: setopt: command not found |
zsh | 18 IFS 4 stdout: / / -- -- /x/ -=- -=-stderr: |
yash | 18 IFS 4 stdout: / / -- -- /x/ -=- -=-stderr: yash: no such command `setopt' |
osh | 18 IFS 4 [osh stdout] Expected '/ /\n\n/x/\n-=-\n-=-\n', got '' [osh status] Expected 0, got 1 [osh stderr] Found 'Traceback (most recent' stdout: stderr: setopt SH_WORD_SPLIT ^~~~~~ [ stdin ]:1: Command 'setopt' not found (OILS-ERR-100) 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 959, in _DoSimple status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags) File "/home/uke/oil/osh/cmd_eval.py", line 594, in _RunSimpleCommand run_flags) File "/home/uke/oil/core/vm.py", line 224, 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 302, in _RunInvokable status = self.cmd_ev.RunProc(proc, cmd_val) File "/home/uke/oil/osh/cmd_eval.py", line 2389, in RunProc status = self._Execute(proc.body) 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 1820, in _Dispatch status = self._ExecuteList(node.children) File "/home/uke/oil/osh/cmd_eval.py", line 2051, in _ExecuteList status = self._Execute(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 2566, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1952, in _EvalWordPart self._EvalSimpleVarSub(part, part_vals, quoted) File "/home/uke/oil/osh/word_eval.py", line 1827, in _EvalSimpleVarSub v = _ValueToPartValue(val, quoted, part) File "/home/uke/oil/osh/word_eval.py", line 231, in _ValueToPartValue bash_impl.InternalStringArray_GetValues(val), quoted) NameError: global name 'bash_impl' is not defined |
zsh | 19 IFS 5 stdout: stderr: cc: = not found |
yash | 19 IFS 5 stdout: -- -- -- -- -- ==stderr: |
osh | 19 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 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 1812, in _Dispatch status = self._ExecuteList(node.children) File "/home/uke/oil/osh/cmd_eval.py", line 2051, in _ExecuteList status = self._Execute(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 959, in _DoSimple status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags) File "/home/uke/oil/osh/cmd_eval.py", line 594, in _RunSimpleCommand run_flags) File "/home/uke/oil/core/vm.py", line 224, 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 302, in _RunInvokable status = self.cmd_ev.RunProc(proc, cmd_val) File "/home/uke/oil/osh/cmd_eval.py", line 2389, in RunProc status = self._Execute(proc.body) 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 1820, in _Dispatch status = self._ExecuteList(node.children) File "/home/uke/oil/osh/cmd_eval.py", line 2051, in _ExecuteList status = self._Execute(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 1719, in _Dispatch 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 1861, in _Dispatch status = self._DoForEach(node) File "/home/uke/oil/osh/cmd_eval.py", line 1261, in _DoForEach iter_list = self.word_ev.EvalWordSequence(words) File "/home/uke/oil/osh/word_eval.py", line 2623, in EvalWordSequence cmd_val = self.EvalWordSequence2(words, False) File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1952, in _EvalWordPart self._EvalSimpleVarSub(part, part_vals, quoted) File "/home/uke/oil/osh/word_eval.py", line 1827, in _EvalSimpleVarSub v = _ValueToPartValue(val, quoted, part) File "/home/uke/oil/osh/word_eval.py", line 231, in _ValueToPartValue bash_impl.InternalStringArray_GetValues(val), quoted) NameError: global name 'bash_impl' is not defined |
mksh | 20 Can't parse extra } stdout: stderr: 123: syntax error: '}' unexpected |
zsh | 20 Can't parse extra } stdout: stderr: zsh:1: parse error near `}' |
mksh | 21 Command Sub Syntax Error stdout: stderr: mksh: <stdin>[1]: syntax error: ')' unexpected |
zsh | 21 Command Sub Syntax Error stdout: stderr: zsh: parse error near `true' zsh: parse error in command substitution |