Results for var-op-other.test.sh

casebashmkshzshoshosh_ALTosh-byterundescription
0pass pass pass pass pass pass String slice
1pass pass ok ok ok ok Cannot take length of substring slice
detailsdetailsdetailsdetails
2pass BUG pass pass pass pass Out of range string slice: begin
details
3pass BUG pass pass pass pass Out of range string slice: length
details
4pass pass pass ok ok ok String slice: negative begin
detailsdetailsdetails
5pass BUG pass ok ok ok String slice: negative second arg is position, not length
detailsdetailsdetailsdetails
6N-I N-I N-I pass pass pass strict-word-eval with string slice
detailsdetailsdetails
7pass pass pass pass pass pass String slice with math
8pass BUG pass pass pass pass Slice undefined
details
9pass BUG pass pass pass pass Slice UTF-8 String
details
10BUG BUG BUG pass pass pass Slice string with invalid UTF-8 results in empty string and warning
detailsdetailsdetails
11N-I N-I N-I pass pass pass Slice string with invalid UTF-8 with strict-word-eval
detailsdetailsdetails
12pass N-I N-I pass pass pass Lower Case with , and ,,
detailsdetails
13pass N-I N-I pass pass pass Upper Case with ^ and ^^
detailsdetails
14pass N-I N-I FAIL FAIL FAIL Lower Case with constant string (VERY WEIRD)
detailsdetailsdetailsdetailsdetails
15pass N-I N-I FAIL FAIL FAIL Lower Case glob
detailsdetailsdetailsdetailsdetails
16pass pass N-I pass pass pass ${x@Q}
details

63 passed, 10 ok, 15 known unimplemented, 8 known bugs, 2 failed, 0 skipped

Details on runs that didn't PASS

zsh1 Cannot take length of substring slice

stdout:
3
stderr:
osh1 Cannot take length of substring slice

stdout:
stderr: 
Line 2 of '<stdin>'
  echo ${#v:1:3}
           ^
Expected } after length expression, got ':'
osh_ALT1 Cannot take length of substring slice

stdout:
stderr: 
Line 2 of '<stdin>'
  echo ${#v:1:3}
           ^
Expected } after length expression, got ':'
osh-byterun1 Cannot take length of substring slice

stdout:
stderr: 
Line 2 of '<stdin>'
  echo ${#v:1:3}
           ^
Expected } after length expression, got ':'
mksh2 Out of range string slice: begin

stdout:
0
stderr:
mksh3 Out of range string slice: length

stdout:
_defg
0
stderr:
osh4 String slice: negative begin

stdout:
stderr: 
osh warning: The start index of a string slice can't be negative: -4
osh_ALT4 String slice: negative begin

stdout:
stderr: 
osh warning: The start index of a string slice can't be negative: -4
osh-byterun4 String slice: negative begin

stdout:
stderr: 
osh warning: The start index of a string slice can't be negative: -4
mksh5 String slice: negative second arg is position, not length

stdout:
defg defg defg
stderr:
osh5 String slice: negative second arg is position, not length

stdout:
stderr: 
osh warning: The length of a string slice can't be negative: -1
osh warning: The length of a string slice can't be negative: -2
osh warning: The length of a string slice can't be negative: -3
osh_ALT5 String slice: negative second arg is position, not length

stdout:
stderr: 
osh warning: The length of a string slice can't be negative: -1
osh warning: The length of a string slice can't be negative: -2
osh warning: The length of a string slice can't be negative: -3
osh-byterun5 String slice: negative second arg is position, not length

stdout:
stderr: 
osh warning: The length of a string slice can't be negative: -1
osh warning: The length of a string slice can't be negative: -2
osh warning: The length of a string slice can't be negative: -3
bash6 strict-word-eval with string slice

stdout:
slice
-bc-
stderr:
_tmp/spec-bin/bash: line 1: set: strict-word-eval: invalid option name
mksh6 strict-word-eval with string slice

stdout:
stderr: 
_tmp/spec-bin/mksh: <stdin>[1]: set: strict-word-eval: bad option
zsh6 strict-word-eval with string slice

stdout:
stderr: 
set: no such option: strict-word-eval
mksh8 Slice undefined

