spec test index / oilshell.org
39 passed, 4 OK, 15 not implemented, 8 BUG, 2 failed, 0 timeouts, 0 cases skipped 2 failed under osh
zsh | 1 Cannot take length of substring slice stdout: 3stderr: |
osh | 1 Cannot take length of substring slice stdout: stderr: echo ${#v:1:3} ^ [ stdin ]:2: Expected } after length expression, got ':' |
mksh | 2 Out of range string slice: begin stdout: 0stderr: |
mksh | 3 Out of range string slice: length stdout: _defg 0stderr: |
osh | 4 String slice: negative begin stdout: stderr: echo ${foo: -4:3} ^~ [ stdin ]:2: warning: The start index of a string slice can't be negative: -4 |
mksh | 5 String slice: negative second arg is position, not length stdout: defg defg defgstderr: |
osh | 5 String slice: negative second arg is position, not length stdout: stderr: echo ${foo:3:-1} ${foo: 3: -2} ${foo:3 :-3 } ^~ [ stdin ]:2: warning: The length of a string slice can't be negative: -1 echo ${foo:3:-1} ${foo: 3: -2} ${foo:3 :-3 } ^~ [ stdin ]:2: warning: The length of a string slice can't be negative: -2 echo ${foo:3:-1} ${foo: 3: -2} ${foo:3 :-3 } ^~ [ stdin ]:2: warning: The length of a string slice can't be negative: -3 |
bash | 6 strict-word-eval with string slice stdout: slice -bc-stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 1: shopt: strict-word-eval: invalid shell option name |
mksh | 6 strict-word-eval with string slice stdout: slice -bc-stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[1]: shopt: not found |
zsh | 6 strict-word-eval with string slice stdout: slice -bc-stderr: zsh: command not found: shopt |
mksh | 8 Slice undefined stdout: -- -- -done-stderr: |
mksh | 9 Slice UTF-8 String stdout: -μstderr: |
bash | 10 Slice string with invalid UTF-8 results in empty string and warning stdout: -bcd-stderr: |
mksh | 10 Slice string with invalid UTF-8 results in empty string and warning stdout: -bcd-stderr: |
zsh | 10 Slice string with invalid UTF-8 results in empty string and warning stdout: -bcd-stderr: |
bash | 11 Slice string with invalid UTF-8 with strict-word-eval stdout: slice -bcd-stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 1: shopt: strict-word-eval: invalid shell option name |
mksh | 11 Slice string with invalid UTF-8 with strict-word-eval stdout: slice -bcd-stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[1]: shopt: not found |
zsh | 11 Slice string with invalid UTF-8 with strict-word-eval stdout: slice -bcd-stderr: zsh: command not found: shopt |
mksh | 12 Lower Case with , and ,, stdout: stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[2]: ${x,}: bad substitution |
zsh | 12 Lower Case with , and ,, stdout: stderr: zsh: bad substitution |
mksh | 13 Upper Case with ^ and ^^ stdout: stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[2]: ${x^}: bad substitution |
zsh | 13 Upper Case with ^ and ^^ stdout: stderr: zsh: bad substitution |
mksh | 14 Lower Case with constant string (VERY WEIRD) stdout: stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[2]: ${x,A}: bad substitution |
zsh | 14 Lower Case with constant string (VERY WEIRD) stdout: stderr: zsh: bad substitution |
osh | 14 Lower Case with constant string (VERY WEIRD) [osh stdout] Expected 'aAA ABC DEF\naaa aBC DEF\n', got '' [osh status] Expected 0, got 1 stdout: stderr: Traceback (most recent call last): File "/home/andy/git/oilshell/oil/bin/oil.py", line 903, in <module> sys.exit(main(sys.argv)) File "/home/andy/git/oilshell/oil/bin/oil.py", line 861, in main return AppBundleMain(argv) File "/home/andy/git/oilshell/oil/bin/oil.py", line 831, in AppBundleMain status = ShellMain('osh', argv0, main_argv, login_shell) File "/home/andy/git/oilshell/oil/bin/oil.py", line 642, in ShellMain status = main_loop.Batch(ex, c_parser, arena, nodes_out=nodes_out) File "/home/andy/git/oilshell/oil/core/main_loop.py", line 159, in Batch is_return, is_fatal = ex.ExecuteAndCatch(node) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1268, in ExecuteAndCatch status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1216, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 717, in _Dispatch cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1286, in EvalWordSequence2 self._EvalWordToParts(w, False, part_vals) # not double quoted File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 958, in _EvalWordToParts self._EvalWordPart(p, part_vals, quoted=quoted, is_subst=is_subst) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 922, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 756, in _EvalBracedVarSub val = self._ApplyUnarySuffixOp(val, part.suffix_op) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 503, in _ApplyUnarySuffixOp s = string_ops.DoUnarySuffixOp(val.s, op, arg_val.s) File "/home/andy/git/oilshell/oil/osh/string_ops.py", line 192, in DoUnarySuffixOp raise NotImplementedError("%s can't have an argument" % op.op_id) NotImplementedError: <Id_t VOp1_Comma 131> can't have an argument |
mksh | 15 Lower Case glob stdout: stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[2]: ${x,[d-f]}: bad substitution |
zsh | 15 Lower Case glob stdout: stderr: zsh: bad substitution |
osh | 15 Lower Case glob [osh stdout] Expected 'ABC DEF\nABC deF\n', got '' [osh status] Expected 0, got 1 stdout: stderr: Traceback (most recent call last): File "/home/andy/git/oilshell/oil/bin/oil.py", line 903, in <module> sys.exit(main(sys.argv)) File "/home/andy/git/oilshell/oil/bin/oil.py", line 861, in main return AppBundleMain(argv) File "/home/andy/git/oilshell/oil/bin/oil.py", line 831, in AppBundleMain status = ShellMain('osh', argv0, main_argv, login_shell) File "/home/andy/git/oilshell/oil/bin/oil.py", line 642, in ShellMain status = main_loop.Batch(ex, c_parser, arena, nodes_out=nodes_out) File "/home/andy/git/oilshell/oil/core/main_loop.py", line 159, in Batch is_return, is_fatal = ex.ExecuteAndCatch(node) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1268, in ExecuteAndCatch status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1216, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 717, in _Dispatch cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1286, in EvalWordSequence2 self._EvalWordToParts(w, False, part_vals) # not double quoted File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 958, in _EvalWordToParts self._EvalWordPart(p, part_vals, quoted=quoted, is_subst=is_subst) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 922, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 756, in _EvalBracedVarSub val = self._ApplyUnarySuffixOp(val, part.suffix_op) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 503, in _ApplyUnarySuffixOp s = string_ops.DoUnarySuffixOp(val.s, op, arg_val.s) File "/home/andy/git/oilshell/oil/osh/string_ops.py", line 272, in DoUnarySuffixOp raise NotImplementedError("Can't use %s with pattern" % op.op_id) NotImplementedError: Can't use <Id_t VOp1_Comma 131> with pattern |
zsh | 16 ${x@Q} stdout: stderr: zsh: bad substitution |