stdout:
--
--
-done-
stderr:
mksh9 Slice UTF-8 String

stdout:
stderr:
bash10 Slice string with invalid UTF-8 results in empty string and warning

stdout:
-bcd-
stderr:
mksh10 Slice string with invalid UTF-8 results in empty string and warning

stdout:
-bcd-
stderr:
zsh10 Slice string with invalid UTF-8 results in empty string and warning

stdout:
-bcd-
stderr:
bash11 Slice string with invalid UTF-8 with strict-word-eval

stdout:
slice
-bcd-
stderr:
_tmp/spec-bin/bash: line 1: set: strict-word-eval: invalid option name
mksh11 Slice string with invalid UTF-8 with strict-word-eval

stdout:
stderr: 
_tmp/spec-bin/mksh: <stdin>[1]: set: strict-word-eval: bad option
zsh11 Slice string with invalid UTF-8 with strict-word-eval

stdout:
stderr: 
set: no such option: strict-word-eval
mksh12 Lower Case with , and ,,

stdout:
stderr: 
_tmp/spec-bin/mksh: <stdin>[2]: ${x,}: bad substitution
zsh12 Lower Case with , and ,,

stdout:
stderr: 
zsh: bad substitution
mksh13 Upper Case with ^ and ^^

stdout:
stderr: 
_tmp/spec-bin/mksh: <stdin>[2]: ${x^}: bad substitution
zsh13 Upper Case with ^ and ^^

stdout:
stderr: 
zsh: bad substitution
mksh14 Lower Case with constant string (VERY WEIRD)

stdout:
stderr: 
_tmp/spec-bin/mksh: <stdin>[2]: ${x,A}: bad substitution
zsh14 Lower Case with constant string (VERY WEIRD)

stdout:
stderr: 
zsh: bad substitution
osh14 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 733, in <module>
    main(sys.argv)
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 702, in main
    sys.exit(AppBundleMain(argv))
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 676, in AppBundleMain
    status = ShellMain('osh', argv0, main_argv, login_shell)
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 504, 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 124, in Batch
    is_control_flow, is_fatal = ex.ExecuteAndCatch(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1238, in ExecuteAndCatch
    status = self._Execute(node, fork_external=fork_external)
  File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1186, in _Execute
    status, check_errexit = self._Dispatch(node, fork_external)
  File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 714, in _Dispatch
    argv = self.word_ev.EvalWordSequence(words)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1123, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1096, in _EvalWordSequence
    self._EvalWordToParts(w, False, part_vals)  # not double quoted
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 897, in _EvalWordToParts
    self._EvalWordPart(p, part_vals, quoted=quoted)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 860, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 665, in _EvalBracedVarSub
    val = self._ApplyUnarySuffixOp(val, part.suffix_op)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 431, in _ApplyUnarySuffixOp
    s = string_ops.DoUnarySuffixOp(val.s, op, arg_val.s)
  File "/home/andy/git/oilshell/oil/osh/string_ops.py", line 186, in DoUnarySuffixOp
    raise NotImplementedError("%s can't have an argument" % op.op_id)
NotImplementedError: VOp1_Comma can't have an argument
osh_ALT14 Lower Case with constant string (VERY WEIRD)

[osh_ALT stdout] Expected 'aAA ABC DEF\naaa aBC DEF\n', got ''
[osh_ALT status] Expected 0, got 1

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 720, in _cpython_main_hook
    main(sys.argv)
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 702, in main
    sys.exit(AppBundleMain(argv))
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 695, in AppBundleMain
    return readlink.main(main_argv)
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 504, 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 131, in Batch
    return ex.LastStatus()
  File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1238, in ExecuteAndCatch
    status = self._Execute(node, fork_external=fork_external)
  File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1186, in _Execute
    status, check_errexit = self._Dispatch(node, fork_external)
  File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1131, in _Dispatch
    libc.print_time(real, user, sys_)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1123, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1096, in _EvalWordSequence
    self._EvalWordToParts(w, False, part_vals)  # not double quoted
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 897, in _EvalWordToParts
    self._EvalWordPart(p, part_vals, quoted=quoted)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 860, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 677, in _EvalBracedVarSub
    replace_str = replace_val.s
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 431, in _ApplyUnarySuffixOp
    s = string_ops.DoUnarySuffixOp(val.s, op, arg_val.s)
  File "/home/andy/git/oilshell/oil/osh/string_ops.py", line 259, in DoUnarySuffixOp
    return s
NotImplementedError: VOp1_Comma can't have an argument
FATAL: couldn't import from app bundle '_tmp/oil-tar-test/oil-0.6.pre14/_bin/osh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47
osh-byterun14 Lower Case with constant string (VERY WEIRD)

[osh-byterun stdout] Expected 'aAA ABC DEF\naaa aBC DEF\n', got ''
[osh-byterun status] Expected 0, got 1

stdout:
stderr: 
FATAL: VOp1_Comma can't have an argument
mksh15 Lower Case glob

stdout:
stderr: 
_tmp/spec-bin/mksh: <stdin>[2]: ${x,[d-f]}: bad substitution
zsh15 Lower Case glob

stdout:
stderr: 
zsh: bad substitution
osh15 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 733, in <module>
    main(sys.argv)
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 702, in main
    sys.exit(AppBundleMain(argv))
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 676, in AppBundleMain
    status = ShellMain('osh', argv0, main_argv, login_shell)
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 504, 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 124, in Batch
    is_control_flow, is_fatal = ex.ExecuteAndCatch(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1238, in ExecuteAndCatch
    status = self._Execute(node, fork_external=fork_external)
  File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1186, in _Execute
    status, check_errexit = self._Dispatch(node, fork_external)
  File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 714, in _Dispatch
    argv = self.word_ev.EvalWordSequence(words)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1123, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1096, in _EvalWordSequence
    self._EvalWordToParts(w, False, part_vals)  # not double quoted
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 897, in _EvalWordToParts
    self._EvalWordPart(p, part_vals, quoted=quoted)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 860, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 665, in _EvalBracedVarSub
    val = self._ApplyUnarySuffixOp(val, part.suffix_op)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 431, in _ApplyUnarySuffixOp
    s = string_ops.DoUnarySuffixOp(val.s, op, arg_val.s)
  File "/home/andy/git/oilshell/oil/osh/string_ops.py", line 262, in DoUnarySuffixOp
    raise NotImplementedError("Can't use %s with pattern" % op.op_id)
NotImplementedError: Can't use VOp1_Comma with pattern
osh_ALT15 Lower Case glob

[osh_ALT stdout] Expected 'ABC DEF\nABC deF\n', got ''
[osh_ALT status] Expected 0, got 1

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 720, in _cpython_main_hook
    main(sys.argv)
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 702, in main
    sys.exit(AppBundleMain(argv))
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 695, in AppBundleMain
    return readlink.main(main_argv)
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 504, 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 131, in Batch
    return ex.LastStatus()
  File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1238, in ExecuteAndCatch
    status = self._Execute(node, fork_external=fork_external)
  File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1186, in _Execute
    status, check_errexit = self._Dispatch(node, fork_external)
  File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1131, in _Dispatch
    libc.print_time(real, user, sys_)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1123, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1096, in _EvalWordSequence
    self._EvalWordToParts(w, False, part_vals)  # not double quoted
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 897, in _EvalWordToParts
    self._EvalWordPart(p, part_vals, quoted=quoted)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 860, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 677, in _EvalBracedVarSub
    replace_str = replace_val.s
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 431, in _ApplyUnarySuffixOp
    s = string_ops.DoUnarySuffixOp(val.s, op, arg_val.s)
  File "/home/andy/git/oilshell/oil/osh/string_ops.py", line 262, in DoUnarySuffixOp
    raise NotImplementedError("Can't use %s with pattern" % op.op_id)
NotImplementedError: Can't use VOp1_Comma with pattern
FATAL: couldn't import from app bundle '_tmp/oil-tar-test/oil-0.6.pre14/_bin/osh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47
osh-byterun15 Lower Case glob

[osh-byterun stdout] Expected 'ABC DEF\nABC deF\n', got ''
[osh-byterun status] Expected 0, got 1

stdout:
stderr: 
FATAL: Can't use VOp1_Comma with pattern
zsh16 ${x@Q}

stdout:
stderr: 
zsh: bad substitution